pillarbox-apple
pillarbox-apple copied to clipboard
Move CI to GitHub actions or similar
As a developer I need a reliable, scalable CI solution well integrated with GitHub. Actions seems a natural choice.
Acceptance criteria
- All CI checks successfully run with GitHub actions.
- Credentials are managed reliably.
Hints
- We are a non-profit organization and as such can benefit from reduced prices or even free access to some services (e.g. Bitrise).
- General hints.
- Act could be helpful to run things locally and replace our Makefile.
- Interesting article.
- Another interesting article.
- Another one.
- Two articles to build a custom runner.
- Another one.
- pkgx could be very useful.
- A very interesting similar tool.
- Mise could be useful.
- I would recommend we fork the existing repository to integrate everything, then once everything is working port it back to the original repository. This way we can avoid having to make any required configuration changes, even if those involve the whole repository, not just a branch.
- Another article.
- MacStadium Orka.
Tasks
- [ ] Fork repository to be able to play without breaking anything.
- [ ] Install runners on all self-hosted CI agents (name them
rts-events
, e.g.). - [ ] Configure the runners to run as services.
- [ ] Find a way to expose installed tools to the runner.
.path
file maybe? Maybe read this post and related links as well, most notably official documentation... - [ ] ... or install them as dependencies and cache them. But likely a bit tricky.
- [ ] Configure actions.
- [ ] Run jobs when appropriate (e.g. archiving not required if source code not changed).
- [ ] Lint workflow YAML files.
- [ ] Update the CI documentation.
- [ ] Remove unused TeamCity configuration.
- [ ] Remove unused GitHub tokens created for TeamCity.
- [ ] Port the code back from the fork to an issue branch on the original repository.
- [ ] Configure the original repository if needed.
- [ ] Configure policies so that actions are triggered by PRs from the organization.
- [ ] Automatically deliver release demo binaries on tags.
- [ ] A trick to handle CI tasks on Intel CI agents if needed.
- [ ] An article about creating a scalable CI infrastructure on EC2.