「みんなの翻訳」は、世界中の文書をみんなで協力して翻訳するサイトです。

みんなの翻訳ロゴ
ブクタブ
翻訳サイト

カテゴリ一覧

このサイトについて 新規登録はこちら お試し翻訳

一覧

2017/07/28

メンテナンス終了のお知らせ

2017/7/25-2017/7/28に実施したメンテナンスは、2017/7/28/14:20に終了いたしました。 ご協力をいただき、ありが…

List

Hnoss

English⇒Japanese

shikimi

English⇒Japanese

sysInfo

English⇒Japanese

tkkobe

English⇒Japanese

ホーム > 翻訳記事

翻訳記事

【GitLab 公式 を訳してみた】GitLab CI/CDで使える変数

 GitLab DocumentationGitLab Continuous Integration (GitLab CI)>GitLab CI/CDで使えるAPI変数

  GitLab ランナーは、CIから送られてきたjobをもとに、ビルド環境を整えます。
 このページでは、定義済み変数(環境変数)とユーザー定義変数のリストを掲載しています。

 

  変数の優先順位

  変数には優先順位があります。
 次の順位に従って、変数に設定された内容が上書きされる場合があります。

  1. Trigger変数、スケジュール・パイプライン変数[全てにおいて優先]
  2. プロジェクトごとの秘密変数(secret variables)、保護的秘密変数(protected secret variables)
  3. グループごとの秘密変数(secret variables)、保護的秘密変数(protected secret variables)
  4. YAMLで定義されたjobごとの変数
  5. YAMLで定義されたjobごとのグローバル変数
  6. デプロイメント変数
  7. 定義済み変数[この中では最下位]


 たとえば、
API_TOKEN=secure」秘密変数としての設定と、「API_TOKEN=yaml.gitlab-ci.ymlファイルに記述した設定の両方があるのなら、
より高い方の優先度が適用されることになるので、
API_TOKEN=secure」が設定として通用されます。

 

  定義済み変数(環境変数)

  定義済み環境変数のなかには、GitLab Runnerの最初期バージョンから使われているものもあります。
 それからバージョンが進むにつれていくつもの変数が追加されました。
 以下の表は、ランナーで使用可能な変数と、必要とされるバージョン数を示しています。
 

  注:GitLab 9.0以降では、いくつかの変数が機能から除外されました。それについては、あとから『バージョン9.0の変更点』という章で説明します。
 以下に示す変数のうち、古いものは将来のバージョンで使用不可になる可能性があります。変数はなるべく新しいものを使うことを強くお勧めします。

 

 

変数 GitLabのバージョン Runnerのバージョン 説明
CI 全バージョン 0.4 CI環境で実行されるjobを表す
CI_COMMIT_REF_NAME 9.0 全バージョン ビルドしているプロジェクトのブランチ、もしくはタグ名
CI_COMMIT_REF_SLUG 9.0 全バージョン $CI_COMMIT_REF_NAME を全てアルファベットの小文字(az)にして63バイト以内に短縮化したもの。半角数字(0~9)とその他記号(/,~, - など)は使えない。ホスト名やドメイン名などのURLを代入することが多い。
CI_COMMIT_SHA 9.0 全バージョン ビルドしているプロジェクトのコミット改案
CI_COMMIT_TAG 9.0 0.5 コミットタグ名。タグをビルドする時にだけ使われる
CI_CONFIG_PATH 9.4 0.5 どのファイルをCIコンフィグとして使うかを定めるパス。デフォルトでは「.gitlab-ci.yml
CI_DEBUG_TRACE 全バージョン 1.7 デバッグ・トレーシングを有効にするか
CI_DISPOSABLE_ENVIRONMENT 全バージョン 10.1 使い捨て環境で実行されたjobを表す。(そのjobためだけに作成され、job実行後は破棄・破壊される環境が、ほぼすべての実行プログラムに存在する。ただし、shellsshは除く。)環境を使い捨てる場合は、「true」に設定する。デフォルトでは何も定義されていない。
CI_ENVIRONMENT_NAME 8.15 全バージョン jobを実行する環境名
CI_ENVIRONMENT_SLUG 8.15 全バージョン 簡略化した環境名。DNS、URL、Kubernetes labelなどを代入する
CI_ENVIRONMENT_URL 9.3 全バージョン jobを実行する環境のURL
CI_JOB_ID 9.0 全バージョン 現在のjobを識別する独自ID。GitLab CIが内部で使用する。
CI_JOB_MANUAL 8.12 全バージョン 手動で開始するjobを示すフラグ
CI_JOB_NAME 9.0 0.5 gitlab-ci.ymlで定義されたjobの名前
CI_JOB_STAGE 9.0 0.5 gitlab-ci.ymlで定義されたステージの名前
CI_JOB_TOKEN 9.0 1.2 itLab Container Registryを認証させるときに使うトークン。
トリガーを伴う、マルチプロジェクト・パイプラインの認証にも使われる。
CI_REPOSITORY_URL 9.0 全バージョン クローンするgitレポジトリのURL
CI_RUNNER_DESCRIPTION 8.10 0.5 GitLabに保存したランナーを表す
CI_RUNNER_ID 8.10 0.5 使用中のランナーの独自ID
CI_RUNNER_TAGS 8.10 0.5 ランナーのタグを定義する
CI_PIPELINE_ID 8.10 0.5 GitLab CIが現在内部で使用しているパイプラインの独自ID
CI_PIPELINE_SOURCE 9.3 全バージョン (EEP版のみの機能) イプラインがどのように発動するように設定されているか、使用可能なオプション(push, web, trigger, schedule, api, pipeline)はどれかを表示する。
CI_PIPELINE_TRIGGERED 全バージョン 全バージョン トリガーを設定されたjobを示すフラグ
CI_PIPELINE_SOURCE 10.0 全バージョン パイプラインの元情報。(例:push, web, trigger, schedule, api, external)
9.5以前に作られたパイプラインにおいては、ソースからして分からない
CI_PROJECT_DIR 全バージョン 全バージョン クローンしたレポジトリと、実行されるjobとにつながっているフルパス
CI_PROJECT_ID 全バージョン 全バージョン 現在のプロジェクトを識別する独自ID。GitLab CIが内部で使用する。
CI_PROJECT_NAME 8.10 0.5 現在ビルド中のプロジェクト名(厳密にいえばプロジェクトのフォルダ名)
CI_PROJECT_NAMESPACE 8.10 0.5 現在ビルドされているプロジェクトの名前空間(ユーザー名あるいはグループ名)
CI_PROJECT_PATH 8.10 0.5 プロジェクト名自体の名前空間
CI_PROJECT_PATH_SLUG 9.3 全バージョン $CI_PROJECT_PATHを全てアルファベット(a~z)の小文字にして短縮化したもの。半角数字(0~9)と( - )は使えない。
ホスト名やドメイン名などのURLを代入することが多い。
CI_PROJECT_URL 8.10 0.5 プロジェクトにアクセスするために使うHTTPアドレス
CI_PROJECT_VISIBILITY 10.3 全バージョン プロジェクトのアクセス権の状態(internal, private, public)
CI_REGISTRY 8.10 0.5 GitLabの どの Container Registryを使用するかをアドレスで示す。Container Registryを許可している場合のみ有効。
CI_REGISTRY_IMAGE 8.10 0.5 特定のプロジェクトでGitLabの どの Container Registryを使用するかをアドレスで示す。Container Registryを許可している場合のみ有効。
CI_REGISTRY_PASSWORD 9.0 全バージョン GitLab Container Registryにコンテナをプッシュする時に使われるパスワード
CI_REGISTRY_USER 9.0 全バージョン GitLab Container Registryにコンテナをプッシュする時に使われるユーザー名
CI_SERVER 全バージョン 全バージョン CI環境で実行されるjobを表す
CI_SERVER_NAME 全バージョン 全バージョン job同士を調整するCIサーバーの名前
CI_SERVER_REVISION 全バージョン 全バージョン jobのスケジュール管理に使われているgitlab revision
CI_SERVER_VERSION 全バージョン 全バージョン jobのスケジュール管理に使われているgitlabバージョン
CI_SHARED_ENVIRONMENT 全バージョン 10.1 共有環境(shellsshなどの実行プログラムを呼び出しCIに使わせる)において実行されるjobを表す。環境を共有する場合は、「true」に設定する。デフォルトでは何も定義されていない。
ARTIFACT_DOWNLOAD_ATTEMPTS 8.15 1.9 jobを実行している時にダウンロードするアーティファクトの上限数
GET_SOURCES_ATTEMPTS 8.15 1.9 jobを実行している時に引き出すソースの上限数
GITLAB_CI 全バージョン 全バージョン GitLab CI環境で実行されたjobを表す
GITLAB_USER_ID 8.12 全バージョン jobを開始したユーザーのID
GITLAB_USER_EMAIL 8.12 全バージョン jobを開始したユーザーのメールアドレス
GITLAB_USER_LOGIN 10.0 全バージョン jobを開始したユーザーのログインユーザー名
GITLAB_USER_NAME 10.0 全バージョン jobを開始したユーザーの実名
RESTORE_CACHE_ATTEMPTS 8.15 1.9 jobを実行する時に復元するキャッシュの個数

 

 
 

  バージョン9.0の変更点

  GitLab9.0以降から「build」の方法が改定されました。
 そこで、次の表にある通り、CI変数に変更がありました。
 GitLabを「8」から「9」にバージョンアップなさる際には、以下の変数にご注意ください。

  注:GitLab 9.0から、「$CI_BUILD_*」から始まる変数は廃止されました。以下に示す変数のうち、古いものは今後のバージョンでの使用が不可となります。
 似たような変更が将来のバージョンで発生する可能性がありますので、変数はなるべく新しいものを使うことを強くお勧めします。

 

 

8.x までの名称 9.0+ 改定後
CI_BUILD_ID CI_JOB_ID
CI_BUILD_REF CI_COMMIT_SHA
CI_BUILD_TAG CI_COMMIT_TAG
CI_BUILD_REF_NAME CI_COMMIT_REF_NAME
CI_BUILD_REF_SLUG CI_COMMIT_REF_SLUG
CI_BUILD_NAME CI_JOB_NAME
CI_BUILD_STAGE CI_JOB_STAGE
CI_BUILD_REPO CI_REPOSITORY_URL
CI_BUILD_TRIGGERED CI_PIPELINE_TRIGGERED
CI_BUILD_MANUAL CI_JOB_MANUAL
CI_BUILD_TOKEN CI_JOB_TOKEN


 

 

  .gitlab-ci.yamlで定義する変数

 注:この機能を使うには、GitLab Runner 0.5.0以上、GitLab CI 7.14以上が必要です。

 

  GitLab CIではビルド環境を指定する用途で、「.gitlab-ci.yml」に変数を設定することができます。
 これらの変数はレポジトリの中に保存され、プロジェクトそのものの設定に影響を与えることはありません。(例: RAILS_ENVDATABASE_URLなど)

  グローバル変数(つまり、jobの外側にある変数)は、すべてのコマンドとスクリプト、jobに与えられた変数が実行されてから発動します。

============================================
variables:
  DATABASE_URL: "postgres://postgres@postgres/my_database"
============================================

 YAML定義変数は、jobを実行する環境を指定するのに使われます。
  先にYAML定義変数の宛先(サービスコンテナ)だけは指定しておいて、サービスの内容など細かい設定をあとから行うという使い方も可能です。

  変数は、プロジェクト全体にかけられているものと、jobごとにかけられるものとに分類できます。

 全体にかけられた変数を特定のjobで適用したくない場合は、jobに次のような空白のカッコを設けてください。

======================
job_name:
  variables: {}
======================

  変数の中に変数を設ける設定方法もあります。
 この場合、変数の中の変数ではない方には「$$」という記号を付けなくてはいけません。

======================
variables:
  LS_CMD: 'ls $FLAGS $$TMP_DIR'
  FLAGS: '-al'
 script:
  - 'eval $LS_CMD'
======================
 まず、「LS_CMD」という変数が定義されています。
 そこには、さらに「$FLAGS」という変数が設けられていまして、
 一段下の「 FLAGS: '-al'」にその内容が記述されています。
 最後に、「script:」にて、「LS_CMD」を実行するように指示が出ているので、結果的に「'ls -al $TMP_DIR' 」が実行されることになります。


 

  秘密変数(Secret variables)

  注:秘密変数をグループごとに使用する機能は、GitLab 9.4から追加されました。

 

  重要:「秘密変数」という名前から、jobのログに記録されないイメージを持たれる方が多いかと思いますが、それは誤りです。
 「秘密変数」そのものは、jobのログにちゃんと表示されます。
 プロジェクトのビルド工程を外部に公開したくない場合は、プロジェクトの「Pipelines settings」から、パイプラインを「private」に設定してください。
 この機能についての議論は、 issue #13784 に詳しく記録されています。
 

 

  秘密変数は、プロジェクトごと、グループごとに定義することができます。
 パイプラインの環境を定義することが可能です。
 秘密変数は、プロジェクトのレポジトリの外側に保存されます。よって、「.gitlab-ci.yml」で定義した変数とは別扱いです。
 パスワードや、SSHキーと証明書など、外部に公開されてはならないものを主に扱っています。
 使い方としては、ちょうど、あまりばれたくない部分を伏字にするイメージです。
 

  プロジェクトごとに秘密変数を設ける場合には、プロジェクトの「Settings > CI/CD」に移動して、「Secret variables」の欄を探します。

 グループごとに秘密変数を設ける場合には、グループの「Settings > CI/CD」に移動して、「Secret variables」の欄を探します。

 (写真1)「Secret variables」の画像
 
 ここで定義された変数が、グループ内、プロジェクト内において上書きされることはほぼありません。

  なので、ここで一度定義した情報は、秘密変数を使用した全てのパイプラインで適用されることになります。
 なお、これらの変数をさらに隠す方法はまた別にあります。
 それが、保護的秘密変数(Protected secret variables)です。

 

  保護的秘密変数(Protected secret variables)

  注:この機能を利用するには、GitLab 9.3以上が必要です。

 

  秘密変数に保護をかける機能があります。
 秘密変数を保護している場合、protected branchesあるいはprotected tagsにて、パイプラインを実行しなくてはなりません。
 その他のパイプラインでは、変数の保護が受けられません。
 

  プロジェクトごとに秘密変数を設ける場合には、プロジェクトの「Settings > CI/CD」に移動して、「Secret variables」のページを探します。そこで「Protected」の項目にチェックを入れてください。 

  ここで一度定義した情報は、秘密変数を使用した全てのパイプラインで適用されることになります。

 

  秘密変数の実行環境を限定するには

  注:この機能はGitLab Enterprise Edition Premium 9.4にて導入されました。

 

  これは有料EE版のみの機能です。
 秘密変数は、実行する環境を限定させることができます。

  環境の指定にワイルドカードを使用することも可能です。デフォルトでは「*」と設定されています。これは、環境を定義していなくても、すべてのjobでこの変数が適用されます。

  たとえば、環境を「production」と指定したとすると、jobはproduction環境のみで実行されることになります。
 ワイルドカード (*) を環境名指定に使うことができます。環境を「review/*」と指定すると、すべてのjobに「review/」から始まる環境名が使われることになります。


 

  デプロイメント変数

  注:この機能はGitLab CI 8.15以上が必要です。

 

  プロジェクトのサービスで、デプロイ関係のことを調整しようと思ったら、ビルド環境に変数を設けた方が良い場合があります。
 そこで使われるのが、デプロイメント変数は、デプロイメントjobのみに定義することができます。

 具体的にどのような変数が使用できるかについては、各説明書を読んでください。

  ここでよく使われるのは、 Kubernetes Serviceのプロジェクトです。リンク先にある例示プロジェクトを見て参考にしてください。

 

  デバッグ・トレーシング

  注:GitLab Runner 1.7以降に導入。

  警告:デバッグトレーシングはセキュリティに深くかかわる事項です。
 これを出力することは、ご自分が設定した秘密変数ならびに秘密事項を暴露することにつながります。
 これをGitLabサーバーにアップロードすると、jobの追跡が容易になります。

 

  デフォルトでは、GitLabランナーがどのようなjobを処理しているかなどの細かな動作までは公開されないようなっています。この動作により、jobのトレースは短く保たれ、よほど暴露を命じるようなスクリプトを打たないかぎりは、秘密事項は守られています。

   しかし、jobが思った通りに動作せず、すぐには問題がわからない状態である場合には、「.gitlab-ci.yml」に、デバッグトレースを開始するような設定をするとうまくいく場合があります。
 GitLab Runner v1.7以降では、この機能の登場で、シェルの実行状況、jobで実行されたコマンド類と変数などがトレースされ、延々と表示させられるようにもなりました。

  この機能が登場する前は、jobの状況はチームメンバーにしか表示されませんでした。
 生成されたjobトレースは、一般の人たちが繰り返して見られないように全て消去しておいたほうが良いでしょう。
 

  デバッグ・トレースを有効にするには、「CI_DEBUG_TRACE」を「true」に設定します。

======================
job_name:
  variables:
   CI_DEBUG_TRACE: "true"
======================

  一部を省略してありますが、次のようなデバッグトレースが表示されるようなります。
(一部誤変換あり。正しい表記は原文を参照してください)

============================================
...

export CI_SERVER_TLS_CA_FILE="/builds/gitlab-examples/ci-debug-trace.tmp/CI_SERVER_TLS_CA_FILE"
if [[ -d "/builds/gitlab-examples/ci-debug-trace/.git" ]]; then
  echo $'\''\x1b[32;1mFetching changes...\x1b[0;m'\''
  $'\''cd'\'' "/builds/gitlab-examples/ci-debug-trace"
  $'\''git'\'' "config" "fetch.recurseSubmodules" "false"
  $'\''rm'\'' "-f" ".git/index.lock"
  $'\''git'\'' "clean" "-ffdx"
  $'\''git'\'' "reset" "--hard"
  $'\''git'\'' "remote" "set-url" "origin" "https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@example.com/gitlab-examples/ci-debug-trace.git"
  $'\''git'\'' "fetch" "origin" "--prune" "+refs/heads/*:refs/remotes/origin/*" "+refs/tags/*:refs/tags/*"
else
  $'\''mkdir'\'' "-p" "/builds/gitlab-examples/ci-debug-trace.tmp/git-template"
  $'\''rm'\'' "-r" "-f" "/builds/gitlab-examples/ci-debug-trace"
  $'\''git'\'' "config" "-f" "/builds/gitlab-examples/ci-debug-trace.tmp/git-template/config" "fetch.recurseSubmodules" "false"
  echo $'\''\x1b[32;1mCloning repository...\x1b[0;m'\''
  $'\''git'\'' "clone" "--no-checkout" "https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@example.com/gitlab-examples/ci-debug-trace.git" "/builds/gitlab-examples/ci-debug-trace" "--template" "/builds/gitlab-examples/ci-debug-trace.tmp/git-template"
  $'\''cd'\'' "/builds/gitlab-examples/ci-debug-trace"
fi
 echo $'\''\x1b[32;1mChecking out dd648b2e as master...\x1b[0;m'\''
$'\''git'\'' "checkout" "-f" "-q" "dd648b2e48ce6518303b0bb580b2ee32fadaf045"
'
+++ hostname
++ echo 'Running on runner-8a2f473d-project-1796893-concurrent-0 via runner-8a2f473d-machine-1480971377-317a7d0f-digital-ocean-4gb...'
Running on runner-8a2f473d-project-1796893-concurrent-0 via runner-8a2f473d-machine-1480971377-317a7d0f-digital-ocean-4gb...
++ export CI=true
++ CI=true
++ export CI_DEBUG_TRACE=false
++ CI_DEBUG_TRACE=false
++ export CI_COMMIT_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045
++ CI_COMMIT_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045
++ export CI_COMMIT_BEFORE_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045
++ CI_COMMIT_BEFORE_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045
++ export CI_COMMIT_REF_NAME=master
++ CI_COMMIT_REF_NAME=master
++ export CI_JOB_ID=7046507
++ CI_JOB_ID=7046507
++ export CI_REPOSITORY_URL=https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@example.com/gitlab-examples/ci-debug-trace.git
++ CI_REPOSITORY_URL=https://gitlab-ci-token:xxxxxxxxxxxxxxxxxxxx@example.com/gitlab-examples/ci-debug-trace.git
++ export CI_JOB_TOKEN=xxxxxxxxxxxxxxxxxxxx
++ CI_JOB_TOKEN=xxxxxxxxxxxxxxxxxxxx
++ export CI_PROJECT_ID=1796893
++ CI_PROJECT_ID=1796893
++ export CI_PROJECT_DIR=/builds/gitlab-examples/ci-debug-trace
++ CI_PROJECT_DIR=/builds/gitlab-examples/ci-debug-trace
++ export CI_SERVER=yes
++ CI_SERVER=yes
++ export 'CI_SERVER_NAME=GitLab CI'
++ CI_SERVER_NAME='GitLab CI'
++ export CI_SERVER_VERSION=
++ CI_SERVER_VERSION=
++ export CI_SERVER_REVISION=
++ CI_SERVER_REVISION=
++ export GITLAB_CI=true
++ GITLAB_CI=true
++ export CI=true
++ CI=true
++ export GITLAB_CI=true
++ GITLAB_CI=true
++ export CI_JOB_ID=7046507
++ CI_JOB_ID=7046507
++ export CI_JOB_TOKEN=xxxxxxxxxxxxxxxxxxxx
++ CI_JOB_TOKEN=xxxxxxxxxxxxxxxxxxxx
++ export CI_COMMIT_REF=dd648b2e48ce6518303b0bb580b2ee32fadaf045
++ CI_COMMIT_REF=dd648b2e48ce6518303b0bb580b2ee32fadaf045
++ export CI_COMMIT_BEFORE_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045
++ CI_COMMIT_BEFORE_SHA=dd648b2e48ce6518303b0bb580b2ee32fadaf045
++ export CI_COMMIT_REF_NAME=master
++ CI_COMMIT_REF_NAME=master
++ export CI_COMMIT_NAME=debug_trace
++ CI_JOB_NAME=debug_trace
++ export CI_JOB_STAGE=test
++ CI_JOB_STAGE=test
++ export CI_SERVER_NAME=GitLab
++ CI_SERVER_NAME=GitLab
++ export CI_SERVER_VERSION=8.14.3-ee
++ CI_SERVER_VERSION=8.14.3-ee
++ export CI_SERVER_REVISION=82823
++ CI_SERVER_REVISION=82823
++ export CI_PROJECT_ID=17893
++ CI_PROJECT_ID=17893
++ export CI_PROJECT_NAME=ci-debug-trace
++ CI_PROJECT_NAME=ci-debug-trace
++ export CI_PROJECT_PATH=gitlab-examples/ci-debug-trace
++ CI_PROJECT_PATH=gitlab-examples/ci-debug-trace
++ export CI_PROJECT_NAMESPACE=gitlab-examples
++ CI_PROJECT_NAMESPACE=gitlab-examples
++ export CI_PROJECT_URL=https://example.com/gitlab-examples/ci-debug-trace
++ CI_PROJECT_URL=https://example.com/gitlab-examples/ci-debug-trace
++ export CI_PIPELINE_ID=52666
++ CI_PIPELINE_ID=52666
++ export CI_RUNNER_ID=1337
++ CI_RUNNER_ID=1337
++ export CI_RUNNER_DESCRIPTION=shared-runners-manager-1.example.com
++ CI_RUNNER_DESCRIPTION=shared-runners-manager-1.example.com
++ export 'CI_RUNNER_TAGS=shared, docker, linux, ruby, mysql, postgres, mongo'
++ CI_RUNNER_TAGS='shared, docker, linux, ruby, mysql, postgres, mongo'
++ export CI_REGISTRY=registry.example.com
++ CI_REGISTRY=registry.example.com
++ export CI_DEBUG_TRACE=true
++ CI_DEBUG_TRACE=true
++ export GITLAB_USER_ID=42
++ GITLAB_USER_ID=42
++ export GITLAB_USER_EMAIL=user@example.com
++ GITLAB_USER_EMAIL=user@example.com
++ export VERY_SECURE_VARIABLE=imaverysecurevariable
++ VERY_SECURE_VARIABLE=imaverysecurevariable
++ mkdir -p /builds/gitlab-examples/ci-debug-trace.tmp
++ echo -n '-----BEGIN CERTIFICATE-----
MIIFQzCCBCugAwIBAgIRAL/ElDjuf15xwja1ZnCocWAwDQYJKoZIhvcNAQELBQAw'

...


============================================

 

  jobスクリプトの中にCI変数を使用する

  jobの中には、環境変数として全種類の変数を仕掛けることができます。
 というより、これが最も一般的な使われ方です。
 大抵の場合は、bashやshellなどがjobスクリプトを実行するのに使われます。

  環境変数を使用するには、ランナーのシェルにシンタックスを入力します。

 

 

Shellの種類 表記
bash/sh $variable
windows batch %variable%
PowerShell $env:variable

 

 

  bashから環境変数にアクセスするには、変数の前に「$」を表記します。

======================
job_name:
  script:
   - echo $CI_JOB_ID
======================

   Windows Batchから環境変数にアクセスするには、変数の前に「%」を表記します。

======================
job_name:
  script:
   - echo %CI_JOB_ID%
======================

  Windows PowerShellから環境変数にアクセスするには、変数の前に「$env:」を表記します。

======================
job_name:
  script:
   - echo $env:CI_JOB_ID
======================

  全ての環境変数を一覧表示するには「export」コマンドを使います。
 この中にはjobのログが表示されるので、全ての秘密変数も表示されてしまいます。

======================
job_name:
  script:
   - export
======================

  すると、このような数値が表示されます。
 (色分けは省略します。原文をご覧ください。

============================================
export CI_JOB_ID="50"
exportCI_COMMIT_SHA="1ecfd275763eff1d6b4844ea3168962458c9f27a"
export CI_COMMIT_REF_NAME="master"
export CI_REPOSITORY_URL="https://gitlab-ci-token:abcde-1234ABCD5678ef@example.com/gitlab-org/gitlab-ce.git"
export CI_COMMIT_TAG="1.0.0"
export CI_JOB_NAME="spec:other"
export CI_JOB_STAGE="test"
export CI_JOB_MANUAL="true"
export CI_JOB_TRIGGERED="true"
export CI_JOB_TOKEN="abcde-1234ABCD5678ef"
export CI_PIPELINE_ID="1000"
export CI_PROJECT_ID="34"
export CI_PROJECT_DIR="/builds/gitlab-org/gitlab-ce"
export CI_PROJECT_NAME="gitlab-ce"
export CI_PROJECT_NAMESPACE="gitlab-org"
export CI_PROJECT_PATH="gitlab-org/gitlab-ce"
export CI_PROJECT_URL="https://example.com/gitlab-org/gitlab-ce"
export CI_REGISTRY="registry.example.com"
export CI_REGISTRY_IMAGE="registry.example.com/gitlab-org/gitlab-ce"
export CI_RUNNER_ID="10"
export CI_RUNNER_DESCRIPTION="my runner"
export CI_RUNNER_TAGS="docker, linux"
export CI_SERVER="yes"
export CI_SERVER_NAME="GitLab"
export CI_SERVER_REVISION="70606bf"
export CI_SERVER_VERSION="8.9.0"
export GITLAB_USER_ID="42"
export GITLAB_USER_EMAIL="user@example.com"
export CI_REGISTRY_USER="gitlab-ci-token"
export CI_REGISTRY_PASSWORD="longalfanumstring"
 
============================================

 

PDF
更新日:2017-11-17 23:50:02 Hnoss 0  del.icio.usに追加   はてなブックマークに追加   twitterに投稿   facebookでshare
[ 原文 ] https://docs.gitlab.com/ee/ci/variables/README.html 原文ページプロジェクト並びにドキュメントファイルは、MIT Licenseのもと公開されています。(URL:https://gitlab.com/gitlab-com/gitlab-docs/blob/master/LICENSE) この記事の文章は、訳者の判断によりCreative Commons BY (version 3.0) を適用するものとします。
翻訳者ページをみる

この記事の翻訳者

Hnoss さんの翻訳記事

僕がHugo静的サイト・ジェネレータをGitLabで使うときにしたCI設定 | from Leow Kah Man - Tech Blog

 週末にかけて、GitHubに構えていた私のブログをGitLabに移転しました。GitLabだとCIビルドが自動的にできるところが便利です。  僕はGitLabのレポジトリにNodeJS Dockerイメージを構…2017-11-18 13:00:02

【GitLab 公式 を訳してみた】Dockerイメージを使う

GitLab Documentation > GitLab Continuous Integration (GitLab CI) > Docker integration >Dockerイメージを使う  GitLab CIは、GitLab ランナーと連携して、Dockerエンジンを様…2017-11-18 00:10:16

【GitLab 公式 を訳してみた】 .gitlab-ci.yml 設定メニュー

 (訳者より:翻訳がもうだいぶ進んだところで、GitLab CIについてネットで検索をかけてみたところ、 Qiitaにてynott様が公開されたバージョン があることに気がつきました。  原…2017-11-17 23:50:27

【GitLab 公式 を訳してみた】GitLab CI/CDで使える変数

GitLab Documentation > GitLab Continuous Integration (GitLab CI) >GitLab CI/CDで使えるAPI変数  GitLab ランナーは、CIから送られてきたjobをもとに、ビルド環境を整えます。…2017-11-17 23:50:02