Watch
1
1
Fork
You've already forked oops.
0

Use custom images for actions runners #46

Open
opened 2025年08月26日 22:22:39 +02:00 by TechnoPorg · 0 comments

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

  1. 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.
  2. Add a Forgejo actions workflow which automatically builds and publishes new images on any change
  3. 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
### 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 1. 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. 2. Add a Forgejo actions workflow which automatically builds and publishes new images on any change 3. Configure actions runners to use the published (probably to Docker Hub) images. ### Open questions _No response_ ### Existing Proposals - [x] I have searched the issue tracker and this proposal is not a duplicate
Sign in to join this conversation.
No Branch/Tag specified
main
No results found.
Labels
Clear labels
Compat/Breaking
Breaking change that won't be backward compatible
Good First Issue
An approachable bug or feature to get your feet wet with.
Kind/Documentation
Documentation changes
Kind/Performance
Proposal related to performance
Kind/Security
This is security issue
Kind/Testing
Issue or pull request related to testing
Kind/Tracker
Tracker for multiple related proposals
Layer/Backend
Backend components of the program
Layer/Frontend
User-facing components of the program
Priority
Critical
The priority is critical
Priority
High
The priority is high
Priority
Low
The priority is low
Priority
Medium
The priority is medium
Project/App Base
Shared GUI code for slideshow-style apps
Project/Final
Final Linux stage
Project/Fulcrum
IoC framework for running backend jobs
Project/Image Pipeline
Builds the Operese Linux disk images
Project/Initial
Initial Windows stage
Project/Intermediate
Intermediate Linux stage
Project/Manifest
Data structures passed from Windows to Linux
Project/Meta
Anything related to Codeberg issues, Forgejo actions, or other aspects of project management
Project/Part Marks
Cross-platform partition management library
Reviewed
Duplicate
This issue or pull request already exists
Reviewed
Invalid
Invalid issue
Reviewed
Won't Fix
The proposal will not be accepted.
Status
Abandoned
Somebody has started to work on this but abandoned work
Status
Blocked
Something is blocking this issue or pull request
Status
Need More Info
Feedback is required to reproduce issue or to continue work
Milestone
Clear milestone
No items
No milestone
Assignees
Clear assignees
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
Operese/oops.#46
Reference in a new issue
Operese/oops.
No description provided.
Delete branch "%!s()"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?