跳过至主要内容
版本: 1.22.3

快速入门

本页将指导您完成使用 Gitea Actions 的过程。

设置 Gitea

首先,您需要一个 Gitea 实例。您可以按照 文档 设置新实例或升级现有实例。无论您如何安装或运行 Gitea,只要其版本为 1.19.0 或更高即可。

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

[actions]
ENABLED=true

如果您想了解更多信息或在配置过程中遇到任何问题,请参考 配置速查表.

设置 Runner

Gitea Actions 需要 act runner 来运行作业。为了避免消耗过多资源并影响 Gitea 实例,建议在与 Gitea 实例不同的机器上启动 Runner。

您可以使用 预构建的二进制文件Docker 镜像 来设置 Runner。

在继续之前,建议使用预构建的二进制文件以命令行方式运行它,以确保它在您的环境中正常工作,尤其是在您本地主机上运行 Runner 时。如果出现问题,这将更容易调试。

Runner 可以将作业在隔离的 Docker 容器中运行,因此您需要确保已安装 Docker 并且 Docker 守护进程正在运行。虽然这不是绝对必要,因为 Runner 也可以直接在主机上运行作业,但这取决于您的配置方式。但是,建议使用 Docker 来运行作业,因为它更安全且更容易管理。

在运行 Runner 之前,您应该首先使用以下命令将其注册到您的 Gitea 实例

./act_runner register --no-interactive --instance <instance> --token <token>

需要两个参数:instancetoken

instance 指的是您 Gitea 实例的地址,例如 http://192.168.8.8:3000https://gitea.com。Runner 和作业容器(由 Runner 启动以执行作业)将连接到此地址。这意味着它可能与您 Gitea 实例的 ROOT_URL 不同,ROOT_URL 是为 Web 访问配置的。使用回环地址(如 127.0.0.1localhost)总是一个不好的做法。如果您不确定使用哪个地址,则 LAN 地址通常是正确的选择。

token 用于身份验证和识别,例如 P2U1U0oB4XaRCi8azcngmPCLbRpUGapalhmddh23。每个 Token 可以用于创建多个 Runner,直到使用重置链接将其替换为新 Token。您可以从以下位置获取不同级别的“Token”以创建相应的级别的“Runner”

  • 实例级别:管理设置页面,例如 <your_gitea.com>/admin/actions/runners
  • 组织级别:组织设置页面,例如 <your_gitea.com>/<org>/settings/actions/runners
  • 仓库级别:仓库设置页面,例如 <your_gitea.com>/<owner>/<repo>/settings/actions/runners

register runner

注册后,当前目录中将出现一个名为 .runner 的新文件。此文件存储注册信息。请勿手动编辑它。如果此文件丢失或损坏,您可以简单地将其删除并重新注册。

最后,是时候启动 Runner 了

./act_runner daemon

您可以在管理页面中看到新的 Runner

view runner

您可以在访问 Act runner 时找到更多信息。

使用 Actions

即使为 Gitea 实例启用了 Actions,仓库默认情况下仍会禁用 Actions。

要启用它,请转到您的仓库设置页面,例如 your_gitea.com/<owner>/repo/settings,然后启用 启用仓库 Actions

enable actions

接下来的步骤可能比较复杂。您需要研究 Actions 的工作流语法 并编写您想要的工作流文件。

但是,我们可以从一个简单的演示开始

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@v4
- 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 ${{ job.status }}."

您可以将其作为扩展名为 .yaml 的文件上传到仓库的 .gitea/workflows/ 目录中,例如 .gitea/workflows/demo.yaml。您可能会注意到,这与 GitHub Actions 的快速入门 非常相似。这是因为 Gitea Actions 旨在尽可能与 GitHub Actions 兼容。

注意,演示文件包含一些表情符号。请确保您的数据库支持它们,尤其是在使用 MySQL 时。如果字符集不是 utf8mb4,则会发生错误,例如 Error 1366 (HY000): Incorrect string value: '\\xF0\\x9F\\x8E\\x89 T...' for column 'name' at row 1。有关更多信息,请参阅 数据库准备

或者,您可以从演示文件中删除所有表情符号,然后重试。

on: [push] 表示当您将提交推送到此仓库时将触发工作流。但是,当您上传 YAML 文件时,它也会推送提交,因此您应该在 Actions 选项卡中看到一个新任务。

view job

干得好!您已成功开始使用 Actions。