現在、小規模なPOCでAzure Pipelinesを評価しています。制限に達したと思いますが、回避策があるかどうか知りたいと思っています。
これが私がやろうとしていることの主要な部分です。
Azure-pipelines.yml
variables:
- name: FavouriteSportsTeam
value: "Houston Rockets"
jobs:
- template: Build1.yml
parameters:
SportsTeam: $(FavouriteSportsTeam)
- template: Build2.yml
parameters:
SportsTeam: $(FavouriteSportsTeam)
Build1.yml
parameters:
SportsTeam: "A Default Team"
jobs:
- job: SportsTeamPrinter
steps:
- script: "echo ${{ parameters.SportsTeam }}"
これを実行しようとすると、Azure-pipelines.ymlファイルから渡された変数が展開されず、「$(FavouriteSportsTeam)」のままになります。
拡張変数をパラメーターとして別のファイルに渡すことはできますか?
パラメータに応じてenvironment
を設定しようとしたテンプレート内の展開ジョブで同じ問題が発生しました。テンプレートパラメータは、ランタイム変数$(Environment)
を受け取ります。
問題は、environment
への値の受け渡しが解釈される時点では、ランタイム変数がまだ利用できないことでした。解決策は、変数をランタイム構文で渡さずに式構文 _${{ variables.environment }}
_を使用することでした:
_parameters:
- name: environment # don't pass run-time variables
jobs:
- deployment: DeployAppService
environment: ${{ parameters.environment }}
strategy: [...]
_
_- stage: QA
variables:
Environment: QA
jobs:
- template: templates/deploy-appservice.yml
parameters:
environment: ${{ variables.environment }} # use expression syntax
_
ランタイム変数$(Environment)
を誤って渡した場合、この文字列がデプロイメントジョブでAzure DevOps環境に名前を付けようとします。これは有効な名前ではないため、フォールバック名としてTest
を使用し、[環境]メニューに表示されます。