Share artifacts between workflows / Github Actions

假如想象 提交于 2020-12-26 06:42:39

问题


I know that you can share artifacts between jobs of the same workflow...

But how can I share artifacts across different workflows?


回答1:


Probably not yet doable:

After a workflow ends, you can download an archive of the uploaded artifacts on GitHub by finding the workflow run in the Actions tab. GitHub does not currently offer a REST API to retrieve uploaded artifacts.

If you need to access artifacts from a previously run workflow, you'll need to store the artifacts somewhere. For example, you could run a script at the end of your workflow to store build artifacts on Amazon S3 or Artifactory, and then use the storage service's API to retrieve those artifacts in a future workflow.

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




回答2:


GitHub has now added a REST API for downloading artifacts. Basically you do

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

And then you'll have to look for Location: in the response, and then access that url to download the artifact. The url is valid for 1 minute.

There's a GitHub Action that uses the API above that you can easily add to your workflow. I use it like this

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

Read more about it here: https://github.com/dawidd6/action-download-artifact



来源:https://stackoverflow.com/questions/60355925/share-artifacts-between-workflows-github-actions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!