Gitea Actions 基本上和 Github Actions 一样的语法,兼容 Github 的 actions 软件包,经过我的测试有一些 actions 的包是不能运行的。
Gitea 行动的目的是在 Gitea 和现有的 CI/CD 系统之间实现更紧密的集成。另一个目标是为独立运行器提供统一的管理界面,以减少支持多个系统的管理开销(如果需要)。独立运行器工作流旨在与 GitHub Actions 兼容,可用于在 Gitea 上构建、测试、打包、发布或部署任何代码项目。
Gitea Actions 不仅仅是 DevOps,还允许您在存储库中发生其他事件时运行工作流。例如,您可以运行工作流,以便在有人在您的存储库中创建新问题时自动添加相应的标签。
安装
使用 Gitea 1.19.0 及以上版本,未安装的请参考 Gitea Docs
这里我使用宝塔面板和腾讯云的服务器,提前在面板安装好 Docker 环境。
- Gitea 开启 actions 选项
actions 的配置默认是禁用的,需要修改文件进行开启,修改gitea/config/app.ini
配置文件,修改完成之后建议重启一下。
# 开启actions
[actions]
ENABLED = true
- 查看 Gitea Runner token
管理后台 - Actions -Runners - 创建 Runner - 这里有 token
要记下来后面会用到。
- 安装 act runner
使用 docker compose 启动,在 gitea 的目录下新建一个cet runner
文件夹添加docker-compose.yml
version: "3"
services:
act_runner:
image: gitea/act_runner:latest
restart: always
environment:
- GITEA_INSTANCE_URL=https://192.168.0.1:3000/
- GITEA_RUNNER_REGISTRATION_TOKEN=5NwZolPXGrRZ
- GITEA_RUNNER_NAME=docker_runner
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- ./act_data:/data
- ./ct_cache:/root/.cache
GITEA_INSTANCE_URL
是 gitea 的地址GITEA_RUNNER_REGISTRATION_TOKEN
填写你获取的 token
- 查看是否添加成功
在 runner 管理面板即可看见新加入的 runner 的状态。
测试
- 创建仓库
创建一个demo
的测试仓库,让我们来尝鲜一下吧。
- 添加工作流文件
以下为官方的一个实例,将它保存至 .gitea/workflows/build.yaml
会触发 CI 工作。,yaml 语法可参考 Github Actions Docs
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."
- run: echo "🐧 This job is now running on a ${{ runner.os }} server hosted by Gitea!"
- run: echo "🔎 The name of your branch is ${{ gitea.ref }} and your repository is ${{ gitea.repository }}."
- name: Check out repository code
uses: actions/checkout@v3
- run: echo "💡 The ${{ gitea.repository }} repository has been cloned to the runner."
- run: echo "🖥️ The workflow is now ready to test your code on the runner."
- name: List files in the repository
run: |
ls ${{ gitea.workspace }}
- run: echo "🍏 This job's status is ${{ gitea.status }}."
- 查看执行结果
来自以下文献:
一直没有注意这方面,的确很有意思.试试跟github有啥区别
基本上没有什么区别,能兼容大部分的github的插件。
Gitea也支持CI/CD啦!
支持了,但是构建的时候基本上都是拉取GitHub的库,缓存这些方面还是有点不友好。
试了一下,确实如此~