gpt4 book ai didi

azure-devops - PublishPipelineArtifact .artifact 忽略无法识别

转载 作者:行者123 更新时间:2023-12-03 15:44:15 27 4
gpt4 key购买 nike

我正在使用 Azure DevOps 构建管道将工件发送到发布管道。我的构建管道如下:

  • 使用 NodeTool@0 安装 Node JS
  • 运行运行 npm install 然后运行测试套件的脚本命令。
  • 通过 PublishCodeCoverageResults@1 发布代码覆盖率结果
  • 使用 PublishPipelineArtifact@1 发布工件和 targetPath: '$(Pipeline.Workspace)'作为工件目录。

  • 当我最初在没有使用代码覆盖率部分的情况下这样做时,IE 没有安装节点,发送的文件为 257,略高于 25MB。完全可行且快速。

    然而,当我安装 node 并运行代码覆盖率时,文件爆炸到 750MB,这是可以理解的 - 但恕我直言,作为工件传输太多了。

    所以,查看一个解决方案,我发现了这个: https://docs.microsoft.com/en-us/azure/devops/artifacts/reference/artifactignore?view=azure-devops

    而且,我将其添加到 repo 的根目录中。

    Example

    然而,这个文件在使用 PublishPipelineArtifact@1 时似乎没有什么不同。根本。无论我做什么,工作区中的所有文件都被用作工件。

    但是,有效的是在构建过程中物理删除文件。

    我意识到这是一个问题的很多细节,但我想知道 .artifactignore 文件是否真的适用于这个构建管道?

    有没有一种方法可以正确使用工件忽略文件,而不必担心在创建工件之前删除文件?

    试图更改 PublishPipelineArtifact@1 中的目标目录任务。

    这是当前工作的 YAML:
    # Node.js with Angular
    # Build a Node.js project that uses Angular.
    # Add steps that analyze code, save build artifacts, deploy, and more:
    # https://docs.microsoft.com/azure/devops/pipelines/languages/javascript

    trigger:
    - master

    pool:
    vmImage: 'ubuntu-latest'

    steps:
    - task: NodeTool@0
    inputs:
    versionSpec: '10.x'
    displayName: 'Install Node.js'

    - script: |
    npm install
    npm run test:devops
    displayName: 'npm install and test'

    - task: PublishCodeCoverageResults@1
    displayName: 'publish ng code coverage results'
    condition: succeededOrFailed()
    inputs:
    codeCoverageTool: 'Cobertura'
    summaryFileLocation: 'coverage/cobertura-coverage.xml'
    reportDirectory: coverage
    failIfCoverageEmpty: true

    - task: DeleteFiles@1
    inputs:
    SourceFolder: '$(Pipeline.Workspace)/s'
    Contents: |
    node_modules
    coverage

    - task: PublishPipelineArtifact@1
    inputs:
    targetPath: '$(Pipeline.Workspace)'
    artifact: 'my-artifact'

    预期的结果将是一个较小的工件文件,它仍然发布代码覆盖率并安装 node.js 文件。

    最佳答案

    .artifactignore应该在与定义为发布管道工件任务的目标路径相同的目录中(不仅在 repo 的根目录中,如 azure-pipelines.yml)。

    不在文档中,并且存在一个问题 here .还检查here .

    关于azure-devops - PublishPipelineArtifact .artifact 忽略无法识别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57042995/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com