Action of actions?

I am building workflows for our organization, and either I or github actions is missing a link:

  • I can create actions and publish them so workflows can use them; I can update those actions and workflows will get those updates (unless we version them) - check
  • I can create workflow templates so developers can use them - check.

Now, what if I update the workflow template to add something new/necessary ? all the current workflows won’t get those updates and I’ll have to go through hundreds of repos to update them.
Also: my work-in-progress workflow template is already long and starting to get hard to understand. So I’d like to abstract things away.

example:
almost all my workflows will always do, after the build phase:

  • aws-actions/configure-aws-credentials@v1
  • aws-actions/amazon-ecr-login@v1
  • actions/checkout@v2
  • actions/download-artifact@v2 (because we build in docker, so all builds will upload artifact)
  • build&tag&push to ECR <= custom action
  • build a kubernetes manifest <= custom action
  • deploy to kubernetes <= custom action
  • test deployment <= custom action
    ^^^ this will be a long workflow that will require updates (ie: “build manifest” or “deploy to k8s” actions will probably need new arguments as we go), and that will be common for most repositories.

=> So, ideally, I would like to put all those steps into something (a “function” ? a “shared library” ? a “action of actions”? ) that I can update and all workflows will get updates automatically (or not, if we use versioning).

=> is there something that does this already and I missed it ? and if not: how do I get traction to get this added on the roadmap ? (I’m hoping I’m not the only one who would need this …)

TL DR: is there such a thing as calling something stored in another repo, from a workflow that will run actions/steps ?

ps: Sorry if this is a dumb question

The actions/runner repository has an open issue about combining actions into one, but as far as I can see it’s not being worked on at the moment.

1 Like