钧言极客站钧言极客

钧言极客

Gitea Actions 初体验

Gitea Actions 基本上和 Github Actions 一样的语法,兼容 Github 的 actions 软件包,经过我的测试有一些 actions 的包是不能运行的。

Gitea 行动的目的是在 Gitea 和现有的 CI/CD 系统之间实现更紧密的集成。另一个目标是为独立运行器提供统一的管理界面,以减少支持多个系统的管理开销(如果需要)。独立运行器工作流旨在与 GitHub Actions 兼容,可用于在 Gitea 上构建、测试、打包、发布或部署任何代码项目。

Gitea Actions 不仅仅是 DevOps,还允许您在存储库中发生其他事件时运行工作流。例如,您可以运行工作流,以便在有人在您的存储库中创建新问题时自动添加相应的标签。

安装

使用 Gitea 1.19.0 及以上版本,未安装的请参考 Gitea Docs

这里我使用宝塔面板和腾讯云的服务器,提前在面板安装好 Docker 环境。

  1. Gitea 开启 actions 选项

actions 的配置默认是禁用的,需要修改文件进行开启,修改gitea/config/app.ini 配置文件,修改完成之后建议重启一下。

# 开启actions
[actions]
ENABLED = true
  1. 查看 Gitea Runner token

管理后台 - Actions -Runners - 创建 Runner - 这里有 token 要记下来后面会用到。

  1. 安装 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
  1. 查看是否添加成功

在 runner 管理面板即可看见新加入的 runner 的状态。

测试

  1. 创建仓库

创建一个demo的测试仓库,让我们来尝鲜一下吧。

  1. 添加工作流文件

以下为官方的一个实例,将它保存至 .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 }}."
  1. 查看执行结果

来自以下文献:

版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:《Gitea Actions 初体验》
文章链接:https://jinjun.top/461.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 5

  1. 一直没有注意这方面,的确很有意思.试试跟github有啥区别

    老孙 6月26日    回复
    • 基本上没有什么区别,能兼容大部分的github的插件。

      钧言 6月26日    回复
  2. Gitea也支持CI/CD啦!

    TeacherDu 5月16日    回复
    • 支持了,但是构建的时候基本上都是拉取GitHub的库,缓存这些方面还是有点不友好。

      钧言 5月17日    回复