問題
ローカル環境でcircleciコマンドを実行するときに、環境変数を渡したいことがあると思う。こんなときどうすれば良いだろうか?
解決策
circleci build --env VAR=VAL
以上。
試してみた
config.yml
version: 2
jobs:
build:
docker:
- image: circleci/ruby:2.5.0-node-browsers
user: root
steps:
- run:
command: |
echo $VAR1
結果:
$ circleci build --env VAR1=FOOOOOOOOOO
====>> Spin up Environment
Build-agent version 0.0.4666-05dad47 (2018-01-25T18:14:33+0000)
Starting container circleci/ruby:2.5.0-node-browsers
using image circleci/ruby@sha256:3cd92320f770f83d78b63622092afa609c77e29cdd8ecb357c99d9894512d0b0
Using build environment variables:
BASH_ENV=/tmp/.bash_env-localbuild-1517491823
CI=true
CIRCLECI=true
CIRCLE_BRANCH=master
...
====>> echo $VAR1
#!/bin/bash -eo pipefail
echo $VAR1
FOOOOOOOOOO
Success!
複数の環境変数を渡したい場合
config.yml
version: 2
jobs:
build:
docker:
- image: circleci/ruby:2.5.0-node-browsers
user: root
steps:
- run:
command: |
echo $VAR1
echo $VAR2
結果:
circleci build --env VAR1=FOOOOOOOOOO --env VAR2=WRYYYYYYYYYYYYY
====>> Spin up Environment
Build-agent version 0.0.4666-05dad47 (2018-01-25T18:14:33+0000)
Starting container circleci/ruby:2.5.0-node-browsers
using image circleci/ruby@sha256:3cd92320f770f83d78b63622092afa609c77e29cdd8ecb357c99d9894512d0b0
Using build environment variables:
BASH_ENV=/tmp/.bash_env-localbuild-1517492003
CI=true
CIRCLECI=true
CIRCLE_BRANCH=master
...
====>> echo $VAR1
echo $VAR2
#!/bin/bash -eo pipefail
echo $VAR1
echo $VAR2
FOOOOOOOOOO
WRYYYYYYYYYYYYY
Success!
複数の環境変数を渡すもっと良い方法がある気がするので引き続き調査中。