更改Azure Pipelines中的当前工作目录

sou*_*ult 11 azure azure-devops azure-pipelines

我正在Azure管道(https://github.com/scikit-image/scikit-image/blob/azure-pipelines/azure-pipelines.yml)中为Python包开发CI 。在某个时候,我需要跳出源代码目录以允许pytest发现此软件包的安装,并运行相应的测试。

我现在面临的问题是关系到一个事实,即cdcd C:等命令似乎并没有造成什么影响,从而使当前的工作目录保持不变(在这种特殊情况下,D:\a\1\s)。

有没有办法克服上述限制?

sou*_*ult 21

花了很多时间寻找解决方案,但是,很明显,还有就是要为特定的脚本工作目录的方式- https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/command -line?view = vsts&tabs = yaml

- script: # script path or inline
  workingDirectory: #
  displayName: #
  failOnStderr: #
  env:  # mapping of environment variables to add
Run Code Online (Sandbox Code Playgroud)

  • 答案只是强调有一个“workingDirectory:”修饰符。在发布此信息时确实很难找到。 (4认同)
  • 你到底是什么意思?您可以在 YAML 中的每个步骤中使用“workingDirectory: subfolder/”,其中子文件夹相对于存储库根目录。即使您的管道位于“subfolder/azure-pipeline.yml”,您也需要这个 (3认同)
  • 您是否还知道如何将其放入管道的文件夹中(这似乎是一个常见的用例)? (2认同)

小智 19

了解 Azure DevOps 中的目录位置的简单解决方案:-

- task: CmdLine@2
  inputs:
    script: |
      echo  '$(System.DefaultWorkingDirectory)'
      dir
      dir subfoldername
Run Code Online (Sandbox Code Playgroud)

您需要调用命令行并使用 System.DefaultWorkingDirectory 获取当前路径,dir 将列出所有文件夹和文件,并使用 dir subfoldername 我们可以遍历子文件夹