Builtin support for artifact sharing

The current strategy to share artifacts between jobs is to use upload-artifact and download-artifact, which works reasonably enough but can get quite verbose. It would be nice to have a jobs.<job_id>.artifacts section, since it seems to be an often requested feature that fundamentally changes how workflows are written and used.

This could also enable artifact sharing between workflows (e.g. an option to specify the target path, which would by default depend on the commit sha and would be local to a push, but could then also be branch/tag specific or even global for the project), for things like shared caches between workflow runs.

Any plans to include something like this?

1 Like

We do plan to introduce someway to share artifacts between workflows as well as an option for caching between runs of the same workflow.

We don’t plan to introduce a specific keyword for artifacts just like we don’t have a keyword for checking out the repository.  Actions that you use in your workflow come from GitHub repos and we want all actions whether we create them or another GitHub user creates them to be referenced the same way.   

The only place where we have decided to deivate from this design is with the run keyword and this is because running a shell script is so common that we felt it needed to simply be built in.


Thanks, I really appreciate getting the reasoning on decisions like that.

I also considered the similarity to actions/checkout when I wrote this post, the reason why I hit “send” anyway is that an artifact action has a lot more possible parametrization, like expiration time and access rights. But in the end it all comes down to how well it’s documented, if that part is good then all is good.

It looks like it is only possible to  share artifacts between jobs of the same workflow.

How about sharing artifacts between workflows?



Its been 6months, any update on sharing artefacts between workflows?