CopyFiles 任务不拾取文件

CopyFiles Task not picking up files

在数据库项目构建和发布管道中使用 Azure DevOps YAML

这段代码正确地提取了我的四个 dacpac 文件,我可以在控制台中看到它们被复制了

    - task: CopyFiles@2
      displayName: Copy build output to artifacts staging
      inputs:
        SourceFolder: "$(Build.SourcesDirectory)"
        flattenFolders: true
        Contents: '**\bin\**\*.dacpac'
        TargetFolder: "$(Build.ArtifactStagingDirectory)"

这段代码正确地获取了我的发布文件,我可以在控制台中看到这些正在被复制

    - task: CopyFiles@2
      displayName: Copy build output to artifacts staging
      inputs:
        SourceFolder: "$(Build.SourcesDirectory)"
        flattenFolders: true
        Contents: '**\PublishProfile\*.publish.xml'
        TargetFolder: "$(Build.ArtifactStagingDirectory)"

这段代码报告“找到零个文件”

    - task: CopyFiles@2
      displayName: Copy build output to artifacts staging
      inputs:
        SourceFolder: "$(Build.SourcesDirectory)"
        flattenFolders: true
        Contents: |
          '**\bin\**\*.dacpac'
          '**\PublishProfile\*.publish.xml'
        TargetFolder: "$(Build.ArtifactStagingDirectory)"

此管道多行语法遍布示例 https://docs.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/copy-files?view=azure-devops&tabs=yaml#examples

我还使用 Get-ChildItem 来双重确认文件是否存在。

好像是| / multiline 与描述的不一样。

像往常一样,在我写这篇文章时我详细检查了我的代码和示例之间的一个区别是单引号。

因此,如果您删除单引号,它会起作用。

有人对这些东西进行质量检查吗?

    - task: CopyFiles@2
      displayName: Copy build output to artifacts staging
      inputs:
        SourceFolder: "$(Build.SourcesDirectory)"
        flattenFolders: true
        Contents: |
          # NOTE THESE PATHS ARE NOT SURROUNDED BY SINGLE QUOTES
          # EVEN THOUGH THIS WORKS IN THE SINGLE LINE VERSION
          **\bin\**\*.dacpac
          **\PublishProfile\*.publish.xml
        TargetFolder: "$(Build.ArtifactStagingDirectory)"

其他节省时间的热点提示:

  • 使用它来列出文件以帮助解决丢失文件的问题

    - task: Bash@3
      inputs:
        targetType: inline
        workingDirectory: $(PIPELINE.WORKSPACE)
        script: ls -R
    
  • 记住 Linux 是区分大小写的 - 如果大小写错误,它将找不到您的文件

  • 截至目前,您无法参数化服务连接。也许将来会改变

  • YAML 中的缩进可能有误,但它没有提供任何线索

此代码使变量组 TST 中的所有变量都可用(这些在“库”下而不是“环境”下 - 看图)

variables:
- group: TST

此代码(带有额外的缩进)不会引发错误或提供任何线索,它只是没有提供任何变量。您所有的变量,如 $(MyVariable) 都将被视为文字

variables:
  - group: TST