A runner for Gitea based on act.
Go to file
Jason Song c9e076db68 Get outbound IP in multiple ways or disable cache server if failed to init (#74)
Fix #64 (incompletely).

It's still not ideal. It makes more sense to use the gateway IP address of container network as outbound IP of cache server. However, this requires act to cooperate, some think like:

- act creates the network for new container, and returns the network to runner.
- runner extracts the gateway IP in the network.
- runner uses the gateway IP as outbound IP, and pass it to act as cache server endpoint.
- act It continues to create the container with the created network.

Reviewed-on: https://gitea.com/gitea/act_runner/pulls/74
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
2023-03-24 17:55:13 +08:00
.gitea/workflows Support cache on ci (#47) 2023-03-15 12:28:18 +08:00
artifactcache Get outbound IP in multiple ways or disable cache server if failed to init (#74) 2023-03-24 17:55:13 +08:00
client Inject version when building and report version to Gitea via log and header (#43) 2023-03-13 18:57:35 +08:00
cmd Get outbound IP in multiple ways or disable cache server if failed to init (#74) 2023-03-24 17:55:13 +08:00
config Add runner name to log (#37) 2023-03-06 18:42:07 +08:00
core Inject version when building and report version to Gitea via log and header (#43) 2023-03-13 18:57:35 +08:00
engine Add copyright header and gitea-vet (#29) 2023-02-28 18:44:46 +08:00
poller Add copyright header and gitea-vet (#29) 2023-02-28 18:44:46 +08:00
register Add copyright header and gitea-vet (#29) 2023-02-28 18:44:46 +08:00
runtime Get outbound IP in multiple ways or disable cache server if failed to init (#74) 2023-03-24 17:55:13 +08:00
.gitignore Add runner name to log (#37) 2023-03-06 18:42:07 +08:00
.golangci.yml chore: add .golangci config 2022-11-24 15:36:28 +08:00
.goreleaser.checksum.sh checksum and compress 2023-03-18 01:58:21 -04:00
.goreleaser.yaml checksum and compress 2023-03-18 01:58:21 -04:00
build.go Support cache (#25) 2023-02-28 23:39:30 +08:00
go.mod Upgrade act (#68) 2023-03-23 13:33:17 +08:00
go.sum Upgrade act (#68) 2023-03-23 13:33:17 +08:00
LICENSE Add license 2022-11-24 15:36:16 +08:00
main.go Add copyright header and gitea-vet (#29) 2023-02-28 18:44:46 +08:00
Makefile check go version when build (#53) 2023-03-16 11:37:08 +08:00
README.md Clarify labels (#69) 2023-03-23 20:48:33 +08:00

act runner

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

Installation

Prerequisites

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

Download pre-built binary

Visit https://dl.gitea.com/act_runner/ and download the right version for your platform.

Build from source

make build

Quickstart

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/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-20.04:docker://node:16-bullseye,ubuntu-18.04:docker://node:16-buster,linux_arm:host):

INFO Registering runner, name=Test.local, instance=http://192.168.8.8:3000/, labels=[ubuntu-latest:docker://node:16-bullseye ubuntu-22.04:docker://node:16-bullseye ubuntu-20.04:docker://node:16-bullseye ubuntu-18.04:docker://node:16-buster].
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