在工作流/ Github操作之间共享工件

时间:2020-02-22 19:22:55

标签: github continuous-integration github-actions

我知道您可以在相同工作流程的作业之间共享工件...

但是如何在不同的工作流程之间共享工件?

2 个答案:

答案 0 :(得分:3)

可能尚不可行:

工作流程结束后,您可以通过在“操作”选项卡中找到运行的工作流程,在GitHub上下载已上传工件的存档。 GitHub当前不提供REST API来检索上传的工件。

如果需要从以前运行的工作流中访问工件,则需要将工件存储在某个地方。例如,您可以在工作流的末尾运行脚本,以将构建工件存储在Amazon S3或Artifactory上,然后使用存储服务的API在以后的工作流中检索这些工件。

https://help.github.com/en/actions/configuring-and-managing-workflows/persisting-workflow-data-using-artifacts#sharing-data-between-workflow-runs

答案 1 :(得分:2)

GitHub现在添加了REST API for downloading artifacts。基本上你会

GET repos/{owner}/{repo}/actions/artifacts/{artifact_id}/{archive_format}

然后,您必须在响应中寻找Location:,然后访问该URL以下载工件。该网址有效期为1分钟。

有一个使用上述API的GitHub Action,您可以轻松地将其添加到工作流中。我这样使用它

- name: Download artifact
  uses: dawidd6/action-download-artifact@v2
  with:
    workflow: ${{ github.event.workflow_run.workflow_id }}
    workflow_conclusion: success

在此处详细了解:https://github.com/dawidd6/action-download-artifact