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.

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