Add container/: a rootless Podman + systemd (Quadlet) setup to run per-project Gitea Actions runners on one host instead of VMs. Uses the host executor with a purpose-built image that bakes in the Rust toolchain and all build dependencies (opus, alsa, soapysdr, clang), so CI runs skip the per-run install and cold soapysdr-sys build. Includes the runner Containerfile, first-boot registration entrypoint, act_runner config template, two Quadlet units (trx-rs + a second project), and a README covering build, registration, the required host-executor workflow tweak, and tuning. Assisted-By: Claude Code (claude-opus-4) Claude-Session: https://claude.ai/code/session_01NFpGtGTWUEYXLwZeZs2RAV Signed-off-by: Stan Grams <sjg@haxx.space>
41 lines
1.3 KiB
INI
41 lines
1.3 KiB
INI
# SPDX-FileCopyrightText: 2026 Stan Grams <sjg@haxx.space>
|
|
#
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
#
|
|
# Rootless Podman Quadlet for the SECOND project's Gitea Actions runner,
|
|
# co-located on the same host as the trx-rs runner.
|
|
#
|
|
# It has its own name, its own data volume and its own registration token, so
|
|
# the two runners are fully independent. They share the `ubuntu-latest` label,
|
|
# but registration SCOPE (which repo each token came from) keeps their jobs
|
|
# separate — neither will pick up the other's work.
|
|
#
|
|
# If project 2 needs different build dependencies, build it its own image from
|
|
# an adjusted Containerfile and point Image= at that instead of reusing the
|
|
# trx-rs image below.
|
|
|
|
[Unit]
|
|
Description=Gitea Actions runner — project 2
|
|
After=network-online.target
|
|
Wants=network-online.target
|
|
|
|
[Container]
|
|
Image=localhost/gitea-act-runner:latest
|
|
ContainerName=gitea-runner-project2
|
|
Volume=gitea-runner-project2-data:/data:Z
|
|
|
|
Environment=CONFIG_FILE=/data/config.yaml
|
|
Environment=GITEA_INSTANCE_URL=https://git.haxx.space
|
|
Environment=GITEA_RUNNER_NAME=project2-podman
|
|
Environment=GITEA_RUNNER_LABELS=ubuntu-latest:host
|
|
Environment=GITEA_RUNNER_REGISTRATION_TOKEN=
|
|
|
|
PodmanArgs=--cpus=4.0 --memory=6g
|
|
|
|
[Service]
|
|
Restart=always
|
|
TimeoutStartSec=0
|
|
|
|
[Install]
|
|
WantedBy=default.target
|