mirror of
https://gitea.com/gitea/docs.git
synced 2026-07-22 02:37:42 +00:00
Update zh tw languages and fix some broken links (#455)
--------- Co-authored-by: silverwind <me@silverwind.io> Co-authored-by: silverwind <2021+silverwind@noreply.gitea.com> Reviewed-on: https://gitea.com/gitea/docs/pulls/455 Reviewed-by: silverwind <2021+silverwind@noreply.gitea.com>
This commit is contained in:
@@ -10,9 +10,9 @@ sidebar_position: 20
|
||||
|
||||
## 要求
|
||||
|
||||
目前 runner 支持兩種運行模式。一種是在 docker 容器中運行,另一種是在主機上運行。如果選擇在 [docker](https://docker.com) 容器中運行作業,建議先 [安裝 docker](https://docs.docker.com/engine/install/) 並確保 docker 守護進程正在運行。
|
||||
目前 runner 支援兩種運行模式。一種是在 docker 容器中運行,另一種是在主機上運行。如果選擇在 [docker](https://docker.com) 容器中運行作業,建議先 [安裝 docker](https://docs.docker.com/engine/install/) 並確保 docker 守護進程正在運行。
|
||||
|
||||
其他與 Docker API 兼容的 OCI 容器引擎也應該可以工作,但未經測試。
|
||||
其他與 Docker API 相容的 OCI 容器引擎也應該可以工作,但未經測試。
|
||||
|
||||
但是,如果您確定只想在主機上直接運行作業,則不需要 docker。
|
||||
|
||||
@@ -26,52 +26,52 @@ sidebar_position: 20
|
||||
但是,如果您想使用最新的夜間構建,可以從 [下載頁面](https://dl.gitea.com/act_runner/) 下載。
|
||||
|
||||
下載二進制文件時,請確保下載了適合您平台的正確文件。
|
||||
如果您使用的是類 Unix 操作系統,可以通過運行以下命令進行檢查。
|
||||
如果您使用的是類 Unix 操作系統,可以透過運行以下命令進行檢查。
|
||||
|
||||
```bash
|
||||
chmod +x act_runner
|
||||
./act_runner --version
|
||||
```
|
||||
|
||||
如果看到版本信息,則表示您已下載了正確的二進制文件。
|
||||
如果看到版本資訊,則表示您已下載了正確的二進制文件。
|
||||
|
||||
### 獲取註冊令牌
|
||||
|
||||
您可以在不同級別註冊 runner,它可以是:
|
||||
|
||||
- 實例級別:runner 將為實例中的所有倉庫運行作業。
|
||||
- 組織級別:runner 將為組織中的所有倉庫運行作業。
|
||||
- 倉庫級別:runner 將為其所屬的倉庫運行作業。
|
||||
- 實例級別:runner 將為實例中的所有儲存庫運行作業。
|
||||
- 組織級別:runner 將為組織中的所有儲存庫運行作業。
|
||||
- 儲存庫級別:runner 將為其所屬的儲存庫運行作業。
|
||||
|
||||
請注意,即使倉庫有自己的倉庫級別 runner,它仍然可以使用實例級別或組織級別的 runner。未來的版本可能會提供更多控制選項。
|
||||
請注意,即使儲存庫有自己的儲存庫級別 runner,它仍然可以使用實例級別或組織級別的 runner。未來的版本可能會提供更多控制選項。
|
||||
|
||||
在註冊 runner 並運行它之前,您需要一個註冊令牌。runner 的級別決定了從哪裡獲取註冊令牌。
|
||||
|
||||
- 實例級別:管理員設置頁面,例如 `<your_gitea.com>/admin/actions/runners`。
|
||||
- 組織級別:組織設置頁面,例如 `<your_gitea.com>/<org>/settings/actions/runners`。
|
||||
- 倉庫級別:倉庫設置頁面,例如 `<your_gitea.com>/<owner>/<repo>/settings/actions/runners`。
|
||||
- 實例級別:管理員設定頁面,例如 `<your_gitea.com>/admin/actions/runners`。
|
||||
- 組織級別:組織設定頁面,例如 `<your_gitea.com>/<org>/settings/actions/runners`。
|
||||
- 儲存庫級別:儲存庫設定頁面,例如 `<your_gitea.com>/<owner>/<repo>/settings/actions/runners`。
|
||||
|
||||
如果看不到設置頁面,請確保您具有正確的權限並且已啟用 Actions。
|
||||
如果看不到設定頁面,請確保您具有正確的權限並且已啟用 Actions。
|
||||
|
||||
註冊令牌的格式是一個隨機字符串 `D0gvfu2iHfUjNqCYVljVyRV14fISpJxxxxxxxxxx`。
|
||||
|
||||
註冊令牌也可以從 gitea [命令行界面](../../administration/command-line.md#actions-generate-runner-token) 獲取:
|
||||
註冊令牌也可以從 gitea [命令行介面](/administration/command-line#actions-generate-runner-token) 獲取:
|
||||
|
||||
```
|
||||
gitea --config /etc/gitea/app.ini actions generate-runner-token
|
||||
```
|
||||
|
||||
令牌在註銷並使用 web 界面中的令牌重置鏈接替換為新令牌之前,對註冊多個 runner 有效。
|
||||
令牌在註銷並使用 Web 介面中的令牌重置鏈接替換為新令牌之前,對註冊多個 runner 有效。
|
||||
|
||||
### 配置
|
||||
### 設定
|
||||
|
||||
配置是通過配置文件完成的。它是可選的,當未指定配置文件時,將使用默認配置。您可以通過運行以下命令生成配置文件:
|
||||
設定是通過設定文件完成的。它是可選的,當未指定設定文件時,將使用預設設定。您可以透過運行以下命令生成設定文件:
|
||||
|
||||
```bash
|
||||
./act_runner generate-config
|
||||
```
|
||||
|
||||
默認配置是安全的,可以直接使用。
|
||||
預設設定是安全的,可以直接使用。
|
||||
|
||||
```bash
|
||||
./act_runner generate-config > config.yaml
|
||||
@@ -82,24 +82,24 @@ gitea --config /etc/gitea/app.ini actions generate-runner-token
|
||||
|
||||
在運行 act runner 之前需要註冊,因為 runner 需要知道從哪裡獲取作業。這對於 Gitea 實例識別 runner 也很重要。
|
||||
|
||||
如果使用二進制包安裝,可以通過運行以下命令註冊 act runner。
|
||||
如果使用二進制包安裝,可以透過運行以下命令註冊 act runner。
|
||||
|
||||
```bash
|
||||
./act_runner register
|
||||
```
|
||||
|
||||
或者,您可以使用 `--config` 選項指定前面提到的配置文件。
|
||||
或者,您可以使用 `--config` 選項指定前面提到的設定文件。
|
||||
|
||||
```bash
|
||||
./act_runner --config config.yaml register
|
||||
```
|
||||
|
||||
您將被要求逐步輸入註冊信息,包括:
|
||||
您將被要求逐步輸入註冊資訊,包括:
|
||||
|
||||
- Gitea 實例 URL,例如 `https://gitea.com/` 或 `http://192.168.8.8:3000/`。
|
||||
- 註冊令牌。
|
||||
- runner 名稱,可選。如果留空,將使用主機名。
|
||||
- runner 標籤,可選。如果留空,將使用默認標籤。
|
||||
- runner 標籤,可選。如果留空,將使用預設標籤。
|
||||
|
||||
您可能會對 runner 標籤感到困惑,稍後將解釋。
|
||||
|
||||
@@ -110,16 +110,16 @@ gitea --config /etc/gitea/app.ini actions generate-runner-token
|
||||
```
|
||||
|
||||
註冊 runner 後,您可以在當前目錄中找到一個名為 `.runner` 的新文件。
|
||||
該文件存儲註冊信息。
|
||||
該文件儲存註冊資訊。
|
||||
請不要手動編輯它。
|
||||
如果該文件丟失或損壞,您可以簡單地刪除它並重新註冊。
|
||||
|
||||
如果您想將註冊信息存儲在其他位置,可以在配置文件中指定,
|
||||
如果您想將註冊資訊儲存在其他位置,可以在設定文件中指定,
|
||||
並且不要忘記指定 `--config` 選項。
|
||||
|
||||
### 在命令行中啟動 runner
|
||||
|
||||
註冊 runner 後,可以通過運行以下命令運行它:
|
||||
註冊 runner 後,可以透過運行以下命令運行它:
|
||||
|
||||
```shell
|
||||
./act_runner daemon
|
||||
@@ -135,7 +135,7 @@ runner 將從 Gitea 實例中獲取作業並自動運行它們。
|
||||
|
||||
### 使用 Systemd 啟動 runner
|
||||
|
||||
也可以將 act-runner 作為 [systemd](https://en.wikipedia.org/wiki/Systemd) 服務運行。在系統上創建一個非特權的 `act_runner` 用戶,並在 `/etc/systemd/system/act_runner.service` 中創建以下文件。`ExecStart` 和 `WorkingDirectory` 中的路徑可能需要根據您安裝 `act_runner` 二進制文件、其配置文件和 `act_runner` 用戶的主目錄進行調整。
|
||||
也可以將 act-runner 作為 [systemd](https://en.wikipedia.org/wiki/Systemd) 服務運行。在系統上建立一個非特權的 `act_runner` 使用者,並在 `/etc/systemd/system/act_runner.service` 中建立以下文件。`ExecStart` 和 `WorkingDirectory` 中的路徑可能需要根據您安裝 `act_runner` 二進制文件、其設定文件和 `act_runner` 使用者的主目錄進行調整。
|
||||
|
||||
```ini
|
||||
[Unit]
|
||||
@@ -165,11 +165,11 @@ sudo systemctl daemon-reload
|
||||
sudo systemctl enable act_runner --now
|
||||
```
|
||||
|
||||
如果使用 Docker,應在啟動服務之前將 `act_runner` 用戶添加到 `docker` 組。請記住,這實際上給了 `act_runner` 對系統的 root 訪問權限 [[1]](https://docs.docker.com/engine/security/#docker-daemon-attack-surface)。
|
||||
如果使用 Docker,應在啟動服務之前將 `act_runner` 使用者添加到 `docker` 組。請記住,這實際上給了 `act_runner` 對系統的 root 存取權限 [[1]](https://docs.docker.com/engine/security/#docker-daemon-attack-surface)。
|
||||
|
||||
### 使用 LaunchDaemon(macOS) 啟動 runner
|
||||
|
||||
Mac 使用 `launchd` 代替 systemd 註冊守護進程。默認情況下,守護進程以 root 用戶身份運行,因此如果需要,可以通過 `dscl` 工具創建一個非特權的 `_act_runner` 用戶。然後應在 `/Library/LaunchDaemon/com.gitea.act_runner.plist` 目錄中創建以下文件。`WorkingDirectory`、`ProgramArguments`、`StandardOutPath`、`StandardErrPath` 和 `HOME` 環境變量的路徑可能需要更新以反映您的安裝。此外,任何不在示例 `PATH` 中的可執行文件都需要顯式包含,並且不會從現有配置中繼承。
|
||||
Mac 使用 `launchd` 代替 systemd 註冊守護進程。預設情況下,守護進程以 root 使用者身份運行,因此如果需要,可以透過 `dscl` 工具建立一個非特權的 `_act_runner` 使用者。然後應在 `/Library/LaunchDaemon/com.gitea.act_runner.plist` 目錄中建立以下文件。`WorkingDirectory`、`ProgramArguments`、`StandardOutPath`、`StandardErrPath` 和 `HOME` 環境變量的路徑可能需要更新以反映您的安裝。此外,任何不在範例 `PATH` 中的可執行文件都需要顯式包含,並且不會從現有設定中繼承。
|
||||
|
||||
```xml
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
@@ -214,7 +214,7 @@ Mac 使用 `launchd` 代替 systemd 註冊守護進程。默認情況下,守
|
||||
sudo launchctl load /Library/LaunchDaemon/com.gitea.act_runner.plist
|
||||
```
|
||||
|
||||
您還可以設置 Linux 服務或 Windows 服務,以便 runner 自動運行。
|
||||
您還可以設定 Linux 服務或 Windows 服務,以便 runner 自動運行。
|
||||
|
||||
## 使用 docker 映像安裝
|
||||
|
||||
@@ -233,15 +233,15 @@ docker pull docker.io/gitea/act_runner:latest # 用於最新的穩定版本
|
||||
docker pull docker.io/gitea/act_runner:nightly # 用於最新的夜間構建
|
||||
```
|
||||
|
||||
### 配置
|
||||
### 設定
|
||||
|
||||
配置是可選的,但您也可以使用 docker 生成配置文件:
|
||||
設定是可選的,但您也可以使用 docker 生成設定文件:
|
||||
|
||||
```bash
|
||||
docker run --entrypoint="" --rm -it docker.io/gitea/act_runner:latest act_runner generate-config > config.yaml
|
||||
```
|
||||
|
||||
使用 docker 映像時,可以使用 `CONFIG_FILE` 環境變量指定配置文件。確保該文件已作為卷掛載到容器中:
|
||||
使用 docker 映像時,可以使用 `CONFIG_FILE` 環境變量指定設定文件。確保該文件已作為卷掛載到容器中:
|
||||
|
||||
```bash
|
||||
docker run -v $PWD/config.yaml:/config.yaml -e CONFIG_FILE=/config.yaml ...
|
||||
@@ -252,7 +252,7 @@ docker run -v $PWD/config.yaml:/config.yaml -e CONFIG_FILE=/config.yaml ...
|
||||
|
||||
### 使用 docker 啟動 runner
|
||||
|
||||
如果您使用的是 docker 映像,行為會略有不同。在這種情況下,註冊和運行結合為一步,因此您需要在運行 act runner 時指定註冊信息。
|
||||
如果您使用的是 docker 映像,行為會略有不同。在這種情況下,註冊和運行結合為一步,因此您需要在運行 act runner 時指定註冊資訊。
|
||||
|
||||
使用 docker run 快速啟動如下。您需要從上述步驟中獲取 `<registration_token>`,並為 `<runner_name>` 提供一個特殊的唯一名稱
|
||||
|
||||
@@ -265,7 +265,7 @@ docker run \
|
||||
-d docker.io/gitea/act_runner:nightly
|
||||
```
|
||||
|
||||
有更多參數可以配置它。
|
||||
有更多參數可以設定它。
|
||||
|
||||
```bash
|
||||
docker run \
|
||||
@@ -288,7 +288,7 @@ docker run \
|
||||
|
||||
### 使用 docker compose 啟動 runner
|
||||
|
||||
您還可以使用以下 `docker-compose.yml` 設置 runner:
|
||||
您還可以使用以下 `docker-compose.yml` 設定 runner:
|
||||
|
||||
```yml
|
||||
version: "3.8"
|
||||
@@ -309,23 +309,23 @@ services:
|
||||
|
||||
使用 docker 時,不需要進入容器並手動運行 `./act_runner daemon` 命令。容器成功啟動後,它將顯示為您的 Gitea 實例中的活動 runner。
|
||||
|
||||
## 高級配置
|
||||
## 高級設定
|
||||
|
||||
### 使用 docker 映像啟動 runner 時配置緩存
|
||||
### 使用 docker 映像啟動 runner 時設定緩存
|
||||
|
||||
如果您不打算在工作流中使用 `actions/cache`,可以忽略此部分。
|
||||
|
||||
如果在沒有任何額外配置的情況下使用 `actions/cache`,它將返回以下錯誤:
|
||||
如果在沒有任何額外設定的情況下使用 `actions/cache`,它將返回以下錯誤:
|
||||
|
||||
> Failed to restore: getCacheEntry failed: connect ETIMEDOUT IP:PORT
|
||||
|
||||
發生此錯誤是因為 runner 容器和作業容器位於不同的網絡上,因此作業容器無法訪問 runner 容器。
|
||||
發生此錯誤是因為 runner 容器和作業容器位於不同的網路上,因此作業容器無法訪問 runner 容器。
|
||||
|
||||
因此,必須配置緩存操作以確保其正常運行。請按照以下步驟操作:
|
||||
因此,必須設定緩存操作以確保其正常運行。請按照以下步驟操作:
|
||||
|
||||
- 1.獲取運行 runner 容器的主機的 LAN IP 地址。
|
||||
- 2.查找運行 runner 容器的主機上的可用端口號。
|
||||
- 3.在配置文件中配置以下設置:
|
||||
- 3.在設定文件中設定以下設定:
|
||||
|
||||
```yaml
|
||||
cache:
|
||||
@@ -350,17 +350,17 @@ docker run \
|
||||
|
||||
runner 的標籤用於確定 runner 可以運行哪些作業以及如何運行它們。
|
||||
|
||||
默認標籤是 `ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye,ubuntu-20.04:docker://node:16-bullseye,ubuntu-18.04:docker://node:16-buster`。
|
||||
它是一個逗號分隔的列表,每個項目都是一個標籤。
|
||||
預設標籤是 `ubuntu-latest:docker://node:16-bullseye,ubuntu-22.04:docker://node:16-bullseye,ubuntu-20.04:docker://node:16-bullseye,ubuntu-18.04:docker://node:16-buster`。
|
||||
它是一個逗號分隔的列表,每個專案都是一個標籤。
|
||||
|
||||
以 `ubuntu-22.04:docker://node:16-bullseye` 為例。
|
||||
這意味著 runner 可以運行 `runs-on: ubuntu-22.04` 的作業,並且作業將在 docker 容器中運行,映像為 `node:16-bullseye`。
|
||||
|
||||
如果默認映像不足以滿足您的需求,並且您有足夠的磁盤空間使用更好更大的映像,可以將其更改為 `ubuntu-22.04:docker://<the image you like>`。
|
||||
如果預設映像不足以滿足您的需求,並且您有足夠的磁盤空間使用更好更大的映像,可以將其更改為 `ubuntu-22.04:docker://<the image you like>`。
|
||||
您可以在 [act images](https://github.com/nektos/act/blob/master/IMAGES.md) 上找到更多有用的映像。
|
||||
|
||||
如果您想在主機上直接運行作業,可以將其更改為 `ubuntu-22.04:host` 或僅 `ubuntu-22.04`,`:host` 是可選的。
|
||||
但是,我們建議您使用一個特殊的名稱,如 `linux_amd64:host` 或 `windows:host` 以避免誤用。
|
||||
|
||||
從 Gitea 1.21 開始,您可以通過修改 runner 配置文件中的 `runners.labels` 來更改標籤(如果您沒有配置文件,請參考 [配置教程](#configuration))。
|
||||
從 Gitea 1.21 開始,您可以透過修改 runner 設定文件中的 `runners.labels` 來更改標籤(如果您沒有設定文件,請參考 設定教學)。
|
||||
重新啟動 runner 後,它將使用這些新標籤,即通過調用 `./act_runner daemon --config config.yaml`。
|
||||
|
||||
@@ -6,12 +6,12 @@ sidebar_position: 110
|
||||
|
||||
# 徽章
|
||||
|
||||
Gitea 內置了徽章系統,允許您在其他地方顯示倉庫的狀態。您可以使用以下徽章:
|
||||
Gitea 內置了徽章系統,允許您在其他地方顯示儲存庫的狀態。您可以使用以下徽章:
|
||||
|
||||
## 工作流程徽章
|
||||
|
||||
Gitea Actions 工作流程徽章是一個顯示最新工作流程運行狀態的徽章。
|
||||
它設計為與 [GitHub Actions 工作流程徽章](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge) 兼容。
|
||||
它設計為與 [GitHub Actions 工作流程徽章](https://docs.github.com/en/actions/monitoring-and-troubleshooting-workflows/adding-a-workflow-status-badge) 相容。
|
||||
|
||||
您可以使用以下 URL 獲取徽章:
|
||||
|
||||
@@ -19,8 +19,8 @@ Gitea Actions 工作流程徽章是一個顯示最新工作流程運行狀態的
|
||||
https://your-gitea-instance.com/{owner}/{repo}/actions/workflows/{workflow_file}/badge.svg?branch={branch}&event={event}
|
||||
```
|
||||
|
||||
- `{owner}`: 倉庫的所有者。
|
||||
- `{repo}`: 倉庫的名稱。
|
||||
- `{owner}`: 儲存庫的所有者。
|
||||
- `{repo}`: 儲存庫的名稱。
|
||||
- `{workflow_file}`: 工作流程文件的名稱。
|
||||
- `{branch}`: 可選。工作流程的分支。默認為倉庫的默認分支。
|
||||
- `{event}`: 可選。工作流程的事件。默認為無。
|
||||
- `{branch}`: 可選。工作流程的分支。預設為儲存庫的預設分支。
|
||||
- `{event}`: 可選。工作流程的事件。預設為無。
|
||||
|
||||
@@ -6,25 +6,25 @@ sidebar_position: 120
|
||||
|
||||
# 與 GitHub Actions 的比較
|
||||
|
||||
儘管 Gitea Actions 設計為與 GitHub Actions 兼容,但它們之間仍存在一些差異。
|
||||
儘管 Gitea Actions 設計為與 GitHub Actions 相容,但它們之間仍存在一些差異。
|
||||
|
||||
## 附加功能
|
||||
|
||||
### 絕對操作 URL
|
||||
|
||||
Gitea Actions 支持通過絕對 URL 定義操作,這意味著您可以使用來自任何 git 倉庫的操作。
|
||||
Gitea Actions 支援通過絕對 URL 定義操作,這意味著您可以使用來自任何 git 儲存庫的操作。
|
||||
例如 `uses: https://github.com/actions/checkout@v4` 或 `uses: http://your_gitea.com/owner/repo@branch`。
|
||||
|
||||
### 用 Go 編寫的操作
|
||||
|
||||
Gitea Actions 支持用 Go 編寫操作。
|
||||
請參閱 [創建 Go 操作](https://blog.gitea.com/creating-go-actions/)。
|
||||
Gitea Actions 支援用 Go 編寫操作。
|
||||
請參閱 [建立 Go 操作](https://blog.gitea.com/creating-go-actions/)。
|
||||
|
||||
### 支持非標準語法 @yearly, @monthly, @weekly, @daily, @hourly 在計劃中
|
||||
### 支援非標準語法 @yearly, @monthly, @weekly, @daily, @hourly 在計劃中
|
||||
|
||||
GitHub Actions 不支持這一點。https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
|
||||
GitHub Actions 不支援這一點。https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#schedule
|
||||
|
||||
## 不支持的工作流程語法
|
||||
## 不支援的工作流程語法
|
||||
|
||||
### `concurrency`
|
||||
|
||||
@@ -68,58 +68,58 @@ GitHub Actions 不支持這一點。https://docs.github.com/en/actions/using-wor
|
||||
|
||||
請參閱 [GitHub Actions 的工作流程語法](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on)。
|
||||
|
||||
目前 Gitea Actions 只支持 `runs-on: xyz` 或 `runs-on: [xyz]`。
|
||||
目前 Gitea Actions 只支援 `runs-on: xyz` 或 `runs-on: [xyz]`。
|
||||
|
||||
## 缺少的功能
|
||||
|
||||
### 包倉庫授權
|
||||
### 包儲存庫授權
|
||||
|
||||
在倉庫內運行的作業的 `GITEA_TOKEN` 應該能夠發布到相關的包倉庫(即上傳 OCI 映像)。請參閱 [自動令牌身份驗證](https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#permissions-for-the-github_token) 中的“包”範圍的“默認訪問”。
|
||||
在儲存庫內運行的作業的 `GITEA_TOKEN` 應該能夠發布到相關的包儲存庫(即上傳 OCI 映像)。請參閱 [自動令牌身份驗證](https://docs.github.com/en/actions/security-for-github-actions/security-guides/automatic-token-authentication#permissions-for-the-github_token) 中的“包”範圍的“預設訪問”。
|
||||
|
||||
目前 Gitea Actions 尚未實現此功能。Gitea Actions 的一個解決方法是使用個人訪問令牌(PAT)。請參閱此 [github 問題和評論](https://github.com/go-gitea/gitea/issues/23642#issuecomment-2119876692) 以跟踪此功能。
|
||||
目前 Gitea Actions 尚未實現此功能。Gitea Actions 的一個解決方法是使用個人存取權杖(PAT)。請參閱此 [github 問題和評論](https://github.com/go-gitea/gitea/issues/23642#issuecomment-2119876692) 以跟蹤此功能。
|
||||
|
||||
### 問題匹配器
|
||||
|
||||
問題匹配器是一種掃描操作輸出以查找指定正則表達式模式並在 UI 中突出顯示該信息的方法。
|
||||
問題匹配器是一種掃描操作輸出以查找指定正則表達式模式並在 UI 中突出顯示該資訊的方法。
|
||||
請參閱 [問題匹配器](https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md)。
|
||||
|
||||
目前 Gitea Actions 忽略它。
|
||||
|
||||
### 創建錯誤註釋
|
||||
### 建立錯誤註釋
|
||||
|
||||
請參閱 [為錯誤創建註釋](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#example-creating-an-annotation-for-an-error)
|
||||
請參閱 [為錯誤建立註釋](https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#example-creating-an-annotation-for-an-error)
|
||||
|
||||
目前 Gitea Actions 忽略它。
|
||||
|
||||
### 表達式
|
||||
|
||||
對於 [表達式](https://docs.github.com/en/actions/learn-github-actions/expressions),僅支持 [`always()`](https://docs.github.com/en/actions/learn-github-actions/expressions#always)。
|
||||
對於 [表達式](https://docs.github.com/en/actions/learn-github-actions/expressions),僅支援 [`always()`](https://docs.github.com/en/actions/learn-github-actions/expressions#always)。
|
||||
|
||||
## 缺少的 UI 功能
|
||||
|
||||
### 預處理和後處理步驟
|
||||
|
||||
預處理和後處理步驟在作業日誌用戶界面中沒有自己的部分。
|
||||
預處理和後處理步驟在作業日誌使用者介面中沒有自己的部分。
|
||||
|
||||
### 服務步驟
|
||||
|
||||
服務步驟在作業日誌用戶界面中沒有自己的部分。
|
||||
服務步驟在作業日誌使用者介面中沒有自己的部分。
|
||||
|
||||
## 不同的行為
|
||||
|
||||
### 下載操作
|
||||
|
||||
以前(1.21.0 之前),`[actions].DEFAULT_ACTIONS_URL` 默認為 `https://gitea.com`。
|
||||
以前(1.21.0 之前),`[actions].DEFAULT_ACTIONS_URL` 預設為 `https://gitea.com`。
|
||||
我們已經限制了此選項僅允許兩個值(`github` 和 `self`)。
|
||||
當設置為 `github` 時,新的默認值,Gitea 將從 `https://github.com` 下載非完全限定的操作。
|
||||
例如,如果您使用 `uses: actions/checkout@v4`,它將從 `https://github.com/actions/checkout.git` 下載 checkout 倉庫。
|
||||
當設定為 `github` 時,新的預設值,Gitea 將從 `https://github.com` 下載非完全限定的操作。
|
||||
例如,如果您使用 `uses: actions/checkout@v4`,它將從 `https://github.com/actions/checkout.git` 下載 checkout 儲存庫。
|
||||
|
||||
如果您想從其他 git 託管服務器下載操作,可以使用絕對 URL,例如 `uses: https://gitea.com/actions/checkout@v4`。
|
||||
如果您想從其他 git 託管伺服器下載操作,可以使用絕對 URL,例如 `uses: https://gitea.com/actions/checkout@v4`。
|
||||
|
||||
如果您的 Gitea 實例位於內部網或受限區域,您可以將 URL 設置為 `self`,以便默認僅從您自己的實例下載操作。
|
||||
如果您的 Gitea 實例位於內部網或受限區域,您可以將 URL 設定為 `self`,以便預設僅從您自己的實例下載操作。
|
||||
當然,您仍然可以在工作流程中使用絕對 URL。
|
||||
|
||||
有關 `[actions].DEFAULT_ACTIONS_URL` 配置的更多詳細信息,請參閱 [配置備忘單](../../administration/config-cheat-sheet.md#actions-actions)。
|
||||
有關 `[actions].DEFAULT_ACTIONS_URL` 設定的更多詳細資訊,請參閱 [設定備忘單](../../administration/config-cheat-sheet.md)。
|
||||
|
||||
### 上下文可用性
|
||||
|
||||
|
||||
@@ -6,78 +6,78 @@ sidebar_position: 140
|
||||
|
||||
# Gitea Actions 的設計
|
||||
|
||||
Gitea Actions 有多個組件。本文件將分別描述它們。
|
||||
Gitea Actions 有多個元件。本文件將分別描述它們。
|
||||
|
||||
## Act
|
||||
|
||||
[nektos/act](https://github.com/nektos/act) 項目是一個出色的工具,允許您在本地運行 GitHub Actions。
|
||||
[nektos/act](https://github.com/nektos/act) 專案是一個出色的工具,允許您在本地運行 GitHub Actions。
|
||||
我們受此啟發,想知道是否可以為 Gitea 運行操作。
|
||||
|
||||
然而,雖然 [nektos/act](https://github.com/nektos/act) 被設計為命令行工具,但我們實際上需要的是一個專門為 Gitea 進行修改的 Go 庫。
|
||||
所以我們將其分叉為 [gitea/act](https://gitea.com/gitea/act)。
|
||||
|
||||
這是一個軟分叉,將定期跟隨上游。
|
||||
儘管添加了一些自定義提交,但我們將盡量避免更改太多原始代碼。
|
||||
儘管添加了一些自訂提交,但我們將盡量避免更改太多原始程式碼。
|
||||
|
||||
分叉的 act 只是 Gitea 特定用法的 shim 或適配器。
|
||||
已經進行了一些額外的提交,例如:
|
||||
|
||||
- 將執行日誌輸出到 logger 鉤子,以便可以報告給 Gitea
|
||||
- 禁用 GraphQL URL,因為 Gitea 不支持它
|
||||
- 禁用 GraphQL URL,因為 Gitea 不支援它
|
||||
- 為每個作業啟動一個新容器,而不是重用,以確保隔離。
|
||||
|
||||
這些修改沒有理由合併到上游。
|
||||
如果用戶只想在本地運行受信任的操作,這些修改沒有意義。
|
||||
如果使用者只想在本地運行受信任的操作,這些修改沒有意義。
|
||||
|
||||
然而,未來可能會有重疊,例如兩個項目都需要的錯誤修復或新功能。
|
||||
在這些情況下,我們將把更改貢獻回上游倉庫。
|
||||
然而,未來可能會有重疊,例如兩個專案都需要的錯誤修復或新功能。
|
||||
在這些情況下,我們將把更改貢獻回上游儲存庫。
|
||||
|
||||
## Act runner
|
||||
|
||||
Gitea 的 runner 被稱為 act runner,因為它基於 act。
|
||||
|
||||
像其他 CI runner 一樣,我們將其設計為 Gitea 的外部部分,這意味著它應該在與 Gitea 不同的服務器上運行。
|
||||
像其他 CI runner 一樣,我們將其設計為 Gitea 的外部部分,這意味著它應該在與 Gitea 不同的伺服器上運行。
|
||||
|
||||
為了確保 runner 連接到正確的 Gitea 實例,我們需要使用令牌註冊它。
|
||||
此外,runner 將向 Gitea 介紹自己並通過報告其標籤來聲明它可以運行的作業類型。
|
||||
|
||||
前面提到過,工作流程文件中的 `runs-on: ubuntu-latest` 意味著作業將在具有 `ubuntu-latest` 標籤的 runner 上運行。
|
||||
但是 runner 如何知道運行 `ubuntu-latest`?答案在於將標籤映射到環境。
|
||||
這就是為什麼在註冊期間添加自定義標籤時,您需要輸入一些複雜的內容,如 `my_custom_label:docker://centos:7`。
|
||||
這就是為什麼在註冊期間添加自訂標籤時,您需要輸入一些複雜的內容,如 `my_custom_label:docker://centos:7`。
|
||||
這意味著 runner 可以接受需要在 `my_custom_label` 上運行的作業,並將其通過 docker 容器運行,映像為 `centos:7`。
|
||||
|
||||
然而,docker 並不是唯一的選擇。
|
||||
act 還支持直接在主機上運行作業。
|
||||
act 還支援直接在主機上運行作業。
|
||||
這是通過標籤如 `linux_arm:host` 實現的。
|
||||
這個標籤表示 runner 可以接受需要在 `linux_arm` 上運行的作業,並直接在主機上運行它。
|
||||
|
||||
標籤的設計遵循格式 `label[:schema[:args]]`。
|
||||
如果省略 schema,則默認為 `host`。
|
||||
如果省略 schema,則預設為 `host`。
|
||||
所以,
|
||||
|
||||
- `my_custom_label:docker://node:18`: 使用 `node:18` Docker 映像運行標籤為 `my_custom_label` 的作業。
|
||||
- `my_custom_label:host`: 直接在主機上運行標籤為 `my_custom_label` 的作業。
|
||||
- `my_custom_label`: 與 `my_custom_label:host` 相同。
|
||||
- `my_custom_label:vm:ubuntu-latest`: (僅示例,未實現)使用 `ubuntu-latest` ISO 的虛擬機運行標籤為 `my_custom_label` 的作業。
|
||||
- `my_custom_label:vm:ubuntu-latest`: (僅範例,未實現)使用 `ubuntu-latest` ISO 的虛擬機運行標籤為 `my_custom_label` 的作業。
|
||||
|
||||
## 通信協議
|
||||
|
||||
由於 act runner 是 Gitea 的獨立部分,我們需要一個協議來讓 runner 與 Gitea 實例通信。
|
||||
然而,我們認為讓 Gitea 監聽一個新端口不是一個好主意。
|
||||
相反,我們希望重用 HTTP 端口,這意味著我們需要一個與 HTTP 兼容的協議。
|
||||
相反,我們希望重用 HTTP 端口,這意味著我們需要一個與 HTTP 相容的協議。
|
||||
我們選擇使用 gRPC over HTTP。
|
||||
|
||||
我們使用 [actions-proto-def](https://gitea.com/gitea/actions-proto-def) 和 [actions-proto-go](https://gitea.com/gitea/actions-proto-go) 來將它們連接起來。
|
||||
有關 gRPC 的更多信息可以在 [其網站](https://grpc.io/) 上找到。
|
||||
有關 gRPC 的更多資訊可以在 [其網站](https://grpc.io/) 上找到。
|
||||
|
||||
## 網絡架構
|
||||
## 網路架構
|
||||
|
||||
讓我們來看看整體網絡架構。
|
||||
讓我們來看看整體網路架構。
|
||||
這將幫助您排除一些問題,並解釋為什麼用 Gitea 實例的回環地址註冊 runner 是個壞主意。
|
||||
|
||||

|
||||
|
||||
圖片中標記了四個網絡連接,箭頭的方向表示建立連接的方向。
|
||||
圖片中標記了四個網路連接,箭頭的方向表示建立連接的方向。
|
||||
|
||||
### 連接 1,act runner 到 Gitea 實例
|
||||
|
||||
@@ -85,33 +85,33 @@ act runner 必須能夠連接到 Gitea 以接收任務並發送回執行結果
|
||||
|
||||
### 連接 2,作業容器到 Gitea 實例
|
||||
|
||||
作業容器與 runner 有不同的網絡命名空間,即使它們在同一台機器上。
|
||||
如果工作流程中有 `actions/checkout@v4`,它們需要連接到 Gitea 以獲取代碼。
|
||||
運行某些作業並不總是需要獲取代碼,但在大多數情況下是必需的。
|
||||
作業容器與 runner 有不同的網路命名空間,即使它們在同一臺機器上。
|
||||
如果工作流程中有 `actions/checkout@v4`,它們需要連接到 Gitea 以獲取程式碼。
|
||||
運行某些作業並不總是需要獲取程式碼,但在大多數情況下是必需的。
|
||||
|
||||
如果您使用回環地址註冊 runner,當它在同一台機器上時,runner 可以連接到 Gitea。
|
||||
但是,如果作業容器嘗試從 localhost 獲取代碼,則會失敗,因為 Gitea 不在同一容器中。
|
||||
如果您使用回環地址註冊 runner,當它在同一臺機器上時,runner 可以連接到 Gitea。
|
||||
但是,如果作業容器嘗試從 localhost 獲取程式碼,則會失敗,因為 Gitea 不在同一容器中。
|
||||
|
||||
### 連接 3,act runner 到互聯網
|
||||
|
||||
當您使用一些操作如 `actions/checkout@v4` 時,act runner 會下載腳本,而不是作業容器。
|
||||
默認情況下,它從 [github.com](http://github.com/) 下載,因此需要訪問互聯網。如果您將 `DEFAULT_ACTIONS_URL` 配置為 `self`,則它將默認從您的 Gitea 實例下載。然後在下載操作本身時不會連接到互聯網。
|
||||
它還默認從 Docker Hub 下載一些 docker 映像,這也需要訪問互聯網。
|
||||
預設情況下,它從 [github.com](http://github.com/) 下載,因此需要訪問互聯網。如果您將 `DEFAULT_ACTIONS_URL` 設定為 `self`,則它將預設從您的 Gitea 實例下載。然後在下載操作本身時不會連接到互聯網。
|
||||
它還預設從 Docker Hub 下載一些 docker 映像,這也需要訪問互聯網。
|
||||
|
||||
然而,訪問互聯網並不是絕對必要的。
|
||||
您可以配置您的 Gitea 實例從您的內聯設施中獲取操作或映像。
|
||||
您可以設定您的 Gitea 實例從您的內聯設施中獲取操作或映像。
|
||||
|
||||
事實上,您的 Gitea 實例可以同時作為操作市場和映像註冊表。
|
||||
您可以將操作倉庫從 GitHub 鏡像到您的 Gitea 實例,並正常使用它們。
|
||||
您可以將操作儲存庫從 GitHub 鏡像到您的 Gitea 實例,並正常使用它們。
|
||||
而 [Gitea 容器註冊表](usage/packages/container.md) 可以用作 Docker 映像註冊表。
|
||||
|
||||
### 連接 4,作業容器到互聯網
|
||||
|
||||
當使用如 `actions/setup-go@v5` 的操作時,可能需要從互聯網下載資源以在作業容器中設置 Go 語言環境。
|
||||
當使用如 `actions/setup-go@v5` 的操作時,可能需要從互聯網下載資源以在作業容器中設定 Go 語言環境。
|
||||
因此,訪問互聯網是這些操作成功完成所必需的。
|
||||
|
||||
然而,這也是可選的。
|
||||
您可以使用自己的自定義操作來避免依賴互聯網訪問,或者您可以使用打包的 Docker 映像來運行已安裝所有依賴項的作業。
|
||||
您可以使用自己的自訂操作來避免依賴互聯網訪問,或者您可以使用打包的 Docker 映像來運行已安裝所有依賴項的作業。
|
||||
|
||||
## 總結
|
||||
|
||||
@@ -119,4 +119,4 @@ act runner 必須能夠連接到 Gitea 以接收任務並發送回執行結果
|
||||
訪問互聯網是可選的,但沒有它將需要一些額外的工作。
|
||||
換句話說:runner 最好能夠自己查詢互聯網,但您不需要將其暴露在互聯網上(無論是入站還是出站)。
|
||||
|
||||
如果您在使用 Gitea Actions 時遇到任何網絡問題,希望上圖可以幫助您排除它們。
|
||||
如果您在使用 Gitea Actions 時遇到任何網路問題,希望上圖可以幫助您排除它們。
|
||||
|
||||
@@ -8,9 +8,9 @@ sidebar_position: 200
|
||||
|
||||
這頁包含了一些關於 Gitea Actions 的常見問題和解答。
|
||||
|
||||
## 是否可以預設禁用新倉庫的 Actions?
|
||||
## 是否可以預設禁用新儲存庫的 Actions?
|
||||
|
||||
可以,當你為實例啟用 Actions 時,你可以選擇預設為所有新倉庫啟用 `actions` 單元。
|
||||
可以,當你為實例啟用 Actions 時,你可以選擇預設為所有新儲存庫啟用 `actions` 單元。
|
||||
|
||||
```ini
|
||||
[repository]
|
||||
@@ -21,13 +21,13 @@ DEFAULT_REPO_UNITS = ...,repo.actions
|
||||
## 我們應該在工作流程文件中使用 `${{ github.xyz }}` 還是 `${{ gitea.xyz }}`?
|
||||
|
||||
你可以使用 `github.xyz`,Gitea 也能正常運作。
|
||||
如前所述,Gitea Actions 設計上與 GitHub Actions 兼容。
|
||||
如前所述,Gitea Actions 設計上與 GitHub Actions 相容。
|
||||
然而,我們建議使用 `gitea.xyz`,以防 Gitea 添加了 GitHub 沒有的功能,避免在工作流程文件中出現不同種類的 secrets(而且你是在 Gitea 上使用這個工作流程,而不是 GitHub)。
|
||||
不過,這完全是可選的,因為目前兩者的效果相同。
|
||||
|
||||
## 使用 `actions/checkout@v4` 等 actions 時,runner 會下載腳本到哪裡?
|
||||
|
||||
在 GitHub 上有成千上萬的 [actions 腳本](https://github.com/marketplace?type=actions),當你寫 `uses: actions/checkout@v4` 時,它會默認從 [github.com/actions/checkout](http://github.com/actions/checkout) 下載腳本。
|
||||
在 GitHub 上有成千上萬的 [actions 腳本](https://github.com/marketplace?type=actions),當你寫 `uses: actions/checkout@v4` 時,它會預設從 [github.com/actions/checkout](http://github.com/actions/checkout) 下載腳本。
|
||||
但如果你想從其他地方(如 gitea.com)而不是 GitHub 使用 actions 怎麼辦?
|
||||
|
||||
好消息是你可以指定 URL 前綴來從任何地方使用 actions。
|
||||
@@ -40,26 +40,26 @@ DEFAULT_REPO_UNITS = ...,repo.actions
|
||||
|
||||
注意,`https://` 或 `http://` 前綴是必要的!
|
||||
|
||||
這是與 GitHub Actions 的一個區別,後者僅支持來自 GitHub 的 actions 腳本。
|
||||
但這應該允許用戶在運行 Actions 時有更多的靈活性。
|
||||
這是與 GitHub Actions 的一個區別,後者僅支援來自 GitHub 的 actions 腳本。
|
||||
但這應該允許使用者在運行 Actions 時有更多的靈活性。
|
||||
|
||||
另外,如果你希望你的 runners 默認從你自己的 Gitea 實例下載 actions,你可以通過設置 `[actions].DEFAULT_ACTIONS_URL` 來配置。
|
||||
參見 [配置備忘單](../../administration/config-cheat-sheet.md#actions-actions)。
|
||||
另外,如果你希望你的 runners 預設從你自己的 Gitea 實例下載 actions,你可以透過設定 `[actions].DEFAULT_ACTIONS_URL` 來設定。
|
||||
參見 [設定備忘單](../../administration/config-cheat-sheet.md)。
|
||||
|
||||
## 如何限制 runners 的權限?
|
||||
|
||||
Runners 只具有連接到你的 Gitea 實例的權限。
|
||||
當任何 runner 接收到一個要運行的任務時,它將臨時獲得與該任務相關的倉庫的有限權限。
|
||||
如果你想給 runner 更多的權限,允許它訪問更多的私有倉庫或外部系統,你可以傳遞 [secrets](usage/actions/secrets.md) 給它。
|
||||
當任何 runner 接收到一個要運行的任務時,它將臨時獲得與該任務相關的儲存庫的有限權限。
|
||||
如果你想給 runner 更多的權限,允許它訪問更多的私有儲存庫或外部系統,你可以傳遞 [secrets](usage/actions/secrets.md) 給它。
|
||||
|
||||
對 Actions 進行精細的權限控制是一項複雜的工作。
|
||||
未來,我們將為 Gitea 添加更多選項,使其更具可配置性,例如允許更多的寫入訪問倉庫或讀取同一組織中所有倉庫的訪問權限。
|
||||
未來,我們將為 Gitea 添加更多選項,使其更具可設定性,例如允許更多的寫入訪問儲存庫或讀取同一組織中所有儲存庫的存取權限。
|
||||
|
||||
## 如何避免被黑客攻擊?
|
||||
|
||||
有兩種類型的可能攻擊:未知的 runner 竊取你的倉庫中的代碼或 secrets,或惡意腳本控制你的 runner。
|
||||
有兩種類型的可能攻擊:未知的 runner 竊取你的儲存庫中的程式碼或 secrets,或惡意腳本控制你的 runner。
|
||||
|
||||
避免前者意味著不允許你不認識的人為你的倉庫、組織或實例註冊 runners。
|
||||
避免前者意味著不允許你不認識的人為你的儲存庫、組織或實例註冊 runners。
|
||||
|
||||
後者則有點複雜。
|
||||
如果你為你的公司使用私人 Gitea 實例,你可能不需要擔心安全問題,因為你信任你的同事並且可以追究他們的責任。
|
||||
@@ -67,20 +67,20 @@ Runners 只具有連接到你的 Gitea 實例的權限。
|
||||
對於公共實例,情況有點不同。
|
||||
以下是我們在 [gitea.com](http://gitea.com/) 上的做法:
|
||||
|
||||
- 我們只為 "gitea" 組織註冊 runners,因此我們的 runners 不會執行來自其他倉庫的任務。
|
||||
- 我們只為 "gitea" 組織註冊 runners,因此我們的 runners 不會執行來自其他儲存庫的任務。
|
||||
- 我們的 runners 總是使用隔離的容器運行任務。雖然可以直接在主機上這樣做,但我們選擇不這樣做以提高安全性。
|
||||
- 要運行 fork pull requests 的 actions,需要批准。參見 [#22803](https://github.com/go-gitea/gitea/pull/22803)。
|
||||
- 如果有人在 [gitea.com](http://gitea.com/) 上為他們的倉庫或組織註冊了他們自己的 runner,我們不反對,只是不會在我們的組織中使用它。然而,他們應該注意確保該 runner 不被他們不認識的其他用戶使用。
|
||||
- 如果有人在 [gitea.com](http://gitea.com/) 上為他們的儲存庫或組織註冊了他們自己的 runner,我們不反對,只是不會在我們的組織中使用它。然而,他們應該注意確保該 runner 不被他們不認識的其他使用者使用。
|
||||
|
||||
## act runner 支持哪些操作系統?
|
||||
## act runner 支援哪些操作系統?
|
||||
|
||||
它在 Linux、macOS 和 Windows 上運行良好。
|
||||
雖然理論上支持其他操作系統,但它們需要進一步測試。
|
||||
雖然理論上支援其他操作系統,但它們需要進一步測試。
|
||||
|
||||
需要注意的一點是,如果你選擇直接在主機上運行任務而不是在任務容器中,操作系統之間的環境差異可能會導致意外的失敗。
|
||||
|
||||
例如,bash 在大多數情況下在 Windows 上不可用,而 act 嘗試默認使用 bash 運行腳本。
|
||||
因此,你需要在工作流程文件中指定 `powershell` 為默認 shell,參見 [defaults.run](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#defaultsrun)。
|
||||
例如,bash 在大多數情況下在 Windows 上不可用,而 act 嘗試預設使用 bash 運行腳本。
|
||||
因此,你需要在工作流程文件中指定 `powershell` 為預設 shell,參見 [defaults.run](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#defaultsrun)。
|
||||
|
||||
```yaml
|
||||
defaults:
|
||||
@@ -88,7 +88,7 @@ defaults:
|
||||
shell: powershell
|
||||
```
|
||||
|
||||
## 為什麼選擇 GitHub Actions?為什麼不選擇與 GitLab CI/CD 兼容的東西?
|
||||
## 為什麼選擇 GitHub Actions?為什麼不選擇與 GitLab CI/CD 相容的東西?
|
||||
|
||||
[@lunny](https://gitea.com/lunny) 在 [實現 actions 的問題](https://github.com/go-gitea/gitea/issues/13539) 中解釋了這一點。
|
||||
此外,Actions 不僅僅是一個 CI/CD 系統,還是一個自動化工具。
|
||||
@@ -120,32 +120,32 @@ defaults:
|
||||
|
||||
目前,act runner 嘗試匹配標籤中的每個人並使用它找到的第一個匹配。
|
||||
|
||||
## runner 的代理標籤和自定義標籤有什麼區別?
|
||||
## runner 的代理標籤和自訂標籤有什麼區別?
|
||||
|
||||

|
||||
|
||||
代理標籤是在註冊期間由 runner 向 Gitea 實例報告的。
|
||||
另一方面,自定義標籤是由 Gitea 管理員或組織或倉庫的所有者手動添加的(取決於 runner 的級別)。
|
||||
另一方面,自訂標籤是由 Gitea 管理員或組織或儲存庫的所有者手動添加的(取決於 runner 的級別)。
|
||||
|
||||
然而,這裡的設計需要改進,因為它目前有一些粗糙的邊緣。
|
||||
你可以向已註冊的 runner 添加自定義標籤,例如 `centos`,這意味著 runner 將接收具有 `runs-on: centos` 的任務。
|
||||
然而,runner 可能不知道為這個標籤使用哪個環境,導致它使用默認映像或導致邏輯死胡同。
|
||||
這個默認值可能不符合用戶的期望。
|
||||
你可以向已註冊的 runner 添加自訂標籤,例如 `centos`,這意味著 runner 將接收具有 `runs-on: centos` 的任務。
|
||||
然而,runner 可能不知道為這個標籤使用哪個環境,導致它使用預設映像或導致邏輯死衚衕。
|
||||
這個預設值可能不符合使用者的期望。
|
||||
參見 [runtime.go#L71](https://gitea.com/gitea/act_runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L71)。
|
||||
|
||||
同時,我們建議你重新註冊你的 runner,如果你想更改它的標籤。
|
||||
|
||||
## Gitea Actions runner 會有更多的實現嗎?
|
||||
|
||||
雖然我們希望提供更多選擇,但我們有限的人力意味著 act runner 將是唯一官方支持的 runner。
|
||||
然而,Gitea 和 act runner 都是完全開源的,所以任何人都可以創建一個新的/更好的實現。
|
||||
無論你如何決定,我們都支持你的選擇。
|
||||
如果你 fork 了 act runner 來創建你自己的版本:如果你能並且認為你的更改也會幫助其他人,請將更改貢獻回來。
|
||||
雖然我們希望提供更多選擇,但我們有限的人力意味著 act runner 將是唯一官方支援的 runner。
|
||||
然而,Gitea 和 act runner 都是完全開源的,所以任何人都可以建立一個新的/更好的實現。
|
||||
無論你如何決定,我們都支援你的選擇。
|
||||
如果你 fork 了 act runner 來建立你自己的版本:如果你能並且認為你的更改也會幫助其他人,請將更改貢獻回來。
|
||||
|
||||
## Gitea 支持哪些工作流程觸發事件?
|
||||
## Gitea 支援哪些工作流程觸發事件?
|
||||
|
||||
所有列在此表中的事件都是支持的事件,並且與 GitHub 兼容。
|
||||
對於僅由 GitHub 支持的事件,請參見 GitHub 的 [文檔](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows)。
|
||||
所有列在此表中的事件都是支援的事件,並且與 GitHub 相容。
|
||||
對於僅由 GitHub 支援的事件,請參見 GitHub 的 [文件](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows)。
|
||||
|
||||
| 觸發事件 | 活動類型 |
|
||||
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------ |
|
||||
|
||||
@@ -10,25 +10,25 @@ sidebar_position: 1
|
||||
|
||||
## 名稱
|
||||
|
||||
它類似並兼容於 [GitHub Actions](https://github.com/features/actions),其名稱也受其啟發。
|
||||
它類似並相容於 [GitHub Actions](https://github.com/features/actions),其名稱也受其啟發。
|
||||
為了避免混淆,我們在這裡澄清拼寫:
|
||||
|
||||
- "Gitea Actions"(帶有 "s",兩個詞首字母大寫)是 Gitea 功能的名稱。
|
||||
- "GitHub Actions" 是 GitHub 功能的名稱。
|
||||
- "Actions" 可能指上述任何一個,取決於上下文。在本文檔中,它指的是 "Gitea Actions"。
|
||||
- "action" 或 "actions" 指的是一些腳本/插件,如 "actions/checkout@v4" 或 "actions/cache@v3"。
|
||||
- "Actions" 可能指上述任何一個,取決於上下文。在本文件中,它指的是 "Gitea Actions"。
|
||||
- "action" 或 "actions" 指的是一些腳本/外掛,如 "actions/checkout@v4" 或 "actions/cache@v3"。
|
||||
|
||||
## Runners
|
||||
|
||||
就像其他 CI/CD 解決方案一樣,Gitea 不會自己運行作業,而是將作業委派給 runners。
|
||||
Gitea Actions 的 runner 稱為 [act runner](https://gitea.com/gitea/act_runner),它是一個獨立的程序,也是用 Go 編寫的。
|
||||
Gitea Actions 的 runner 稱為 [act runner](https://gitea.com/gitea/act_runner),它是一個獨立的程式,也是用 Go 編寫的。
|
||||
它基於 [nektos/act](http://github.com/nektos/act) 的 [fork](https://gitea.com/gitea/act)。
|
||||
|
||||
由於 runner 是獨立部署的,可能會有潛在的安全問題。
|
||||
為了避免這些問題,請遵循兩個簡單的規則:
|
||||
|
||||
- 不要為你不信任的倉庫、組織或實例使用你不信任的 runner。
|
||||
- 不要為你不信任的倉庫、組織或實例提供 runner。
|
||||
- 不要為你不信任的儲存庫、組織或實例使用你不信任的 runner。
|
||||
- 不要為你不信任的儲存庫、組織或實例提供 runner。
|
||||
|
||||
對於內部使用的 Gitea 實例,如企業或個人使用的實例,這兩個規則都不是問題,它們自然如此。
|
||||
然而,對於公共 Gitea 實例,如 [gitea.com](https://gitea.com),在添加或使用 runners 時應記住這兩個規則。
|
||||
|
||||
@@ -8,33 +8,33 @@ sidebar_position: 10
|
||||
|
||||
本頁將引導你使用 Gitea Actions 的過程。
|
||||
|
||||
## 設置 Gitea
|
||||
## 設定 Gitea
|
||||
|
||||
首先,你需要一個 Gitea 實例。
|
||||
你可以按照 [文檔](installation/from-package.md) 設置一個新實例或升級現有實例。
|
||||
你可以按照 [文件](installation/from-package.md) 設定一個新實例或升級現有實例。
|
||||
無論你如何安裝或運行 Gitea,只要其版本是 1.19.0 或更高版本即可。
|
||||
|
||||
從 1.21.0 開始,Actions 默認啟用。如果你使用的是 1.21.0 之前的版本,你需要在配置文件中添加以下內容以啟用它:
|
||||
從 1.21.0 開始,Actions 預設啟用。如果你使用的是 1.21.0 之前的版本,你需要在設定文件中添加以下內容以啟用它:
|
||||
|
||||
```ini
|
||||
[actions]
|
||||
ENABLED=true
|
||||
```
|
||||
|
||||
如果你想了解更多或在配置過程中遇到任何問題,請參考 [配置備忘單](../../administration/config-cheat-sheet.md#actions-actions)。
|
||||
如果你想了解更多或在設定過程中遇到任何問題,請參考 [設定備忘單](../../administration/config-cheat-sheet.md)。
|
||||
|
||||
### 設置 runner
|
||||
### 設定 runner
|
||||
|
||||
Gitea Actions 需要 [act runner](https://gitea.com/gitea/act_runner) 來運行作業。
|
||||
為了避免消耗過多資源並影響 Gitea 實例,建議在與 Gitea 實例不同的機器上啟動 runners。
|
||||
|
||||
你可以使用 [預構建的二進位文件](http://dl.gitea.com/act_runner) 或 [docker 映像](https://hub.docker.com/r/gitea/act_runner/tags) 設置 runner。
|
||||
你可以使用 [預構建的二進位文件](http://dl.gitea.com/act_runner) 或 [docker 映像](https://hub.docker.com/r/gitea/act_runner/tags) 設定 runner。
|
||||
|
||||
在進一步操作之前,我們建議使用預構建的二進位文件作為命令行運行它,以確保它適用於你的環境,特別是如果你在本地主機上運行 runner。
|
||||
如果出現問題,這樣也更容易調試。
|
||||
|
||||
runner 可以在隔離的 Docker 容器中運行作業,因此你需要確保已安裝 Docker 並且 Docker 守護進程正在運行。
|
||||
雖然這不是絕對必要的,因為 runner 也可以直接在主機上運行作業,這取決於你如何配置它。
|
||||
雖然這不是絕對必要的,因為 runner 也可以直接在主機上運行作業,這取決於你如何設定它。
|
||||
然而,建議使用 Docker 來運行作業,因為這樣更安全且更易於管理。
|
||||
|
||||
在運行 runner 之前,你應該首先使用以下命令將其註冊到你的 Gitea 實例:
|
||||
@@ -47,22 +47,22 @@ runner 可以在隔離的 Docker 容器中運行作業,因此你需要確保
|
||||
|
||||
`instance` 指的是你的 Gitea 實例的地址,如 `http://192.168.8.8:3000` 或 `https://gitea.com`。
|
||||
runner 和作業容器(由 runner 啟動以執行作業)將連接到此地址。
|
||||
這意味著它可能與你的 Gitea 實例的 `ROOT_URL` 不同,後者是為網頁訪問配置的。
|
||||
這意味著它可能與你的 Gitea 實例的 `ROOT_URL` 不同,後者是為網頁訪問設定的。
|
||||
使用回環地址如 `127.0.0.1` 或 `localhost` 總是個壞主意。
|
||||
如果你不確定使用哪個地址,通常 LAN 地址是正確的選擇。
|
||||
|
||||
`token` 用於身份驗證和識別,如 `P2U1U0oB4XaRCi8azcngmPCLbRpUGapalhmddh23`。
|
||||
每個令牌可以用來創建多個 runners,直到使用重置鏈接替換為新令牌。
|
||||
你可以從以下位置獲取不同級別的令牌來創建相應級別的 runners:
|
||||
每個令牌可以用來建立多個 runners,直到使用重置鏈接替換為新令牌。
|
||||
你可以從以下位置獲取不同級別的令牌來建立相應級別的 runners:
|
||||
|
||||
- 實例級別:管理員設置頁面,如 `<your_gitea.com>/admin/actions/runners`。
|
||||
- 組織級別:組織設置頁面,如 `<your_gitea.com>/<org>/settings/actions/runners`。
|
||||
- 倉庫級別:倉庫設置頁面,如 `<your_gitea.com>/<owner>/<repo>/settings/actions/runners`。
|
||||
- 實例級別:管理員設定頁面,如 `<your_gitea.com>/admin/actions/runners`。
|
||||
- 組織級別:組織設定頁面,如 `<your_gitea.com>/<org>/settings/actions/runners`。
|
||||
- 儲存庫級別:儲存庫設定頁面,如 `<your_gitea.com>/<owner>/<repo>/settings/actions/runners`。
|
||||
|
||||

|
||||
|
||||
註冊後,一個名為 `.runner` 的新文件將出現在當前目錄中。
|
||||
該文件存儲註冊信息。
|
||||
該文件儲存註冊資訊。
|
||||
請不要手動編輯它。
|
||||
如果該文件丟失或損壞,你可以簡單地刪除它並重新註冊。
|
||||
|
||||
@@ -76,20 +76,20 @@ runner 和作業容器(由 runner 啟動以執行作業)將連接到此地
|
||||
|
||||

|
||||
|
||||
你可以訪問 [Act runner](usage/actions/act-runner.md) 獲取更多信息。
|
||||
你可以訪問 [Act runner](usage/actions/act-runner.md) 獲取更多資訊。
|
||||
|
||||
### 使用 Actions
|
||||
|
||||
即使 Gitea 實例啟用了 Actions,倉庫仍然默認禁用 Actions。
|
||||
即使 Gitea 實例啟用了 Actions,儲存庫仍然預設禁用 Actions。
|
||||
|
||||
要啟用它,請轉到倉庫的設置頁面,如 `your_gitea.com/<owner>/repo/settings` 並啟用 `Enable Repository Actions`。
|
||||
要啟用它,請轉到儲存庫的設定頁面,如 `your_gitea.com/<owner>/repo/settings` 並啟用 `Enable Repository Actions`。
|
||||
|
||||

|
||||
|
||||
接下來的步驟可能相當複雜。
|
||||
你需要學習 [工作流程語法](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions) 並編寫你想要的工作流程文件。
|
||||
|
||||
然而,我們可以從一個簡單的示例開始:
|
||||
然而,我們可以從一個簡單的範例開始:
|
||||
|
||||
```yaml
|
||||
name: Gitea Actions Demo
|
||||
@@ -115,22 +115,22 @@ jobs:
|
||||
|
||||
:::warning
|
||||
|
||||
某些 actions 可能無法在 SHA256 倉庫中正常運行,或者當 Gitea 在子路徑上運行時。這包括 [actions/checkout](https://github.com/actions/checkout/issues/1843)。
|
||||
某些 actions 可能無法在 SHA256 儲存庫中正常運行,或者當 Gitea 在子路徑上運行時。這包括 [actions/checkout](https://github.com/actions/checkout/issues/1843)。
|
||||
|
||||
:::
|
||||
|
||||
你可以將其作為擴展名為 `.yaml` 的文件上傳到倉庫的 `.gitea/workflows/` 目錄中,例如 `.gitea/workflows/demo.yaml`。
|
||||
你可以將其作為擴展名為 `.yaml` 的文件上傳到儲存庫的 `.gitea/workflows/` 目錄中,例如 `.gitea/workflows/demo.yaml`。
|
||||
你可能會注意到這與 [GitHub Actions 快速入門](https://docs.github.com/en/actions/quickstart) 非常相似。
|
||||
那是因為 Gitea Actions 設計上盡可能與 GitHub Actions 兼容。
|
||||
那是因為 Gitea Actions 設計上盡可能與 GitHub Actions 相容。
|
||||
|
||||
請注意,示例文件中包含一些表情符號。
|
||||
請確保你的數據庫支持它們,特別是當使用 MySQL 時。
|
||||
請注意,範例文件中包含一些表情符號。
|
||||
請確保你的資料庫支援它們,特別是當使用 MySQL 時。
|
||||
如果字符集不是 `utf8mb4`,將會出現錯誤,如 `Error 1366 (HY000): Incorrect string value: '\\xF0\\x9F\\x8E\\x89 T...' for column 'name' at row 1`。
|
||||
有關更多信息,請參見 [數據庫準備](../../installation/database-preparation.md#mysqlmariadb)。
|
||||
有關更多資訊,請參見 [資料庫準備](../../installation/database-preparation.md#mysqlmariadb)。
|
||||
|
||||
或者,你可以刪除示例文件中的所有表情符號並重試。
|
||||
或者,你可以刪除範例文件中的所有表情符號並重試。
|
||||
|
||||
行 `on: [push]` 表示當你向此倉庫推送提交時,工作流程將被觸發。
|
||||
行 `on: [push]` 表示當你向此儲存庫推送提交時,工作流程將被觸發。
|
||||
然而,當你上傳 YAML 文件時,它也會推送一個提交,因此你應該在 Actions 標籤中看到一個新任務。
|
||||
|
||||

|
||||
|
||||
@@ -6,7 +6,7 @@ sidebar_position: 50
|
||||
|
||||
# Secrets
|
||||
|
||||
Secrets 允許你在用戶、組織或倉庫中存儲敏感信息。
|
||||
Secrets 允許你在使用者、組織或儲存庫中儲存敏感資訊。
|
||||
Secrets 在 Gitea 1.19+ 可用,並且在 1.20+ 啟用 ACTIONS 時可見。
|
||||
|
||||
## 命名你的 secrets
|
||||
@@ -17,15 +17,15 @@ Secrets 在 Gitea 1.19+ 可用,並且在 1.20+ 啟用 ACTIONS 時可見。
|
||||
- Secret 名稱不得以 `GITHUB_` 和 `GITEA_` 前綴開頭。
|
||||
- Secret 名稱不得以數字開頭。
|
||||
- Secret 名稱不區分大小寫。
|
||||
- Secret 名稱在創建它們的級別上必須是唯一的。
|
||||
- Secret 名稱在建立它們的級別上必須是唯一的。
|
||||
|
||||
例如,在倉庫級別創建的 secret 必須在該倉庫中具有唯一名稱,而在組織級別創建的 secret 必須在該級別上具有唯一名稱。
|
||||
例如,在儲存庫級別建立的 secret 必須在該儲存庫中具有唯一名稱,而在組織級別建立的 secret 必須在該級別上具有唯一名稱。
|
||||
|
||||
### 使用 secrets
|
||||
|
||||
創建配置變數後,它們將自動填充到 `secrets` 上下文中。
|
||||
可以通過表達式 `${{ secrets.SECRET_NAME }}` 在工作流程中訪問它們。
|
||||
建立設定變數後,它們將自動填充到 `secrets` 上下文中。
|
||||
可以透過表達式 `${{ secrets.SECRET_NAME }}` 在工作流程中訪問它們。
|
||||
|
||||
### 優先級
|
||||
|
||||
如果在多個級別存在同名 secret,則最低級別的 secret 優先。例如,如果組織級別的 secret 與倉庫級別的 secret 同名,則倉庫級別的 secret 優先。
|
||||
如果在多個級別存在同名 secret,則最低級別的 secret 優先。例如,如果組織級別的 secret 與儲存庫級別的 secret 同名,則儲存庫級別的 secret 優先。
|
||||
|
||||
@@ -6,8 +6,8 @@ sidebar_position: 25
|
||||
|
||||
# 變數
|
||||
|
||||
您可以在用戶、組織和倉庫級別創建配置變數。
|
||||
變數的級別取決於您創建它的位置。創建變數時,鍵將被轉換為大寫。您需要在 yaml 文件中使用大寫。
|
||||
您可以在使用者、組織和儲存庫級別建立設定變數。
|
||||
變數的級別取決於您建立它的位置。建立變數時,鍵將被轉換為大寫。您需要在 yaml 文件中使用大寫。
|
||||
|
||||
## 命名規則
|
||||
|
||||
@@ -17,15 +17,15 @@ sidebar_position: 25
|
||||
- 變數名稱不得以 `GITHUB_` 和 `GITEA_` 前綴開頭。
|
||||
- 變數名稱不得以數字開頭。
|
||||
- 變數名稱不區分大小寫。
|
||||
- 變數名稱在創建它們的級別上必須是唯一的。
|
||||
- 變數名稱在建立它們的級別上必須是唯一的。
|
||||
- 變數名稱不得以 `CI` 開頭。
|
||||
|
||||
## 使用變數
|
||||
|
||||
創建配置變數後,它們將自動填充到 `vars` 上下文中。
|
||||
可以通過表達式 `${{ vars.VARIABLE_NAME }}` 在工作流程中訪問它們。
|
||||
建立設定變數後,它們將自動填充到 `vars` 上下文中。
|
||||
可以透過表達式 `${{ vars.VARIABLE_NAME }}` 在工作流程中訪問它們。
|
||||
|
||||
## 優先級
|
||||
|
||||
如果在多個級別存在同名變數,則最低級別的變數優先:
|
||||
倉庫變數將始終優先於組織/用戶變數。
|
||||
儲存庫變數將始終優先於組織/使用者變數。
|
||||
|
||||
Reference in New Issue
Block a user