首页 > 解决方案 > 天蓝色管道“命令行”代理作业是否从上一个作业继承工作目录?

问题描述

我对 azure pipelines 代理工作的理解是:

  1. 每个工作都是独立的
  2. 并且每个“命令行”作业都在其自己的上下文中运行,具有独立的范围。

但是,如果未设置 azure 管道“命令行”的工作目录,则默认为之前“命令行”代理作业的工作目录。

标签: windowsazure-pipelines

解决方案


在我回答这个问题之前,我想确保术语是清楚的:

  • 管道是 ci cd 流程的总体定义,它们可以包含多个阶段。

  • 阶段是管道的阶段,例如构建、测试、部署......它们可以包含多个作业。

  • 作业是实施您的流程所需的任务/步骤的集合。它们包含一个或多个任务/步骤。

  • 任务或步骤是正在执行的实际操作,例如“执行此命令”“构建该 dotnet 项目”...

在每个作业之间重置环境(意味着将使用新的虚拟机,再次拉取资源等)。在属于同一作业的每个任务或步骤之间,您将保持相同的环境,并且每个任务将从之前的结果“受益”(文件更改,环境变量......)。
在工作目录方面,它们都默认为 build.workingDirectory(请参阅 azure devops 默认变量)。如果您将一项任务的工作目录设置为不同的目录,则不会影响其他任务。


推荐阅读