我有以下管道
variables:
azureSubscription: ...
stages:
- stage: Deploy
displayName: Deploy stage
dependsOn: Build
condition: succeeded()
jobs:
- deployment: Deploy
displayName: Deploy
environment: 'development'
strategy:
runOnce:
deploy:
steps:
- task: AzureResourceGroupDeployment@2
inputs:
action: 'Create Or Update Resource Group'
resourceGroupName: '...'
location: '...'
templateLocation: 'Linked artifact'
csmFile: '$(Pipeline.Workspace)/azure-deploy.json'
deploymentMode: 'Incremental'
回购包含以下文件(在根目录中)
azure-pipelines.yaml
azure-deploy.json
只有一个主分支。
我尝试过:
azure-deploy.json
**azure-deploy.json
**/*azure-deploy.json
$(Build.SourcesDirectory)/azure-deploy.json
$(Pipeline.Workspace)/azure-deploy.json
$(System.DefaultWorkingDirectory)/azure-deploy.json
已阅读:
无济于事。有什么想法吗?
更新:我已经添加了@ShaykiAbramczyk建议的发布管道 现在,我得到一个模板文件模式,该模式与目录而不是文件匹配:/home/vsts/work/1/azure-deploy.json
- stage: Build
displayName: Build stage
jobs:
- job: Build
displayName: Build
pool:
vmImage: $(vmImageName)
steps:
- task: PublishPipelineArtifact@1
inputs:
targetPath: '$(Pipeline.Workspace)'
artifact: 'azure-deploy.json'
publishLocation: 'pipeline'
答案 0 :(得分:1)
对于您正在做的事情来说,采用多阶段管道是一个好策略。
如果在部署作业期间需要源,则使用签出步骤来获取源。 ref. Repo Checkout docs。
只有我的两分钱
答案 1 :(得分:1)
“部署作业不会自动克隆源存储库。您可以使用 checkout: self
在您的作业中检出源存储库。”
来源:https://docs.microsoft.com/en-us/azure/devops/pipelines/process/deployment-jobs?view=azure-devops
我的设置示例,我将 checkout: self
作为第一步,现在在执行 Azure PowerShell 之前克隆了我的存储库:
strategy:
runOnce:
deploy:
steps:
- checkout: self
- task: AzurePowerShell@5
displayName: Setup Network
inputs:
答案 2 :(得分:0)
因为您使用deployment
作业,所以master分支中的源没有下载到代理中。
您需要在构建阶段发布文件,并在部署中使用它们-使用pipeline artifacts。
或者,只需在常规作业中运行AzureResourceGroupDeployment
,便会在代理中插入.json
文件。