在 Azure DevOps CI 的 yaml 配置文件中,我有一个 CopyFiles@2 任务,以便为 PublishBuildArtifacts 暂存文件。我想 (1) 从源目录的根目录复制特定文件,以及 (2) 从特定文件夹复制所有文件。我可以成功复制特定文件,但是当我添加特定文件夹的行时,它会失败。这是 yaml 片段:
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)
contents:
?(binclash.log|init-tools.log)
logs/**/*
targetFolder: $(Build.ArtifactStagingDirectory)
源的文件夹树如下所示:
<repo root>
`-- binclash.log
`-- init-tools.log
`-- logs
|-- debug
`-- release
`-- src
`-- ml.cs
如所列,此报告发现零个文件。但是,如果我删除logs/**/*,它会成功找到并复制 binclash.log 和 init-tools.log。我是否缺少一些与引号或换行符相关的语法?
我有一个非常类似的问题,我想使用特定的文件夹作为我的构建工件。
当您直接定位文件夹时:logs/**/*,它返回 0 个结果。
相反尝试使用**/logs/**
我已经更新了您的代码片段如下:
- task: CopyFiles@2
inputs:
sourceFolder: $(Build.SourcesDirectory)
contents:
?(binclash.log|init-tools.log)
**/logs/**
targetFolder: $(Build.ArtifactStagingDirectory)
Run Code Online (Sandbox Code Playgroud)
当我查看您的代码时,我注意到您可以简化为:
- task: CopyFiles@2
inputs:
contents: '**/logs/**/?(binclash.log|init-tools.log)'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
13328 次 |
| 最近记录: |