Github Actions: Sharing artifacts between jobs
Thiago (Zozô) Ozores
Posted on February 28, 2021
This will be a quick tip.
Some days ago, configuring a pipeline inside Github Actions I had the need to use a file generated by a job in another job, that are using distinct OS.
It's pretty straight forward do that, the only thing that you need is the upload-artifact
and the download-artifact
actions
Here is an example:
job1:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v1
- run: mkdir -p dist
- run: echo hello > dist/world.txt
- uses: actions/upload-artifact@master
with:
name: hello-world-artifact
path: dist/world.txt
job2:
runs-on: macos-latest
steps:
- run: mkdir -p dist
- uses: actions/download-artifact@master
with:
name: hello-world-artifact
path: dist/world.txt
- run: cat dist/world.txt
Source code and documentation for the actions:
BONUS TIP
I had the need to fetch a file from the Github Releases as well and to do that I used the third-party action dsaltares/fetch-gh-release-asset@master
, but the drawback is that action only runs on Linux (because of that I have to copy an artifact from one job to another one ;-) )
Here is an example:
uses: dsaltares/fetch-gh-release-asset@master
with:
repo: "your-user/your-repo"
version: "latest"
file: "package.zip"
target: "dist/package.zip"
token: ${{ secrets.YOUR_TOKEN }} # If your repo is private, you need to fill with the personal access token
Source code and documentation for the dsaltares/fetch-gh-release-asset action
That's all folks! Thank you and stay in tune for more tips.
Posted on February 28, 2021
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.
Related
November 29, 2024