A runner for Gitea based on act.
Go to file
Christopher Homberger 8d67364e67 Finalize 2026-02-27 11:49:11 +01:00
.gitea/workflows Finalize 2026-02-27 11:49:11 +01:00
.github Finalize 2026-02-27 11:49:11 +01:00
.vscode fix: update artifact server to address GHSL-2023-004 (#1565) 2023-01-16 21:01:54 +00:00
cmd Update Makefile 2026-02-27 11:27:00 +01:00
examples examples: improve DIND rootless network performance (#786) 2026-02-16 07:56:45 +00:00
internal fmt 2026-02-24 08:17:17 +01:00
pkg Update Makefile 2026-02-27 11:27:00 +01:00
scripts feat: docker env vars for ephemeral and once (#685) 2025-05-07 15:43:05 +00:00
.codespellrc Add codespell support (config, workflow to detect/not fix) and make it fix few typos (#2296) 2024-04-19 09:22:45 +00:00
.editorconfig Add .editorconfig and .gitattributes (#186) 2023-05-13 23:51:22 +08:00
.gitattributes Add .editorconfig and .gitattributes (#186) 2023-05-13 23:51:22 +08:00
.gitignore Update Makefile 2026-02-27 11:27:00 +01:00
.gitleaksignore Update .gitleaksignore (#25) 2025-01-29 18:57:08 +01:00
.golangci.yml Fix all 93 lint-go errors 2026-02-23 13:59:05 +01:00
.goreleaser.act-cli.gitea.yml Finalize 2026-02-27 11:49:11 +01:00
.goreleaser.act-cli.yml Finalize 2026-02-27 11:49:11 +01:00
.goreleaser.checksum.sh checksum and compress 2023-03-18 01:58:21 -04:00
.goreleaser.yaml ci: release binary for linux/loong64 (#756) 2025-10-21 17:42:08 +00:00
.markdownlint.yml ci: replace superlinter with megalinter (#923) 2021-12-22 09:29:43 -08:00
.mega-linter.yml feat: add check for newer versions (#1562) 2023-01-15 10:30:41 +00:00
.mergify.yml ci(mergify): upgrade configuration to current format (#2547) 2024-12-25 02:00:07 +00:00
.prettierignore Update docs, file formatting and docker images (#766) 2021-08-09 09:07:26 -07:00
.prettierrc.yml Update docs, file formatting and docker images (#766) 2021-08-09 09:07:26 -07:00
CODEOWNERS Update CODEOWNERS to use 'act-maintainers' team 2021-03-29 10:22:33 -07:00
CONTRIBUTING.md Update Readme and issue templates (#40) 2025-01-31 17:54:54 +01:00
Dockerfile chore(deps): bump Go version to 1.26 in Dockerfile and Makefile (#788) 2026-02-14 10:32:16 +00:00
LICENSE Add license 2022-11-24 15:36:16 +08:00
Makefile Update Makefile 2026-02-27 11:27:00 +01:00
README.md chore(docs): Mention YAML Anchor support (#130) 2025-10-06 13:53:29 +02:00
VERIFICATION Fix 132 - support for chocolatey install (#144) 2020-03-09 17:49:55 -07:00
VERSION Bump version from 0.3.5 to 0.4.0 (#143) 2025-11-27 14:19:30 +01:00
act-cli.nuspec Fix 132 - support for chocolatey install (#144) 2020-03-09 17:49:55 -07:00
build.go Support cache (#25) 2023-02-28 23:39:30 +08:00
codecov.yml Actions Artifacts v4 backend (#2224) 2024-05-20 20:00:04 +00:00
go.mod Fix all 93 lint-go errors 2026-02-23 13:59:05 +01:00
go.sum Fix all 93 lint-go errors 2026-02-23 13:59:05 +01:00
install.sh feat: Adding in logic to check if act needs to be downloaded (#2575) 2024-12-25 01:43:09 +00:00
main.go feat: Support graceful job step cancellation (#69) 2025-03-29 12:27:36 +01:00
renovate.json5 Add renovate config (#408) 2023-11-23 20:41:10 +00:00

README.md

act runner

Act runner is a runner for Gitea based on Gitea fork of act.

Installation

Prerequisites

Docker Engine Community version is required for docker mode. To install Docker CE, follow the official install instructions.

Download pre-built binary

Visit here and download the right version for your platform.

Build from source

make build

Build a docker image

make docker

Quickstart

Actions are disabled by default, so you need to add the following to the configuration file of your Gitea instance to enable it:

[actions]
ENABLED=true

Register

./act_runner register

And you will be asked to input:

  1. Gitea instance URL, like http://192.168.8.8:3000/. You should use your gitea instance ROOT_URL as the instance argument and you should not use localhost or 127.0.0.1 as instance IP;
  2. Runner token, you can get it from http://192.168.8.8:3000/admin/actions/runners;
  3. Runner name, you can just leave it blank;
  4. Runner labels, you can just leave it blank.

The process looks like:

INFO Registering runner, arch=amd64, os=darwin, version=0.1.5.
WARN Runner in user-mode.
INFO Enter the Gitea instance URL (for example, https://gitea.com/):
http://192.168.8.8:3000/
INFO Enter the runner token:
fe884e8027dc292970d4e0303fe82b14xxxxxxxx
INFO Enter the runner name (if set empty, use hostname: Test.local):

INFO Enter the runner labels, leave blank to use the default labels (comma-separated, for example, ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest):

INFO Registering runner, name=Test.local, instance=http://192.168.8.8:3000/, labels=[ubuntu-latest:docker://docker.gitea.com/runner-images:ubuntu-latest ubuntu-22.04:docker://docker.gitea.com/runner-images:ubuntu-22.04 ubuntu-20.04:docker://docker.gitea.com/runner-images:ubuntu-20.04].
DEBU Successfully pinged the Gitea instance server
INFO Runner registered successfully.

You can also register with command line arguments.

./act_runner register --instance http://192.168.8.8:3000 --token <my_runner_token> --no-interactive

If the registry succeed, it will run immediately. Next time, you could run the runner directly.

Run

./act_runner daemon

Run with docker

docker run -e GITEA_INSTANCE_URL=https://your_gitea.com -e GITEA_RUNNER_REGISTRATION_TOKEN=<your_token> -v /var/run/docker.sock:/var/run/docker.sock --name my_runner gitea/act_runner:nightly

Configuration

You can also configure the runner with a configuration file. The configuration file is a YAML file, you can generate a sample configuration file with ./act_runner generate-config.

./act_runner generate-config > config.yaml

You can specify the configuration file path with -c/--config argument.

./act_runner -c config.yaml register # register with config file
./act_runner -c config.yaml daemon # run with config file

You can read the latest version of the configuration file online at config.example.yaml.

Example Deployments

Check out the examples directory for sample deployment types.