Skip to content

Investigate Composite Actions for CI #371

Description

@MRichards99

Description:
Our CI (in this repo and many of our others) uses GitHub Actions. For the most part his works well, but there is repetition between the different CI workflow files in each repository. A good example of this is setting up and running ICAT Ansible - DataGateway API, DataGateway and various ICAT repos all follow similar steps to get ICAT Ansible running, yet they're all copied & pasted from each other; the steps are duplicated in this repo more than once because ICAT Ansible has to run in different jobs.

One solution to this might be composite actions. GitHub has written an article that walks through a basic example. basic guide of how they work. I've also found an article on dev.to that compares composite actions against something called reusable workflows. I don't know anything about reusable workflows so this might be something also worth investigating - the article points out some specific differences that might make one more appropriate than the other for our use cases.

It would be good if you could investigate this to find out how we can reduce duplication within our CI workflows. Common points of duplication are as follows:

Acceptance criteria:

  • Investigate how composite actions and reusable workflows work - make a small example so you can learn and demonstrate how it works
  • Make a plan of how to tackle each of the common points of duplication - should composite actions or reusable workflows be used, be comfortable with how you'd do it etc.
  • Either do the work within the scope of this issue or split up the changes into different issues (we can work this out nearer the time)

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions