はじめに
CICDのために欠かせないパイプライン
シークレットとして扱いたい文字列や、可変にしたい設定値などがよくある
ローカルマシンやサーバであれば環境変数として設定できるが、CIを動かしているAgentではどのように可変でプライベートな値を設定するのかを記載する
前提
- Pipelines/Libraryを使用した方法を記載する
-
Variable groups
を使用 -
Secure files
はここでは取り上げない
-
- KeyVaultを使用する方法もあるが、やっとことないのでここでは取り上げない
- 使用するAgentはMicrosoftHosted
- Pipelineは既に作成済みとする
LibraryにVariable groupsを作成
「+ Variable group」をクリック
Variablesを定義
- groupに名前をつける
- 環境変数として使用したい値をkey valueの形式で追加する
yamlに値を参照するための記述を追加
ci.yml
# variable groupから環境設定を読み込み
variables:
- group: qiita-env
steps:
- bash: echo $(Build.SourceBranch)
displayName: 'echo working branch name'
- script: |
npm test
displayName: 'unit test'
env:
SECRET: $(SECRET) # $(variable)の形式でLibraryに定義した値にアクセスできる
参照
余談
LibraryにアクセスできるPipelineを制限する
デフォルトだと、OrganizationかProjectか分からないが、ほぼ全てのPipelineがLibrary/Variable groupにアクセスできてしまう
セキュリティ向上のためにも、アクセスできるPipelineを限定しておくと良い