A runner for Gitea based on act.
Find a file
a1012112796 01ef57c667 fix artifactServerPath and artifactServerAddr config for exec (#221)
fix exec logic to make `actions/download-artifact` and `actions/upload-artifact` can be used.

example result:

```YML
name: test-artifact
on:
  - push
  - pull_request

jobs:
  test-artifact-1:
    name: test 1
    runs-on: ubuntu-latest
    steps:
      - run: echo `date` | tee time.txt
      - name: cache build result
        uses: actions/upload-artifact@v3
        with:
          name: build-artifact
          path: time.txt
          retention-days: 1

  test-artifact-2:
    name: test 2
    needs: test-artifact-1
    runs-on: ubuntu-latest
    steps:
      - name: Retrieve saved build result
        uses: actions/download-artifact@v3
        with:
          name: build-artifact
          path: .
      - run: ls -lh
      - run: cat time.txt

```

![image](/attachments/5cad3b4a-930a-4d42-a1ae-45ac32e6bfc2)

Co-authored-by: Jason Song <i@wolfogre.com>
Reviewed-on: https://gitea.com/gitea/act_runner/pulls/221
Reviewed-by: Lunny Xiao <xiaolunwen@gmail.com>
Co-authored-by: a1012112796 <1012112796@qq.com>
Co-committed-by: a1012112796 <1012112796@qq.com>
2023-06-05 08:51:44 +00:00
.gitea/workflows build: optimize Dockerfile and update dependencies (#162) 2023-04-29 12:07:15 +08:00
examples Documentation enhancements (#207) 2023-06-05 08:46:15 +00:00
internal fix artifactServerPath and artifactServerAddr config for exec (#221) 2023-06-05 08:51:44 +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 build: improve compression and update GitHub actions (#168) 2023-05-01 21:59:43 +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 ci: improve release process and test robustness (#173) 2023-05-04 09:41:22 +08:00
build.go Support cache (#25) 2023-02-28 23:39:30 +08:00
Dockerfile Fix missing runner version when building images from a Dockerfile (#181) 2023-05-09 16:44:31 +08:00
go.mod Add configuration item of container.network (#184) 2023-05-16 14:46:59 +08:00
go.sum Add configuration item of container.network (#184) 2023-05-16 14:46:59 +08:00
LICENSE Add license 2022-11-24 15:36:16 +08:00
main.go Refactor to new framework (#98) 2023-04-04 21:32:04 +08:00
Makefile Skip counting log length when parseLogRow return nil (#176) 2023-05-06 17:00:52 +08:00
README.md Documentation enhancements (#207) 2023-06-05 08:46:15 +00:00
run.sh Prevent exposing GITEA_RUNNER_REGISTRATION_TOKEN to act (#188) 2023-05-17 14:13:38 +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 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

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

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

Example Deployments

Check out the examples directory for sample deployment types.