【问题标题】:How do I add additional files to the Azure DevOps artifacts?如何将其他文件添加到 Azure DevOps 项目?
【发布时间】:2021-01-22 14:37:17
【问题描述】:

我的 Azure DevOps 管道正在成功地将我的 Web 服务打包到一个 zip 文件中,并执行以下任务:

- task: DotNetCoreCLI@2
  displayName: Pack Artifacts
  inputs:
    command: 'publish'
    publishWebProjects: false
    arguments: '"Web Service" --configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'

这会将项目的全部内容存放在 'drop\a.zip' 的 zip 文件中。现在,我有一个脚本(setup.ps1),我想运行它来打开防火墙和一个需要安装的 SSL 证书。我想将它们添加到作为“发布”操作目标的同一 zip 文件中。我试过这个:

- task: CopyFiles@2
  inputs:
    SourceFolder: 'Additional Files'
    Contents: '*'
    TargetFolder: '$(Build.ArtifactStagingDirectory)'
    flattenFolders: true

但它只是将“附加文件”目录中的文件添加到 a.zip 文件旁边的“\drop”目录中:

drop
  a.zip
  setup.ps1
  www_mysite_com.pfx

我将如何将其他文件添加到作为构建和发布步骤的一部分创建的 zip 文件中。这一定是一个普遍的问题。常见的解决方案是什么?

【问题讨论】:

  • 未获得您的最新信息。只是想检查以下答案是否对您有帮助?如果是,您可以接受一个答案,该答案也可以使与您有相同困惑的其他人受益,我们可以存档此线程。另外,如果仍有任何疑问,请随时在下面发表评论:-)

标签: azure-devops artifacts


【解决方案1】:

您有三个选择:

  • 解压存档,复制文件并再次打包
  • 将文件添加到存档 - 就像显示的 here
  • 将您的文件添加到解决方案并让 dotnet publish 负责将文件放入存档中,如 here 所示

【讨论】:

    【解决方案2】:

    您的工件目录应该是

    drop
      a.zip
    

    现在,您想将setup.ps1www_mysite_com.pfx 添加到文件夹a,对吗?

    YAML 示例:

    - task: DotNetCoreCLI@2
      displayName: Pack Artifacts
      inputs:
        command: 'publish'
        publishWebProjects: false
        arguments: '"Web Service" --configuration $(BuildConfiguration) --output $(Build.ArtifactStagingDirectory)'
    
    #Extract a.zip file to $(Build.ArtifactStagingDirectory)/drop/a folder
    
    - task: ExtractFiles@1
      inputs:
        archiveFilePatterns: '$(Build.ArtifactStagingDirectory)/drop/a.zip'
        destinationFolder: '$(Build.ArtifactStagingDirectory)/drop/a'
        cleanDestinationFolder: false
        overwriteExistingFiles: false
    
    #Delete PrescQIPPWebApp.zip file
    - task: PowerShell@2
      inputs:
        targetType: 'inline'
        script: 'Remove-Item ''$(Build.ArtifactStagingDirectory)/drop/a.zip'''
    
    #copy these files to the folder a
    - task: CopyFiles@2
      inputs:
        SourceFolder: 'Additional Files'
        Contents: |
          setup.ps1
          www_mysite_com.pfx
        TargetFolder: '$(Build.ArtifactStagingDirectory)/drop/a'
        OverWrite: true
        flattenFolders: true
    
    #Archive folder a to a.zip
    
    - task: ArchiveFiles@2
      inputs:
        rootFolderOrFile: '$(Build.ArtifactStagingDirectory)/drop/a'
        includeRootFolder: true
        archiveType: 'zip'
        archiveFile: '$(Build.ArtifactStagingDirectory)/drop/a.zip'
        replaceExistingArchive: true
    
    
    #Delete a folder
    - task: PowerShell@2
      inputs:
        targetType: 'inline'
        script: 'Remove-Item -path ''$(Build.ArtifactStagingDirectory)/drop/a'' -Recurse -Force -EA SilentlyContinue -Verbose'
    
    #And now, we could the a.zip contain the file setup.ps1 and www_mysite_com.pfx.
    

    我们也可以查看这个帖子Adding additional files to Azure Build Pipeline

    【讨论】:

      猜你喜欢
      • 2020-02-14
      • 2021-04-24
      • 2019-04-21
      • 1970-01-01
      • 2019-05-01
      • 1970-01-01
      • 2020-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多