Features
"uses" ステートメントはリソースを事前宣言するためのものです。
パイプラインがエージェントでジョブを実行すると、そのエージェントには、Azure Pipelines REST API にコールバックし、リポジトリなどのリソースをダウンロードするためのアクセス トークンが与えられます。 YAML パイプラインの場合、最近、トークンをジョブで実際に使用されるリポジトリのみに制限する設定を追加しました。 ただし、一部のお客様は、git を直接呼び出すスクリプト ステップを使用した場合など、 checkout ステップを明示的に使用せずにリポジトリを使用していました。 これらのお客様は、Azure Pipelines がジョブに必要なリポジトリを正確に判断できなかったため、トークン制限機能を有効にできませんでした。
この更新プログラムでは、ジョブが checkout ステップを使用せずにリポジトリを使用することを Azure Pipelines に伝える別の方法が追加されました。 代わりに、次のように新しい uses キーワードを使用できます。
resources:
repositories:
- repository: myrepo
type: git
name: MyProject/MyRepo
jobs:
- job: myjob
uses:
repositories:
- myrepo
steps:
# without the preceding "uses" statement, if you have the
# new limit-repositories feature turned on, then Azure Pipelines
# won't include this repo in the access token and you'll
# get an access error at runtime (also, in a real pipeline
# you must include the auth token header as an argument to Git)
- script: git clone https://dev.azure.com/MyOrg/MyProject/_git/MyRepo
この機能は、関連する (あまり一般的ではない) 問題も解決します。
matrix キーワードを使用して複数のジョブを生成し、これらのジョブでマトリックス ステップで指定されたプールを使用する場合、パイプラインに対するこれらのプールの承認に問題が発生している可能性があります。 根本原因は同じです。マトリックスは実行時に計算されるため、先行リソース承認システムでは、使用されるプールを正確に判断できません。
usesを使用して、ジョブが利用するプールを宣言し、ジョブがそのプールを前もって使用できるように承認することができます。
jobs:
- job: mtrx
strategy:
matrix:
windows:
mypoolname: Private-Windows
mac:
mypoolname: Private-Mac
pool: $(mypoolname)
# without the following "uses" statement, "pool" won't see
# the pool names until it's too late, and you'll get an error
# at runtime
uses:
pools:
- Private-Windows
- Private-Mac
YAML パイプラインの手動検証
新しくリリースされた 手動検証 タスクでは、ステージの途中で YAML パイプラインを一時停止できます。 これにより、手動またはオフラインのアクティビティを実行し、実行を再開 (または拒否) できます。 これは、実行時間の長いコンピューティング集中型ジョブに進む前に、パイプラインを一時停止し、ピアが構成設定やビルド パッケージなどを検証できるようにするシナリオで特に便利です。 詳細については、こちらを参照してください。
次のステップ
注
これらの機能は、今後 2 ~ 3 週間にわたってロールアウトされます。
Azure DevOps に向かい、見てみましょう。
フィードバックの提供方法
これらの機能についてご意見をお聞かせください。 ヘルプ メニューを使用して、問題を報告したり、提案を提供したりします。
Stack Overflow のコミュニティからアドバイスや質問に回答してもらうこともできます。