我正在使用蔚蓝的多级管道,在单独的存储库中使用带有模板的部署作业。我目前正在开始在部署过程中使用ARM模板,并且还希望运行位于不同存储库中的ARM模板。这是我遇到困难的地方,任何帮助/建议都值得赞赏。
为说明我的设置,
所以我要完成的事情: A 使用 B 使用 C 。
REPA A:文档构建和发布yml
resources:
repositories:
- repository: templates
type: git
name: <ACCOUNT>/Azure.Pipelines.Templates
ref: refs/tags/2.2.40
stages:
- stage: Build
jobs:
- template: src/jobs/doc-build.yml@templates
- stage: DEV
jobs:
- template: src/deployment-jobs/doc.yml@templates
....
REPO B:文档部署
parameters:
webAppName: ''
connectedServiceName: 'DEV'
jobs:
- deployment: doc_deploy
pool:
name: 'DOC'
environment: 'doc'
strategy:
runOnce:
deploy:
steps:
- template: ../deployment/arm-template.yml
parameters:
connectedServiceName: ${{ parameters.connectedServiceName }}
resourceGroupName: 'documentation'
templateFile: $(Build.SourcesDirectory)/Azure.ARM.Templates/src/web-app/documentation.jsonc
paramFile: $(Build.SourcesDirectory)/Azure.ARM.Templates/src/web-app/documentation-params.json
parameters: -name ${{ parameters.webAppName }}
...
REPO C:包含手臂模板+参数文件
我面临的问题是我似乎无法获取仓库的文件。我尝试在多个级别上添加另一个repository
条目,但它似乎根本没有克隆从属存储库。
我当前的解决方法/解决方案:
使用powershell脚本手动克隆repo C并直接引用磁盘上的文件。
相关的github问题:https://github.com/microsoft/azure-pipelines-yaml/issues/103
答案 0 :(得分:2)
我也偶然发现了这个问题,不得不将手臂模板从另一个仓库加载到当前版本中。我所做的是在包含arm模板的仓库上建立构建,并通过以下azure-pipelines.yml生成构建工件:(这将是您的仓库c)
trigger:
- master
steps:
- task: PublishBuildArtifacts@1
inputs:
PathtoPublish: '$(System.DefaultWorkingDirectory)/templates'
ArtifactName: 'templates'
publishLocation: 'Container'
然后,我可以将以下步骤添加到实际管道中:
- task: DownloadPipelineArtifact@2
displayName: 'Get ARM Templates'
inputs:
buildType: 'specific'
project: <YOUR-PROJECT-ID>'
definition: '<ARM-BUILD-DEFINITION-ID>'
buildVersionToDownload: 'latest'
artifactName: 'scripts'
targetPath: '$(Pipeline.Workspace)/templates'
我可以按以下方式访问文件:
- task: AzureResourceGroupDeployment@2
displayName: 'Create Queues $(ResourceGroup.Name) '
inputs:
azureSubscription: '<YOUR-SUBSCRIPTION>'
resourceGroupName: '$(ResourceGroup.Name)'
location: '$(ResourceGroup.Location)'
csmFile: '$(Pipeline.Workspace)/templates/servicebus.json'
有关“下载管道工件”任务的更多信息,请查看以下链接: Download Pipeline Artifact task