私のセットアップは次のとおりです。最初のジョブとして、docker コンテナーとして開始された自己ホスト型エージェントからファイルをコピーするエージェントをホストしました。
ホストされたパイプラインは、パイプラインの「実行」レスト API でトリガーされます:
https://docs.microsoft.com/en-us/rest/api/azure/devops/pipelines/runs/run%20pipeline?view=azure-devops-rest -6.0
これが現在のボディの外観です。
"resources": {
"repositories:": {
"self": {
"refName": "refs/heads/my_branch"
}
}
}
それはうまく機能しています。
ホストされたパイプラインの一部は次のようになります。
- job: self_hosted_connect
timeoutInMinutes: 10
pool: Default
steps:
- task: CopyFiles@2
inputs:
SourceFolder: '/home/copy_dir'
Contents: '**'
TargetFolder: '$(build.artifactstagingdirectory)'
また、うまくいきます。
私の質問は次のとおりです。
「実行」レスト API に SourceFolder パスを含む別のパラメーターを送信して、CopyFiles タスクが動的になり、ハードコードされた SourceFolder パスを持たないようにするのが好きです
docker から自己ホスト型エージェントを実行する場合、自己ホスト型エージェントにその作業ディレクトリ以外のディレクトリを含めるように指示するにはどうすればよいですか? したがって、パイプラインはエラーで失敗しません:
#[error]Unhandled: Not found SourceFolder: /home/copy_dir
更新 リクエストを次のように更新しました。
{
"resources": {
"repositories:": {
"self": {
"refName": "refs/heads/my_branch"
}
}
},
"templateParameters": {
"Folderpath":"{/home/foo/my_dir}"
}
}
しかし、私はエラーが発生しています:
{
"$id": "1",
"innerException": null,
"message": "Unexpected parameter 'Folderpath'",
"typeName": "Microsoft.Azure.Pipelines.WebApi.PipelineValidationException, Microsoft.Azure.Pipelines.WebApi",
"typeKey": "PipelineValidationException",
"errorCode": 0,
"eventId": 3000
}