Gitea Actions 的概念及基础使用

1.Runner概念

1.和其他CI/CD解决方案一样,Gitea不会自己运行Job,而是将Job委托给Runner。 Gitea Actions的Runner被称为act runner,它是一个独立的程序,也是用Go语言编写的。 它是基于nektos/act的一个分支

2.Gitea Actions需要act runner 来运行Job。 为了避免消耗过多资源并影响Gitea实例,建议您在与Gitea实例分开的机器上启动Runner。

3.官方文档: https://docs.gitea.cn/usage/actions/quickstart

2.快速入门

从1.21.0开始,默认情况下,Actions是启用的。如果您正在使用1.21.0之前的版本,您需要将以下内容添加到配置文件中以启用它:

sh 复制代码
[actions]
ENABLED=true

3.下载Runner

3.1.地址:https://dl.gitea.com/act_runner/0.2.13/

3.2.根据系统类型选择,文中使用: act_runner-0.2.13-linux-amd64

4.注册Runner

4.1在运行Runner之前,您需要使用以下命令将其注册到Gitea实例中:

bash 复制代码
./act_runner register --no-interactive --instance <instance> --token <token>

需要两个必需的参数:instancetoken

参数1 : instance是您的Gitea实例的地址,如http://192.168.8.8:3000https://gitea.com。 Runner和Job容器(由Runner启动以执行Job)将连接到此地址。 这意味着它可能与用于Web访问的ROOT_URL不同。 使用回环地址(例如 127.0.0.1localhost)是一个不好的选择。 如果不确定使用哪个地址,通常选择局域网地址即可。

参数2 : token用于身份验证和标识,例如P2U1U0oB4XaRCi8azcngmPCLbRpUGapalhmddh23。 它只能使用一次,并且不能用于注册多个Runner。 您可以从以下位置获取不同级别的token,从而创建出相应级别的runner

  • 实例级别:管理员设置页面,例如 <your_gitea.com>/admin/actions/runners

  • 组织级别:组织设置页面,例如 <your_gitea.com>/<org>/settings/actions/runners

  • 存储库级别:存储库设置页面,例如 <your_gitea.com>/<owner>/<repo>/settings/actions/runners

4.2 运行注册之后,检查gitea控制台设置中的Runner会新增一个

bash 复制代码
root@snp:/home/gitea_runner# ./act_runner register --no-interactive --instance http://192.168.1.40:8999/ --token Q1zxdj3b4WpHcC9nLBMKEVR2eZMfBenE3YSUpZjx
INFO Registering runner, arch=amd64, os=linux, version=v0.2.13.
INFO Runner name is empty, use hostname 'snp'.
DEBU Successfully pinged the Gitea instance server
INFO Runner registered successfully.

5.运行Runner

5.1 执行 ./act_runner daemon 或后台启动 nohup ./act_runner daemon & 注意文件是否有执行权限 chmod +x ./act_runner

bash 复制代码
root@snp:/home/gitea_runner# ./act_runner daemon
INFO[2026-01-30T09:20:18+08:00] Starting runner daemon
INFO[2026-01-30T09:20:18+08:00] runner: snp, with version: v0.2.13, with labels: [ubuntu-latest ubuntu-24.04 ubuntu-22.04], declare successfully

5.2 启动后控制台离线变为空闲,说明已经启动

6.使用Actions

即使对于启用了Gitea实例的Actions,存储库仍默认禁用Actions。

要启用它,请转到存储库的设置页面,例如your_gitea.com/<owner>/repo/settings,然后启用(启用 Actions)Enable Repository Actions

7.编写工作流文件

7.1 GO项目的工作流示例

yml 复制代码
# 工作流名称
name: Go YL项目 CI/CD

# 指定当main分支提交时触发
on:
  push:
    branches: [main]

# 指定环境变量(项目名,项目部署位置等,根据自己需要来)
env:
  PROJECT_NAME: "elderly_care_serve"
  DEPLOY_PATH: "/home/ProjectSpace/elderly_care/server"

jobs:
  build-and-deploy:
    # 使用自己的runner的标签:ubuntu-latest
    runs-on: ubuntu-latest

    steps:
      # 1. 拉取代码
      - name: 检出代码
        uses: actions/checkout@v4

      # 2. 设置 Go 环境
      - name: 设置 Go
        uses: actions/setup-go@v4
        with:
          go-version: "1.21"

      # 3. 下载依赖
      - name: 下载依赖
        run: |
          go env -w GOPROXY=https://goproxy.cn,direct
          go mod download
          go mod tidy

      # 4. 编译
      - name: 编译项目
        run: |
          CGO_ENABLED=0 GOOS=linux GOARCH=amd64 \
          go build -o ${{ env.PROJECT_NAME }} main.go

      # 5. 部署文件
      - name: 复制到部署目录
        run: |
          # 创建目录(如果不存在)
          sudo mkdir -p ${{ env.DEPLOY_PATH }}
          # 复制文件
          sudo cp ${{ env.PROJECT_NAME }} ${{ env.DEPLOY_PATH }}/

      # 6. 构建 Docker 注意:build_docker.sh 是自己写的部署到docker的脚本,也可以直接写docker命令部署
      - name: 构建 Docker 镜像
        run: |
          cd ${{ env.DEPLOY_PATH }}
          sudo chmod +x build_docker.sh
          sudo ./build_docker.sh 

7.2将以上工作流文件上传为一个以.yaml扩展名的文件,放在存储库的.gitea/workflows/目录中

7.3推送项目到gitea

7.4检查推送激活状态,等待运行结束即自动部署成功

相关推荐
袁小皮皮不皮2 小时前
数据通信20-IPv6基础
运维·服务器·网络·网络协议·智能路由器
推理幻觉2 小时前
ssh远程连接错误
运维·ssh
2401_858286113 小时前
OS55.【Linux】理解信号量(不是信号)
linux·运维·服务器·计数器·信号量
SakitamaX5 小时前
KEEPALIVED介绍与实验与介绍
运维·keepalived
楼田莉子6 小时前
Linux学习:线程的同步与互斥
linux·运维·c++·学习
小草儿7996 小时前
PG18备份恢复
linux·运维·服务器
Mikowoo0076 小时前
KaLi系统基本使用
运维·服务器
Starry_hello world7 小时前
Linux http代码
linux·运维·http
wuxi_joe9 小时前
中国装备制造企业如何出海:以“配置管理”为核心构建全球竞争力
运维·人工智能·制造
开开心心_Every9 小时前
全屏程序切换工具,激活选中窗口快速切换
linux·运维·服务器·pdf·ocr·测试用例·模块测试