0

私のセットアップは次のとおりです。最初のジョブとして、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)'

また、うまくいきます。

私の質問は次のとおりです。

  1. 「実行」レスト API に SourceFolder パスを含む別のパラメーターを送信して、CopyFiles タスクが動的になり、ハードコードされた SourceFolder パスを持たないようにするのが好きです

  2. 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
}
4

1 に答える 1