Describe the limitation you currently see in Operese
A lot of the execution time in Forgejo actions on the main repository is spent installing required dependencies. This slows down the PR review process and places unnecessary load on the runner machines.
Describe your solution and how it addresses the limitation
Since we provide our own runners, the configuration can easily be adjusted to use custom images (https://forgejo.org/docs/latest/admin/actions/runner-installation/#configuration).
By building our own Docker images with all required dependencies (clang, wine, rust w/ Windows targets, etc.), we can shave off all the time and bandwidth used by the dependency installation stages of any jobs.
Describe the intended implementation of the proposal
- Create another repository under the Operese organization with Dockerfile definitions of the images for each job. They should be split up by purpose so as to not become too large - one for Rust builds, one for Docker image builds, etc.
- Add a Forgejo actions workflow which automatically builds and publishes new images on any change
- Configure actions runners to use the published (probably to Docker Hub) images.
Open questions
No response
Existing Proposals
- I have searched the issue tracker and this proposal is not a duplicate