gitea开启runner及配置action

Gitea Actions 是 Gitea 中内置的自动化工作流程功能,类似于 GitHub Actions。它允许您在 Gitea 仓库中定义和执行各种任务,例如持续集成/持续交付(CI/CD)、自动化测试、代码分析等。通过使用 Actions,您可以自动化软件开发生命周期中的许多繁琐任务,提高开发效率和代码质量。

env

  • gitea + act_runner
  • docker
  • synology-ds920+

doc

1.download act_runner

1.1act_runner-0.2.11-linux-amd64

root@mvpbang:~# act_runner --version
act_runner version v0.2.11

1.2act_runner help

root@mvpbang:~# ./act_runner --help
Run GitHub actions locally by specifying the event name (e.g. `push`) or an action name directly.

Usage:
  act_runner [command]

Available Commands:
  cache-server    Start a cache server for the cache action
  daemon          Run as a runner daemon
  exec            Run workflow locally.
  generate-config Generate an example config file
  help            Help about any command
  register        Register a runner to the server

Flags:
  -c, --config string   Config file path
  -h, --help            help for act_runner
  -v, --version         version for act_runner

Use "act_runner [command] --help" for more information about a command.

2.gitea enable runner

2.1 data/gitea/conf/app.ini

# enable action  追加如下配置
[actions]
ENABLED = true

2.2获取runner token

token层级:

  • Instance level The admin settings page, like

    • <your_gitea.com>/admin/actions/runners
  • Organization level: The organization settings page, like

    • <your_gitea.com>//settings/actions/runners.
  • Repository level: The repository settings page, like

    • <your_gitea.com>///settings/actions/runners.

admin runner: http://ip:3000/-/admin/actions/runners

管理后台
5c5c79def269639a405e1fde005aed41.png

runner -> 复制join token
e28b9251a22435b0a2e04c25f7d487b1.png

3.register && run

baseurl: http://ip:13000/
token: EJ1b5mNTx7eakVnWjnTBuYcAySy3Huwxu9iwFnqt

3.1非交互式注册

root@mvpbang:~# act_runner register --no-interactive --instance http://192.168.3.222:13000  --token EJ1b5mNTx7eakVnWjnTBuYcAySy3Huwxu9iwFnqt
INFO Registering runner, arch=amd64, os=linux, version=v0.2.11. 
INFO Runner name is empty, use hostname 'mvpbang'. 
DEBU Successfully pinged the Gitea instance server 
INFO Runner registered successfully.  

3.2交互式注册(基于配置)

root@mvpbang:~# act_runner generate-config > config.yaml

root@mvpbang:~# act_runner --config .gitea/config.yaml  register
INFO Registering runner, arch=amd64, os=linux, version=v0.2.11. 
INFO Runner is already registered, overwrite local config? [y/N] 
y
INFO Enter the Gitea instance URL (for example, https://gitea.com/): 
http://192.168.3.222:13000/
INFO Enter the runner token:                      
EJ1b5mNTx7eakVnWjnTBuYcAySy3Huwxu9iwFnqt
INFO Enter the runner name (if set empty, use hostname: mvpbang): 

INFO Registering runner, name=mvpbang, instance=http://192.168.3.222:13000/, labels=[ubuntu-latest:docker://gitea/runner-images:ubuntu-latest ubuntu-22.04:docker://gitea/runner-images:ubuntu-22.04 ubuntu-20.04:docker://gitea/runner-images:ubuntu-20.04]. 
DEBU Successfully pinged the Gitea instance server 
INFO Runner registered successfully.

3.3运行runner damone

root@mvpbang:~# act_runner daemon --config .gitea/config.yaml 
INFO[2025-02-05T14:01:04+08:00] Starting runner daemon                       
INFO[2025-02-05T14:01:04+08:00] runner: mvpbang, with version: v0.2.11, with labels: [ubuntu-latest ubuntu-22.04 ubuntu-20.04], declare successfully 

注意:关闭terminl服务会自动关闭,假的damon …

基于nohup后台运行ruuner

root@mvpbang:~# nohup act_runner daemon --config .gitea/config.yaml >/dev/null 2>&1 &
[1] 11876

基于screen运行runner

root@mvpbang:~# screen
Cannot find termcap entry for 'xterm-256color'.
?

fix run screen:
TERM=xterm screen
act_runner daemon --config .gitea/config.yaml

4.create runner && testing

4.1新建action驱动文件

.gitea/workflows/demo.yaml

name: Gitea Actions Demo
run-name: ${{ gitea.actor }} is testing out Gitea Actions 🚀
on: [push]

jobs:
  Explore-Gitea-Actions:
    runs-on: ubuntu-latest
    steps:
      - run: echo "🎉 The job was automatically triggered by a ${{ gitea.event_name }} event."

ac844447a4affddf1ae4277e312f3461.png