Files

3.0 KiB

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-audit for 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.

  1. Fork or branch from main
  2. Add or modify a runner under dockerfiles/<name>/
  3. Include a Dockerfile and update this README's Available Runners table
  4. Add a config to <name>/config.yml if necessary
  5. 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 nodejs and npm (required for actions/checkout)
  • Install bash explicitly 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.