azure-devops - 我应该如何控制我的部署流程?
问题描述
新的管道最佳实践是什么?
文档到处都是,而且严重不完整。
允许您像一年前一样使用 Gates 和 Checks 的环境被标记为很快支持 AppServices,该部分已被删除。
支持的环境“您现在不必指定资源”这意味着我可以通过代码来完成,现在已被“当前支持 Kubernetes 资源和虚拟机资源类型”所取代。
原本应该充当门的手动干预任务在等待 6 个月后变成了美化的“睡眠”,现在也仅适用于服务器,而不适用于 Microsoft 托管代理。
当推动最佳实践以使用一条管道来运行验证、测试、构建、部署到开发、测试和生产时,您需要对发布流程进行该死的控制,而如何实现这一点却无处可寻。
这里的计划是什么?我如何实现这些目标?我是否打破了最佳实践并制作了多个管道?我是否通过使用旧版发布管道将自己逼入绝境?为什么还没有将发布管道功能和 GUI 移植到 YAML?
至少可以说,设计和工作流程变得令人愤怒、不必要的复杂和烦人。
我可能找到了解决方法:https ://ochzhen.com/blog/manual-trigger-in-yaml-azure-pipelines
任何人都可以帮助解释或指出新 Azure Pipelines 最佳实践的方向吗?
解决方案
为了隔离管道中的不同环境,我们使用像这样的变量和条件 https://docs.microsoft.com/en-us/azure/devops/pipelines/process/conditions?view=azure-devops&tabs=yaml
# Special Run Description Variables
- name: IsPullRequest
value: ${{ or(eq(variables['Build.Reason'], 'PullRequest'), eq(parameters.ForcePullRequest, true)) }}
- name: IsCIRun
value: ${{ or(and(eq(variables['Build.SourceBranch'], 'refs/heads/develop'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI')), eq(parameters.DeployCI, true)) }}
- name: IsUatRun
value: ${{ or(and(eq(variables['Build.SourceBranch'], 'refs/heads/main'), in(variables['Build.Reason'], 'IndividualCI', 'BatchedCI')), eq(parameters.DeployUat, true)) }}
不确定这是否能回答您的问题,但希望这是一个很好的起点
推荐阅读
- csv - 将 pyspark 与 Neo4j 连接
- google-sheets - 将 Yahoo Finance 的特定数据导入 Google 表格
- c - 为什么调用日志函数时不能使用变量?
- ios - 使用 selenium java 和 appium 的 iphone safari 缓存清除问题
- python - 通过python函数查找电子邮件的模式
- html - 为什么围绕img标签的div总是比img大?
- ruby - 运行水豚测试时如何解决自签名证书错误?
- javascript - 使用声音绘画的代码不起作用
- node.js - 无法在 bitbucket 管道中的 node.js 映像中执行 bash 脚本
- java - 创建名为“userRepository”的 bean 时出错:FactoryBean 在创建对象时抛出异常