跳至主要内容
版本:1.23.7

快速開始

本頁將引導你使用 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 實例不同的機器上啟動 runners。

你可以使用 預構建的二進位文件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 不同,後者是為網頁訪問配置的。 使用回環地址如 127.0.0.1localhost 總是個壞主意。 如果你不確定使用哪個地址,通常 LAN 地址是正確的選擇。

token 用於身份驗證和識別,如 P2U1U0oB4XaRCi8azcngmPCLbRpUGapalhmddh23。 每個令牌可以用來創建多個 runners,直到使用重置鏈接替換為新令牌。 你可以從以下位置獲取不同級別的令牌來創建相應級別的 runners:

  • 實例級別:管理員設置頁面,如 <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 並啟用 Enable Repository Actions

enable 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 }}."
注意

某些 actions 可能無法在 SHA256 倉庫中正常運行,或者當 Gitea 在子路徑上運行時。這包括 actions/checkout

你可以將其作為擴展名為 .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。