Azure Pipeline部署暂存功能咨询:能否跳过CI仅用部署功能并获取无构建步骤多阶段部署YAML示例
问题解答
能否仅使用Azure Pipeline部署功能、跳过CI流程
- 完全可以,Azure Pipeline没有强制要求必须接入CI(持续集成)流程、绑定代码仓库或者配置构建步骤,你可以按需只使用其部署能力完成多环境发布。
- 你只需要在YAML配置中关闭默认的代码源拉取行为,直接配置对应环境的部署任务即可,部署所需的制品可以提前上传到Azure制品库、指定可访问的存储地址拉取,也可以直接在部署任务中执行你需要的脚本命令。
无代码仓库、无构建步骤的多阶段部署YAML示例
# 关闭默认的代码提交触发、PR触发,按需手动触发即可 trigger: none pr: none # 不需要配置代码仓库资源,如有需要可以在这里配置你需要拉取的部署制品源 resources: repositories: [] stages: # 开发环境部署阶段 - stage: DeployToDev displayName: 部署到开发环境 jobs: - deployment: DevDeployment displayName: 开发环境部署任务 environment: 'dev-env' # 这里替换成你在Azure DevOps中提前创建的开发环境名称 pool: vmImage: 'ubuntu-latest' # 按需选择运行的代理镜像,也可以用私有代理 strategy: runOnce: deploy: steps: # 关键配置:不拉取任何代码仓库资源 - checkout: none # 在这里添加你需要的部署步骤,示例为执行Azure CLI命令部署 - task: AzureCLI@2 displayName: 执行Azure资源部署 inputs: azureSubscription: '你的Azure服务连接名称' scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | echo "开始执行开发环境部署逻辑" # 这里写你实际需要执行的部署命令,比如部署到Azure App Service、AKS、虚拟机等 az webapp deploy --name your-dev-webapp --resource-group your-dev-rg --src-path https://your-artifact-storage.blob.core.chinacloudapi.cn/builds/latest.zip # 测试环境部署阶段 - stage: DeployToTest displayName: 部署到测试环境 dependsOn: DeployToDev # 配置依赖开发环境部署完成后再执行 jobs: - deployment: TestDeployment displayName: 测试环境部署任务 environment: 'test-env' # 替换为你自己的测试环境名称 pool: vmImage: 'ubuntu-latest' strategy: runOnce: deploy: steps: - checkout: none - task: AzureCLI@2 displayName: 执行测试环境部署 inputs: azureSubscription: '你的Azure服务连接名称' scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | echo "开始执行测试环境部署逻辑" # 替换为测试环境实际部署命令 # 生产环境部署阶段 - stage: DeployToProd displayName: 部署到生产环境 dependsOn: DeployToTest # 可配置生产环境审批 condition: succeeded() jobs: - deployment: ProdDeployment displayName: 生产环境部署任务 environment: 'prod-env' # 替换为你自己的生产环境名称,可在环境配置中添加审批人 pool: vmImage: 'ubuntu-latest' strategy: runOnce: deploy: steps: - checkout: none - task: AzureCLI@2 displayName: 执行生产环境部署 inputs: azureSubscription: '你的Azure服务连接名称' scriptType: 'bash' scriptLocation: 'inlineScript' inlineScript: | echo "开始执行生产环境部署逻辑" # 替换为生产环境实际部署命令
配置说明
- 上述配置中的
checkout: none是核心配置,作用是跳过默认的代码拉取步骤,实现不需要关联代码仓库的效果 - 你可以根据实际需求调整部署步骤,比如替换为Kubernetes部署任务、SSH远程执行脚本、FTP上传等任意Azure Pipeline支持的部署任务
- 各个阶段的依赖关系、审批策略都可以按需调整,生产环境建议在Azure DevOps的环境配置中添加手动审批规则,避免误发布
内容的提问来源于stack exchange,提问作者Hemant Kumar
相关产品推荐
相关产品推荐

