如何为 github 工作流操作归档工件中的文件以修复此警告?

Posted

技术标签:

【中文标题】如何为 github 工作流操作归档工件中的文件以修复此警告?【英文标题】:How to archive files in artifact for github workflow actions in order to fix this warning? 【发布时间】:2021-09-28 20:50:34 【问题描述】:

此工件中有超过 10,000 个文件,请考虑在上传前创建存档以提高上传性能。

【问题讨论】:

【参考方案1】:

我在将节点应用部署到 Azure 应用服务时遇到了这个问题。

我通过添加一个 zip 和一个解压缩步骤来修复它。

压缩步骤是

  - name: Zip artifact for deployment
    run: zip release.zip ./* -r

解压步骤是

  - name: unzip artifact for deployment
    run: unzip release.zip

像这样在构建步骤之后和上传工件步骤之前添加 zip 步骤

  - name: npm install, build, and test
    run: |
      npm install
      npm run build --if-present
      npm run test --if-present

  - name: Zip artifact for deployment
    run: zip release.zip ./* -r

  - name: Upload artifact for deployment job
    uses: actions/upload-artifact@v2
    with:
      name: node-app
      path: release.zip

然后像这样在下载工件步骤之后和部署步骤之前添加解压缩步骤。

steps:
  - name: Download artifact from build job
    uses: actions/download-artifact@v2
    with:
      name: node-app
      
  - name: unzip artifact for deployment
    run: unzip release.zip

  - name: 'Deploy to Azure Web App'
    id: deploy-to-webapp
    uses: azure/webapps-deploy@v2
    with:

【讨论】:

很好的答案,我正在寻找一种方法来加快我的天蓝色部署,就是这样。我从平均 40 分钟部署到 5 分钟部署,非常感谢您的回答! 小心隐藏文件/目录(即那些以点开头的文件),因为它不会选择它们。就我而言,我必须手动添加那些 (zip -r release.zip * .env .next) @helpse 谢谢,我需要为我的下一个 js 应用添加“.next” 您也可以在解压步骤后通过运行rm release.zip删除压缩文件【参考方案2】:

在将基于 React 的应用部署到 Azure 应用服务时,我也遇到了这个问题。

补充@steve写的答案,如果App服务实例是基于windows的,可以使用Powershell的Compress-Archive

在构建步骤中 - 压缩

Compress-Archive . release.zip

在部署步骤中 - 解压

Expand-Archive release.zip

unzip release.zip

如果部署脚本使用 bash

【讨论】:

【参考方案3】:

您可以使用以下命令压缩所有文件,然后将 zip 文件夹作为您的工件上传。

zip artifact.zip <generated_files>/*

【讨论】:

以上是关于如何为 github 工作流操作归档工件中的文件以修复此警告?的主要内容,如果未能解决你的问题,请参考以下文章

maven-jar-plugin:如何为测试创建不同的工件名称?

在 Jenkins 中执行 Artifacts 时存档文件压缩

Github 操作在作业之间共享工作区/工件?

如何为 GitLab CI 运行器启用 Maven 工件缓存?

Azure Pipelines 如何为“仅限手动”触发的版本筛选每个阶段的工件

如何为以编程方式存储在变量中的按钮添加 android 可绘制文件的值?