repoB
将调用其他两个(阶段)模板
azure-pipeline.yml
或
repoA
。除非我将2个模板在
build-and-deploy.yml
中进行硬编码,否则我将无法实现这一目标。
0.yml
(在
1.yml
):
build-and-deploy.yml
,您可以看到它扩展到驱动器,并通过了两个模板
azure-pipeline.yml
和repoA
。在
extends:
template: templates/build-and-deploy.yml@repoB
parameters:
buildJobs:
- template: pipeline/build.yml
- template: pipeline/static-scans.yml
中,根据选定的参数,它将调用两个阶段文件
pipeline/build.yml
或pipeline/static-scans.yml
repoB
(在Repob中)
1.yml
(也在2.yml
中,还有一个模板/文件):
build-and-deploy.yml
stages:
- ${{ if eq(parameters.trunkFlow, true) }}:
- template: deployment-types/0.yml
parameters:
allowDevDeployment: ${{ parameters.allowDevDeployment }}
buildJobs:
- template: ${{ parameters.buildJobs }} // THIS DOES NOT WORK
devJobs:
- template: ${{ parameters.devJobs }} // THIS DOES NOT WORK
parameters:
environment: Dev
location: WestUS
...
- ${{ else }}:
- template: deployment-types/0.yml
parameters:
allowDevDeployment: ${{ parameters.allowDevDeployment }}
serviceEmail: $(platformAdoGroup)
buildJobs:
- template: ${{ parameters.buildJobs }} // THIS DOES NOT WORK
devJobs:
- template: ${{ parameters.devJobs }} // THIS DOES NOT WORK
parameters:
environment: Dev
location: WestUS
...
(也在
0.yml
中,还有一个模板/文件):想象为0.yml,只对分支策略进行更改。
这是错误:
/templates/build-and-deploy.yml@repob:读取“模板参考路径”时遇到的意外类型的“ sequenceToken”。预计“文字”类型。
引用模板来自
local存储库
IF
repoB
和local来引用
stage
模板不在远程存储库中,您需要使用stages: - ${{ if gt(length(parameters.buildJobs), 0) }}: - stage: Build jobs: - ${{ each job in parameters.buildJobs }}: - ${{ if startsWith(job.pool.vmImage, 'ubuntu') }}: - job: ${{ job.job }} pool: ${{ job.pool }} ${{ if job.condition }}: condition: ${{ job.condition }} ${{ if job.dependsOn }}: ... - ${{ if or(eq(variables['Build.SourceBranchName'], 'develop'), contains(variables['Build.SourceBranch'], '/support/'), contains(variables['Build.SourceBranch'], '/feature/')) }}: - ${{ if gt(length(parameters.devTestJobs), 0) }}: - stage: DevTest ${{ if ne(parameters.devTestStageLabel, 'none') }}: displayName: ${{ parameters.devTestStageLabel }} jobs: - ${{ parameters.devTestJobs }} - ${{ if ne(parameters.acunetixWebsite, 'none') }}: - stage: AcunetixOnDevTest dependsOn: ${{ parameters.acunetixDependsOn }} jobs: - template: ../scanning/acunetix.yml ...
模板(请参阅使用其他存储库中的示例))
1.yml
repoB
使用参数
您没有在stage
模板中显示参数(在Repob中),但是我假设
build.yml
具有类型static-scans.yml
-因此您应该这样使用它:repoB