きっかけ
CircleCIが1.0を廃止するので
2.0に移行に迫られ、ふと思って
1.0と2.0で使われる変数の一覧をまとめてみました。
参考
CircleCI 1.0 to 2.0
https://circleci.com/blog/sunsetting-1-0/
https://circleci.com/docs/2.0/migrating-from-1-2/
Environment Variables
CircleCI | リンク |
---|---|
1.0 | https://circleci.com/docs/1.0/environment-variables/ |
2.0 | https://circleci.com/docs/2.0/env-vars/ |
react-native
パッと調べた感じ、react-native
が一番
CircleCI2.0を使い込んでいそうだったので、そちらを参考にした。
ツール | リンク |
---|---|
Github | https://github.com/facebook/react-native |
Circle | https://circleci.com/gh/facebook/react-native |
CircleCIの例(react-native)
## Spin up Environment
Build-agent version 0.0.4775-4387c40 (2018-03-26T10:29:11+0000)
Starting container circleci/node:6
image is cached as circleci/node:6, but refreshing...
6: Pulling from circleci/node
Digest: sha256:6c64433cd80bb347d5d95fada05743163eacbae3ceebeebfe81ae142d26bc57e
Status: Image is up to date for circleci/node:6
using image circleci/node@sha256:6c64433cd80bb347d5d95fada05743163eacbae3ceebeebfe81ae142d26bc57e
Using build environment variables:
BASH_ENV=/tmp/.bash_env-5ac535f77136c80007d1e06e-0-build
CI=true
CIRCLECI=true
CIRCLE_BRANCH=master
CIRCLE_BUILD_NUM=39404
CIRCLE_BUILD_URL=https://circleci.com/gh/facebook/react-native/39404
CIRCLE_COMPARE_URL=https://github.com/facebook/react-native/compare/3cd2b4342653...c787e0e25216
CIRCLE_JOB=test_javascript_node6_compatibility
CIRCLE_NODE_INDEX=0
CIRCLE_NODE_TOTAL=1
CIRCLE_PREVIOUS_BUILD_NUM=39403
CIRCLE_PROJECT_REPONAME=react-native
CIRCLE_PROJECT_USERNAME=facebook
CIRCLE_PULL_REQUEST=https://github.com/Htc2ubusiness/react-native/pull/1
CIRCLE_PULL_REQUESTS=https://github.com/Htc2ubusiness/react-native/pull/1
CIRCLE_REPOSITORY_URL=git@github.com:facebook/react-native.git
CIRCLE_SHA1=c787e0e25216d04a76ce2e3c0c88218ab9db3545
CIRCLE_SHELL_ENV=/tmp/.bash_env-5ac535f77136c80007d1e06e-0-build
CIRCLE_STAGE=test_javascript_node6_compatibility
CIRCLE_USERNAME=facebook-github-bot
CIRCLE_WORKFLOW_CONCURRENCY_MAP={}
CIRCLE_WORKFLOW_ID=66a7325d-f222-41d5-a257-cc83bc8e6843
CIRCLE_WORKFLOW_JOB_ID=e352e0cb-cb6b-4d1a-a631-c6cf13a575ae
CIRCLE_WORKFLOW_UPSTREAM_JOB_IDS=
CIRCLE_WORKFLOW_WORKSPACE_ID=66a7325d-f222-41d5-a257-cc83bc8e6843
CIRCLE_WORKING_DIRECTORY=~/react-native
CI_PULL_REQUEST=https://github.com/Htc2ubusiness/react-native/pull/1
CI_PULL_REQUESTS=https://github.com/Htc2ubusiness/react-native/pull/1
CircleCI変数一覧
# | 変数名 | 2.0 | 1.0 | 説明 | 値 |
---|---|---|---|---|---|
1 | CI | ◯ | ◯ | 現在の環境がCI環境であるかどうか | true |
2 | CIRCLECI | ◯ | ◯ | 現在の環境がCI環境であるかどうか | true |
3 | CIRCLE_BRANCH | ◯ | ◯ | build中のGitブランチの名前 | master |
4 | CIRCLE_NODE_TOTAL | ◯ | ◯ | build instancesの合計 | 1 |
5 | CIRCLE_NODE_INDEX | ◯ | ◯ | build instancesの番号 | 0 (CIRCLECI_NODE_TOTAL - 1) |
6 | CIRCLE_BUILD_NUM | ◯ | ◯ | CircleCIのbuild番号 | 39404 |
7 | CIRCLE_PREVIOUS_BUILD_NUM | ◯ | ◯ | 対象ブランチの過去のbuild回数 | 39403 |
8 | CIRCLE_BUILD_URL | ◯ | ◯ | buildのURL | https://circleci.com/gh/facebook/react-native/39404 |
9 | CIRCLE_SHA1 | ◯ | ◯ | buildの最後のSHA1ハッシュ | c787e0e25216d04a76ce2e3c0c88218ab9db3545 |
10 | CIRCLE_SHELL_ENV | ◯ | ? | CircleCIのshellの環境変数のパス(たぶん。。) | /tmp/.bash_env-5ac535f77136c80007d1e06e-0-build |
11 | CIRCLE_USERNAME | ◯ | ◯ | buildを実行したユーザー | facebook-github-bot |
12 | CIRCLE_JOB | ◯ | × | ジョブ名 | test_javascript_node6_compatibility (参考) https://circleci.com/docs/2.0/jobs-steps/#jobs-overview |
12 | CIRCLE_WORKING_DIRECTORY | ◯ | × | ジョブの作業ディレクトリ | ~/react-native |
13 | CIRCLE_COMPARE_URL | ◯ | ◯ | 前回のbuildからの差分を表すURL | https://github.com/facebook/react-native/compare/3cd2b4342653...c787e0e25216 |
14 | CIRCLE_REPOSITORY_URL | ◯ | ◯ | 対象リポジトリのURL | git@github.com:facebook/react-native.git |
15 | CIRCLE_PR_NUMBER (注1) | △ | △ | PR番号 | ※正常に機能しない場合がある。要確認。 (参考) https://github.com/circleci/circleci-docs/pull/2107 |
16 | CIRCLE_PR_REPONAME (注1) | △ | △ | PRが行われたリポジトリ名 | ※正常に機能しない場合がある。要確認。 (参考) https://github.com/circleci/circleci-docs/issues/2060 |
17 | CIRCLE_PR_USERNAME (注1) | △ | △ | PRを行ったユーザー名 | ※正常に機能しない場合がある。要確認。 (参考) https://github.com/circleci/circleci-docs/issues/2060 |
18 | CIRCLE_PULL_REQUESTS | ◯ | × | buildに含まれるPRのURLのカンマ区切りのリスト | https://github.com/Htc2ubusiness/react-native/pull/1 |
19 | CIRCLE_PULL_REQUEST | ◯ | × | buildに含まれるPRのURLのどれか1つ(ランダム) | https://github.com/Htc2ubusiness/react-native/pull/1 |
20 | CI_PULL_REQUESTS | ◯ | ◯ | CIRCLE_PULL_REQUESTSと同じ。(1.0との下位互換性) | https://github.com/Htc2ubusiness/react-native/pull/1 |
21 | CI_PULL_REQUEST | ◯ | ◯ | CIRCLE_PULL_REQUESTと同じ。(1.0との下位互換性) | https://github.com/Htc2ubusiness/react-native/pull/1 |
22 | CIRCLE_TAG (注1) | ◯ | ◯ | build/test対象となるgit tag名 | - |
23 | CIRCLE_PROJECT_USERNAME | ◯ | ◯ | 対象プロジェクトのユーザー名or組織名 | facebook cf. "facebook" in circleci.com/gh/facebook/react-native/39404. |
24 | CIRCLE_PROJECT_REPONAME | ◯ | ◯ | 対象プロジェクトのリポジトリ名 | react-native cf. "react-native" in circleci.com/gh/facebook/react-native/39404. |
25 | CIRCLE_INTERNAL_TASK_DATA (注1) | ◯ | × | テストタイミングのデータが見つかるディレクトリ | - |
26 | CIRCLE_STAGE | ◯ | × | 実行中のジョブ | test_javascript_node6_compatibility |
26 | CIRCLE_WORKFLOW_CONCURRENCY_MAP | ◯ | × | 実行中のジョブ | test_javascript_node6_compatibility |
26 | CIRCLE_WORKFLOW_ID | ◯ | × | 現在実行しているジョブのワークフローのID | 66a7325d-f222-41d5-a257-cc83bc8e6843 |
26 | CIRCLE_WORKFLOW_JOB_ID | ◯ | × | 現在実行しているジョブのワークフローにおけるジョブID | e352e0cb-cb6b-4d1a-a631-c6cf13a575ae |
26 | CIRCLE_WORKFLOW_UPSTREAM_JOB_IDS | ◯ | × | 現在実行しているジョブのアップストリームID | - |
26 | CIRCLE_WORKFLOW_WORKSPACE_ID | ◯ | × | 現在実行しているジョブのワークスペースID | 66a7325d-f222-41d5-a257-cc83bc8e6843 |
27 | CIRCLE_ARTIFACTS (注1) | × | ◯ | build時の成果物が保存されるディレクトリ | /tmp/circle-artifacts.KcKmZNY |
28 | CIRCLE_TEST_REPORTS (注1) | × | ◯ | JUnitのメタデータとして処理されるディレクトリ | 1.0: /tmp/circle-junit.NF4bElV |
29 | CIRCLE_BUILD_IMAGE (注1) | × | ◯ | 実行されるbuild image | 1.0: ubuntu-14.04 |
30 | HOME (注1) | ◯ | ◯ | 省略 | 1.0: "/home/ubuntu" |
31 | DISPLAY (注1) | ? | ◯ | 省略 | 1.0: ":99" |
32 | LANG (注1) | ? | ◯ | 省略 | 1.0: "en_US.UTF-8" |
33 | PATH (注1) | ? | ◯ | 省略 | 1.0: Includes "/home/ubuntu/bin" |
(注1):「CircleCIの例(react-native)」にはない変数
所感
- 新規追加された変数はあまり知見がないので、ググってもでてこない。
- 2.0から、workflowやworkspace,upstreamの考え方が増えたので、若干難しい?
- 「△」のやつとか使えるのか、使えないのかわからない。
まぁ、実際に、実行してみて、どういうものなのかわかったら、ちゃんと書こうと思う。