Basically all my projects are hosted on GitHub actions. It's really comfortable solution as it allows to keep all project related stuff in one place — code, CI/CD pipeline and the build history. Additionally, there is something about using "native" CI solution — the same platform which keeps your code allows to build it and ship it to users. It feels somehow complete and I like that.

The one thing which I missed in this setup was ability to divide your CI/CD pipeline into smaller bits and compose them in the actual workflow.

Today I learned that it's totally possible using Composite Run Steps Action. It's simple YAML file which defines the step, it's inputs and outputs, and then you can just refer to this step in your main workflow. I can't describe it better than official documentation, so reach here to find out more.