2.9 KiB
1 基本概念
类似于 GitHub Actions,Gitea Actions 同样包含了工作流(Workflow)、事件(Event)、任务(Job)、步骤(Step)、运行器(Runner)等几项重要的基本概念。
1.1 工作流
工作流是一个可配置的自动化过程。我们将本地写好的 Markdown 文件推送(push)到远程云服务器的 Gitea 仓库,触发后续 Markdown 向 HTML 页面的自动渲染及博客站点的自动发布更新,这个过程就是一个典型的工作流。
工作流由定义在仓库指定目录下的 YAML 脚本描述,对于 GitHub Actions 而言,这个目录是 .github/workflows,对于 Gitea Actions 而言,这个目录是 .gitea/workflows。
1.2 事件
事件是触发工作流开始运行的源头,仍以 Hexo 博客的 CI/CD 工作流为例,我们将 Markdown 文件 push 到远程云服务器 Gitea 仓库的动作就是一个事件。
1.3 任务和步骤
任务是工作流中一组步骤的集合,一个工作流可以包含多个任务,一个任务可以包含多个步骤,每个步骤都包含了若干条具体的操作命令。步骤按顺序执行,并且相互依赖。
我们可以配置工作流中任务间的依赖关系(默认无依赖关系,并行运行),当一个任务依赖于另一个任务时,它将等待所依赖任务完成后才能开始运行。
1.4 运行器
运行器是执行工作流任务的软件程序,工作流中的每个任务都需要指定运行器,不同的任务可以指定不同的运行器。
一个典型的 Gitea Actions 工作流如下图所示:
典型的 Gitea Actions 工作流
2 环境配置
2.1.1 全局配置
Gitea 配置文件 /etc/gitea/app.ini,确保配置文件 actions 配置项并开启 Gitea Actions 功能:
[actions]
ENABLED = true
2.1.2 为指定仓库开启 Actions 功能
即使 Gitea Actions 已经在配置文件中开启,对于某个指定的仓库而言其 Actions 功能仍是默认关闭的,需要针对仓库进行单独配置:
为指定仓库开启 Actions
2.2 部署 act runner
Gitea 使用 act runner 来执行具体的工作流任务。使用 docker 安装 act runner 的过程如下:
- Step 1
docker run -e GITEA_INSTANCE_URL=https://your_gitea.com -e GITEA_RUNNER_REGISTRATION_TOKEN=<your_token> -v /var/run/docker.sock:/var/run/docker.sock --name cicd gitea/act_runner:nightly
GITEA_INSTANCE_URL 是 gitea 地址
GITEA_RUNNER_REGISTRATION_TOKEN 是创建 runner 时自动生成的 token


