Reviewed-on: #5
gitea-runners
A collection of custom CI runner environments for Gitea Actions. Each runner is a Docker image pre-configured for a specific language or toolchain.
Available Runners
| Runner | Image | Labels | Description |
|---|---|---|---|
| Rust | gitea-runner-rust |
rust, embedded, cargo, debian-latest |
Rust stable, cross-compilation targets (RP2040, STM32, musl), clippy, rustfmt, cargo-audit |
More runners can be requested — see Requesting a Runner below.
Usage
Target a runner in your workflow by its label:
jobs:
build:
runs-on: rust
steps:
- uses: actions/checkout@v4
- name: Build
run: cargo build --release
Runners
Rust
Pre-installed tools and targets:
- Rust (stable, via rustup)
- Cross-compilation targets:
thumbv6m-none-eabi,thumbv7em-none-eabihf,thumbv8m.main-none-eabihf,x86_64-unknown-linux-musl - Components:
clippy,rustfmt,rust-docs cargo-auditfor dependency vulnerability scanning
Dockerfile: dockerfiles/rust/Dockerfile
Requesting a Runner
Open an issue using the Runner Request template and fill in:
- The language or runtime needed
- Any specific tools, versions, or targets required
- An example workflow that would use the runner
Requests are reviewed and implemented as pull requests. Once merged, the runner becomes available to all repositories on this Gitea instance.
Contributing
Direct pushes to main are disabled. All changes must go through a pull request.
- Fork or branch from
main - Add or modify a runner under
dockerfiles/<name>/ - Include a
Dockerfileand update this README's Available Runners table - Add a config to
<name>/config.ymlif necessary - Open a pull request — reference the issue it resolves if applicable
Runner Directory Structure
dockerfiles/
└── rust/
└── Dockerfile
└── python/ # example future runner
└── Dockerfile
runner-data/
└── rust/
└── config.yml
└── python/ # Example config for future runner
└── config.yml
docker-compose.yml
Runner Requirements
Every runner image must:
- Be based on
gitea/act_runner:latest - Install
nodejsandnpm(required foractions/checkout) - Install
bashexplicitly if using any shell-based installers - Be tested locally before submitting a PR
Deployment
Runners are managed via Docker Compose on the host server. After a new runner image is merged and built, it is registered with Gitea and added to the compose stack.
Note: Runner registration and deployment is handled by the server administrator. Opening a PR with a valid Dockerfile is sufficient — you do not need server access.
P.S. If your issue/merge request for a runner hasnt been looked at/recieved a reply within 48 hours, just send me an email and I'll look into it.