快速開始
本頁將引導你使用 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>
需要兩個參數,instance
和 token
。
instance
指的是你的 Gitea 實例的地址,如 http://192.168.8.8:3000
或 https://gitea.com
。
runner 和作業容器(由 runner 啟動以執行作業)將連接到此地址。
這意味著它可能與你的 Gitea 實例的 ROOT_URL
不同,後者是為網頁訪問配置的。
使用回環地址如 127.0.0.1
或 localhost
總是個壞主意。
如果你不確定使用哪個地址,通常 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
。
註冊後,一個名為 .runner
的新文件將出現在當前目錄中。
該文件存儲註冊信息。
請不要手動編輯它。
如果該文件丟失或損壞,你可以簡單地刪除它並重新註冊。
最後,是時候啟動 runner 了:
./act_runner daemon
你可以在管理頁面中看到新的 runner:
你可以訪問 Act runner 獲取更多信息。
使用 Actions
即使 Gitea 實例啟用了 Actions,倉庫仍然默認禁用 Actions。
要啟用它,請轉到倉庫的設置頁面,如 your_gitea.com/<owner>/repo/settings
並啟用 Enable Repository 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 標籤中看到一個新任務。
幹得好!你已經成功開始使用 Actions。