我现在将大部分经典构建管道转换为 yaml。 yaml 转换工具 devop 基本上将我的经典构建管道任务视为单独的 yaml 任务。所以现在我有一份大约有 8 项任务的工作。
在学习yaml时,我看到有些会创建多个作业,有些甚至会创建多个阶段。对我来说,阶段似乎适合不同的部署环境(开发、QA、UAT 等)。但我不确定什么时候应该使用多个作业?
假设我在一个存储库中有两个解决方案,并且想要构建这两个解决方案,并且我的工件将包含这两个解决方案的 dll。对于每个解决方案,我的任务将是构建、运行单元测试并打包 dll。
我可以把所有这些都放在一项工作中,所以这将是一步一步完成的连续任务。或者我可以创建两个作业,每个作业处理一个解决方案的构建。但与一项工作相比,使用多项工作有什么好处吗?微软似乎允许你的代理并行运行两个作业(理论上会更快),但他们会为此收费。
谢谢
此层次结构反映在 YAML 文件的结构中,例如:
管道是描述 CI/CD 流程的一个或多个阶段。阶段 是管道中的主要部门。 “构建此应用程序”阶段 “运行这些测试”和“部署到预生产”就是很好的例子。
阶段是一个或多个作业,它们是可分配给阶段的工作单元 同一台机器。您可以将阶段和作业安排为依赖关系 图表。示例包括“在该阶段之前运行此阶段”和“此阶段” 工作取决于该工作的产出。”
工作是一系列线性步骤。步骤可以是任务、脚本或 对外部模板的引用。
作业是由代理或服务器运行的步骤的集合。作业可以有条件地运行,并且可能依赖于较早的作业。作业可以有不同的类型,具体取决于它们运行的位置。
你提到的情况是Jobs的一种用法。如果您使用多个自托管代理,您将看到好处,它不会收费,并且您可以使用 demands 来指定代理必须具备哪些功能来运行您的作业。