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:
Lunny Xiao
2026-07-09 23:41:46 +00:00
parent c0f8a04185
commit 965c269495
652 changed files with 30864 additions and 30792 deletions

View File

@@ -6,111 +6,111 @@ sidebar_position: 20
# Act Runner
页面将详细介绍[Act Runner](https://gitea.com/gitea/act_runner)是Gitea Actions的Runner。
頁面將詳細介紹[Act Runner](https://gitea.com/gitea/act_runner)是Gitea Actions的Runner。
## 要求
在Docker容器中行Job因此您需要首先安裝Docker。
保Docker守進程正在行。
在Docker容器中行Job因此您需要首先安裝Docker。
保Docker守進程正在行。
其他Docker API容的OCI容器引擎也應該可以正常工作但尚未经過测试
其他Docker API容的OCI容器引擎也應該可以正常工作但尚未經過測試
但是,如果您定要直接在主机上运行Job不需要Docker。
但是,如果您定要直接在主機上運行Job不需要Docker。
## 安裝
有多安裝Act Runner的方法。
有多安裝Act Runner的方法。
### 下二進制文件
### 下二進制文件
您可以[發佈](https://gitea.com/gitea/act_runner/releases)下二進制文件。
然而,如果您想使用最新的夜间构建版本,可以[载页](https://dl.gitea.com/act_runner/)下
您可以[發佈](https://gitea.com/gitea/act_runner/releases)下二進制文件。
然而,如果您想使用最新的夜間構建版本,可以[載頁](https://dl.gitea.com/act_runner/)下
二進制文件,請保您已经下载了适用于您的平台的正版本。
您可以通過运行以下命令進行查:
二進制文件,請保您已經下載了適用於您的平台的正版本。
您可以透過運行以下命令進行查:
```bash
chmod +x act_runner
./act_runner --version
```
如果看到版本信息,则表示您已经下载了正的二進制文件。
如果看到版本資訊,則表示您已經下載了正的二進制文件。
### 使用 Docker
### 使用 Docker
您可以使用[docker hub](https://hub.docker.com/r/gitea/act_runner/tags)上的Docker像。
二進制文件似,您可以使用`nightly`標籤使用最新的夜间构建版本,而`latest`標籤是最新的定版本。
您可以使用[docker hub](https://hub.docker.com/r/gitea/act_runner/tags)上的Docker像。
二進制文件似,您可以使用`nightly`標籤使用最新的夜間構建版本,而`latest`標籤是最新的定版本。
```bash
docker pull docker.io/gitea/act_runner:latest # for the latest stable release
docker pull docker.io/gitea/act_runner:nightly # for the latest nightly build
```
## 配置
## 設定
配置通過配置文件進行。它是可選的,当没有指定配置文件时,将使用默认配置
設定通過設定文件進行。它是可選的,當沒有指定設定文件時,將使用預設設定
您可以通過运行以下命令生成配置文件:
您可以透過運行以下命令生成設定文件:
```bash
./act_runner generate-config
```
默认配置是安全的,可以直接使用。
預設設定是安全的,可以直接使用。
```bash
./act_runner generate-config > config.yaml
./act_runner --config config.yaml [command]
```
您亦可以如下使用 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 ...
```
您可能注意到上面的命令都是不完整的,因為現在還不是行Act Runner的候。
行Act Runner之前需要首先将其注册到您的Gitea例中。
您可能注意到上面的命令都是不完整的,因為現在還不是行Act Runner的候。
行Act Runner之前需要首先將其註冊到您的Gitea例中。
## 注册
## 註冊
行Act Runner之前需要進行注册因為Runner需要知道从哪里获取Job並且對於Gitea实例来说,识别Runner也很重要。
行Act Runner之前需要進行註冊因為Runner需要知道從哪裡獲取Job並且對於Gitea實例來說,識別Runner也很重要。
### Runner级别
### Runner級別
您可以在不同级别上注册Runner它可以是
您可以在不同級別上註冊Runner它可以是
- 实例级别Runner将為实例中的所有存儲库运行Job。
- 組織级别Runner為組織中的所有存儲库运行Job。
- 存儲库级别Runner為其所属的存儲库运行Job。
- 實例級別Runner將為實例中的所有儲存庫運行Job。
- 組織級別Runner為組織中的所有儲存庫運行Job。
- 儲存庫級別Runner為其所屬的儲存庫運行Job。
請注意,即使存儲库具有自己的存儲库级别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`
註冊令牌的格式是一個隨機字符串 `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
```
使用者也可以使用 `GITEA_RUNNER_REGISTRATION_TOKEN``GITEA_RUNNER_REGISTRATION_TOKEN_FILE` 环境变量以在 Gitea 启动时设置全局的注册令牌,例如:
使用者也可以使用 `GITEA_RUNNER_REGISTRATION_TOKEN``GITEA_RUNNER_REGISTRATION_TOKEN_FILE` 環境變量以在 Gitea 啟動時設定全域的註冊令牌,例如:
```
openssl rand -hex 24 > /some-dir/runner-token
@@ -118,48 +118,48 @@ export GITEA_RUNNER_REGISTRATION_TOKEN_FILE=/some-dir/runner-token
./gitea --config ...
```
来自环境变量的令牌在通過 Web 面或 API 重置(重新建立新令牌)前一直有效。
來自環境變量的令牌在通過 Web 面或 API 重置(重新建立新令牌)前一直有效。
令牌可用于注册多个 Runner直到使用 Web 面中的令牌重置链接将其撤並替為新令牌。
令牌可用於註冊多個 Runner直到使用 Web 面中的令牌重置鏈接將其撤並替為新令牌。
### 注册Runner
### 註冊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標籤可選。如果留空使用默认標籤。
- Gitea 例的 URL例如 `https://gitea.com/``http://192.168.8.8:3000/`
- 註冊令牌。
- Runner名稱可選。如果留空使用主名。
- Runner標籤可選。如果留空使用預設標籤。
您可能Runner標籤感到困惑后将对其進行解
您可能Runner標籤感到困惑後將對其進行解
如果您想以非交互方式注册Runner可以使用參數執行以下操作。
如果您想以非交互方式註冊Runner可以使用參數執行以下操作。
```bash
./act_runner register --no-interactive --instance <instance_url> --token <registration_token> --name <runner_name> --labels <runner_labels>
```
注册Runner,您可以在前目錄中找到一名為 `.runner` 的新文件。該文件存儲注册信息
請不要手动编辑該文件。
如果此文件失或损坏,可以直接除它並重新注册
註冊Runner,您可以在前目錄中找到一名為 `.runner` 的新文件。該文件儲存註冊資訊
請不要手動編輯該文件。
如果此文件失或損壞,可以直接除它並重新註冊
如果您想将注册信息存儲在其他位置,請在配置文件中指定,並不要忘指定 `--config`
如果您想將註冊資訊儲存在其他位置,請在設定文件中指定,並不要忘指定 `--config`
### 使用Docker注册Runner
### 使用Docker註冊Runner
如果您使用的是Docker像,注册行為略有不同。在这种情况下,注册和运行合為一步,因此您需要在行Act Runner指定注册信息
如果您使用的是Docker像,註冊行為略有不同。在這種情況下,註冊和運行合為一步,因此您需要在行Act Runner指定註冊資訊
```bash
docker run \
@@ -175,12 +175,12 @@ docker run \
-d gitea/act_runner:nightly
```
您可能注意到我们已将`/var/run/docker.sock`挂载到容器中。
是因為Act Runner在Docker容器中行Job因此它需要Docker守進程進行通信。
如前所述,如果要在主上直接行Job可以其移除。
需要明的是,这里的 "主" 实际上指的是当前运行 Act Runner的容器而不是主机机器本身。
您可能注意到我們已將`/var/run/docker.sock`掛載到容器中。
是因為Act Runner在Docker容器中行Job因此它需要Docker守進程進行通信。
如前所述,如果要在主上直接行Job可以其移除。
需要明的是,這裡的 "主" 實際上指的是當前運行 Act Runner的容器而不是主機機器本身。
### 使用 Docker compose 行 Runner
### 使用 Docker compose 行 Runner
您亦可使用如下的 `docker-compose.yml`:
@@ -201,31 +201,31 @@ services:
- /var/run/docker.sock:/var/run/docker.sock
```
### 您使用 Docker 镜像启动 Runner如何配置 Cache
### 您使用 Docker 鏡像啟動 Runner如何設定 Cache
如果你不打算在工作流中使用 `actions/cache`,你可以忽略本段。
如果您在使用 `actions/cache` 时没有進行外的配置,将会返回以下错误信息
如果您在使用 `actions/cache` 時沒有進行外的設定,將會返回以下錯誤資訊
> Failed to restore: getCacheEntry failed: connect ETIMEDOUT IP:PORT
这个错误的原因是 runner 容器和作容器位不同的网络中,因此作容器無法访问 runner 容器。
因此,配置 cache 作以保其正常行是非常重要的。請按照以下步操作:
這個錯誤的原因是 runner 容器和作容器位不同的網路中,因此作容器無法訪問 runner 容器。
因此,設定 cache 作以保其正常行是非常重要的。請按照以下步操作:
- 1.取 Runner 容器所在主的 LAN本地局域 IP 地址。
- 2.取一 Runner 容器所在主的空端口
- 3.在配置文件中如下配置
- 1.取 Runner 容器所在主的 LAN本地局域 IP 地址。
- 2.取一 Runner 容器所在主的空端口
- 3.在設定文件中如下設定
```yaml
cache:
enabled: true
dir: ""
# 使用步 1. 取的 LAN IP
# 使用步 1. 取的 LAN IP
host: "192.168.8.17"
# 使用步 2. 取的端口
# 使用步 2. 取的端口
port: 8088
```
- 4.启动容器, Cache 端口映射至主
- 4.啟動容器, Cache 端口映射至主
```bash
docker run \
@@ -236,25 +236,25 @@ docker run \
### 標籤
Runner的標籤用于确定Runner可以行哪些Job以及如何行它
Runner的標籤用於確定Runner可以行哪些Job以及如何行它
默认標籤為`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`的Job並且該Job在使用`node:16-bullseye`像的Docker容器中行。
讓我們`ubuntu-22.04:docker://node:16-bullseye` 為例。
它意味Runner可以運行帶`runs-on: ubuntu-22.04`的Job並且該Job在使用`node:16-bullseye`像的Docker容器中行。
如果默认镜像無法足您的需求,並且您有足的硬碟空可以使用更好、更大的像,您可以其更改為`ubuntu-22.04:docker://<您喜欢的镜像>`
您可以在[act ](https://github.com/nektos/act/blob/master/IMAGES.md)上找到更多有用的像。
如果預設鏡像無法滿足您的需求,並且您有足的硬碟空可以使用更好、更大的像,您可以其更改為`ubuntu-22.04:docker://<您喜歡的鏡像>`
您可以在[act ](https://github.com/nektos/act/blob/master/IMAGES.md)上找到更多有用的像。
如果您想直接在主机上运行Job您可以其更改為`ubuntu-22.04:host`或僅`ubuntu-22.04``:host`是可選的。
然而,我们建议您使用`linux_amd64:host``windows:host`的特殊名稱,以避免用。
如果您想直接在主機上運行Job您可以其更改為`ubuntu-22.04:host`或僅`ubuntu-22.04``:host`是可選的。
然而,我們建議您使用`linux_amd64:host``windows:host`的特殊名稱,以避免用。
Gitea 1.21 始,您可以過修改 runner 的配置文件中的 `container.labels` 更改標籤(如果没有配置文件,請考 [配置教程](#配置)過執行 `./act_runner daemon --config config.yaml` 命令重 runner 之后,这些新定的標籤就生效。
Gitea 1.21 始,您可以過修改 runner 的設定文件中的 `container.labels` 更改標籤(如果沒有設定文件,請考 [設定教學](#設定)過執行 `./act_runner daemon --config config.yaml` 命令重 runner 之後,這些新定的標籤就生效。
##
##
注册完Runner,您可以通過运行以下命令来运行它:
註冊完Runner,您可以透過運行以下命令來運行它:
```bash
./act_runner daemon
@@ -262,6 +262,6 @@ Runner的標籤用于确定Runner可以运行哪些Job以及如何运行它们
./act_runner daemon --config config.yaml
```
Runner将从Gitea实例获取Job並自动运行它
Runner將從Gitea實例獲取Job並自動運行它
Act Runner仍处于开发中,建定期查最新版本並進行升
Act Runner仍處於開發中,建定期查最新版本並進行升

View File

@@ -4,122 +4,122 @@ slug: "comparison"
sidebar_position: 15
---
# GitHub Actions的
# GitHub Actions的
管Gitea Actions旨在GitHub Actions容,但它们之间存在一些差
管Gitea Actions旨在GitHub Actions容,但它們之間存在一些差
## 外功能
## 外功能
### Action URL绝对路径
### Action URL絕對路徑
Gitea Actions支通過URL绝对路径定义actions意味您可以使用自任何Git存儲库的Actions。
Gitea Actions支通過URL絕對路徑定義actions意味您可以使用自任何Git儲存庫的Actions。
例如,`uses: https://github.com/actions/checkout@v4``uses: http://your_gitea.com/owner/repo@branch`
### 使用Go编写Actions
### 使用Go編寫Actions
Gitea Actions支使用Go编写Actions。
参阅[建立Go Actions](https://blog.gitea.com/creating-go-actions/)。
Gitea Actions支使用Go編寫Actions。
參閱[建立Go Actions](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`
是用一次行一Job。
参阅[使用並](https://docs.github.com/zh/actions/using-jobs/using-concurrency)。
是用一次行一Job。
參閱[使用並](https://docs.github.com/zh/actions/using-jobs/using-concurrency)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### `run-name`
是工作流生成的工作流行的名稱。
参阅[GitHub Actions 的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#run-name)。
是工作流生成的工作流行的名稱。
參閱[GitHub Actions 的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#run-name)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### `permissions`和`jobs.<job_id>.permissions`
参阅[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#permissions)。
參閱[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#permissions)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### `jobs.<job_id>.timeout-minutes`
参阅[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes)。
參閱[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idtimeout-minutes)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### `jobs.<job_id>.continue-on-error`
参阅[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idcontinue-on-error)。
參閱[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idcontinue-on-error)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### `jobs.<job_id>.environment`
参阅[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idenvironment)。
參閱[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idenvironment)。
Gitea Actions 目前不支此功能。
Gitea Actions 目前不支此功能。
### 复杂的`runs-on`
### 複雜的`runs-on`
参阅[GitHub Actions的工作流](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on)。
參閱[GitHub Actions的工作流](https://docs.github.com/zh/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]`
### `hashFiles`表
### `hashFiles`表
参阅[](https://docs.github.com/en/actions/learn-github-actions/expressions#hashfiles)。
參閱[](https://docs.github.com/en/actions/learn-github-actions/expressions#hashfiles)。
Gitea Actions目前不支此功能,如果使用它,结果将始终為空字符串。
Gitea Actions目前不支此功能,如果使用它,結果將始終為空字符串。
作為解方法,您可以使用[go-hashfiles](https://gitea.com/actions/go-hashfiles)。
作為解方法,您可以使用[go-hashfiles](https://gitea.com/actions/go-hashfiles)。
## 缺失的功能
### 问题匹配器
### 問題匹配器
问题匹配器是一掃描Actions出以查找指定正则表达式模式並在使用者面中突出示該信息的方法。
参阅[问题匹配器](https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md)。
問題匹配器是一掃描Actions出以查找指定正則表達式模式並在使用者面中突出示該資訊的方法。
參閱[問題匹配器](https://github.com/actions/toolkit/blob/main/docs/problem-matchers.md)。
Gitea Actions目前不支此功能。
Gitea Actions目前不支此功能。
### 為错误建立注释
### 為錯誤建立註釋
参阅[错误建立注释](https://docs.github.com/zh/actions/using-workflows/workflow-commands-for-github-actions#example-creating-an-annotation-for-an-error)。
參閱[錯誤建立註釋](https://docs.github.com/zh/actions/using-workflows/workflow-commands-for-github-actions#example-creating-an-annotation-for-an-error)。
Gitea Actions目前不支此功能。
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功能
### 预处理和后处理步
### 預處理和後處理步
预处理和后处理步在Job日使用者面中有自己的使用者面。
預處理和後處理步在Job日使用者面中有自己的使用者面。
### 服务步骤
### 服務步驟
务步骤在Job日使用者面中有自己的使用者面。
務步驟在Job日使用者面中有自己的使用者面。
## 不一的行為
## 不一的行為
### 下Actions
### 下Actions
`[actions].DEFAULT_ACTIONS_URL` 保持默认值為 `github` Gitea将会从 https://github.com 下载相对路径的actions。比如
如果你使用 `uses: actions/checkout@v4`Gitea将会从 https://github.com/actions/checkout.git 下载这个 actions 项目
如果你想要另外一 Git服务下载actions你只需要使用绝对URL `uses: https://gitea.com/actions/checkout@v4` 来下载
`[actions].DEFAULT_ACTIONS_URL` 保持預設值為 `github` Gitea將會從 https://github.com 下載相對路徑的actions。比如
如果你使用 `uses: actions/checkout@v4`Gitea將會從 https://github.com/actions/checkout.git 下載這個 actions 專案
如果你想要另外一 Git服務下載actions你只需要使用絕對URL `uses: https://gitea.com/actions/checkout@v4` 來下載
如果你的 Gitea 例是部署在一个互联网限制的网络中,也可以使用绝对地址来下载 actions。你也可以将配置项修改為 `[actions].DEFAULT_ACTIONS_URL = self`这样所有的相对路径的actions引用不再会从 github.com 去下,而会从这个 Gitea 例自己的存放庫中去下。例如: `uses: actions/checkout@v4` 将会从 `[server].ROOT_URL`/actions/checkout.git 这个地址去下 actions。
如果你的 Gitea 例是部署在一個互聯網限制的網路中,也可以使用絕對地址來下載 actions。你也可以將設定項修改為 `[actions].DEFAULT_ACTIONS_URL = self`這樣所有的相對路徑的actions引用不再會從 github.com 去下,而會從這個 Gitea 例自己的存放庫中去下。例如: `uses: actions/checkout@v4` 將會從 `[server].ROOT_URL`/actions/checkout.git 這個地址去下 actions。
设置`[actions].DEFAULT_ACTIONS_URL`進行配置。請参阅[配置备忘單](../../administration/config-cheat-sheet.md#actions-actions)。
設定`[actions].DEFAULT_ACTIONS_URL`進行設定。請參閱[設定備忘單](../../administration/config-cheat-sheet.md#actions-actions)。
### 上下文可用性
查上下文可用性因此您可以在更多地方使用env上下文。
参阅[上下文可用性](https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability)。
查上下文可用性因此您可以在更多地方使用env上下文。
參閱[上下文可用性](https://docs.github.com/en/actions/learn-github-actions/contexts#context-availability)。

View File

@@ -4,121 +4,121 @@ slug: "design"
sidebar_position: 40
---
# Gitea Actions设计
# Gitea Actions設計
Gitea Actions由多个组件组成。本文檔将对它们進行逐描述。
Gitea Actions由多個元件組成。本文件將對它們進行逐描述。
## Act
[nektos/act](https://github.com/nektos/act) 项目是一个优秀的工具,允你在本地行GitHub Actions。
受到了它的启发並思考它是否可能為Gitea行Actions。
[nektos/act](https://github.com/nektos/act) 專案是一個優秀的工具,允你在本地行GitHub Actions。
受到了它的啟發並思考它是否可能為Gitea行Actions。
然而,管[nektos/act](https://github.com/nektos/act)被设计為一命令行工具,但我们实际上需要的是一个专為Gitea修改的Go
因此,我在[gitea/act](https://gitea.com/gitea/act)基上進行了分叉。
然而,管[nektos/act](https://github.com/nektos/act)被設計為一命令行工具,但我們實際上需要的是一個專為Gitea修改的Go
因此,我在[gitea/act](https://gitea.com/gitea/act)基上進行了分叉。
是一个软分叉,定期跟進上游。
然添加了一些自定义提交,但我们会尽力避免原始代码進行太多更改。
是一個軟分叉,定期跟進上游。
然添加了一些自提交,但我們會盡力避免原始程式碼進行太多更改。
分叉的 act 只是Gitea特定用途的接或配器。
還添加了一些外的提交,例如:
分叉的 act 只是Gitea特定用途的接或配器。
還添加了一些外的提交,例如:
- 執行日志输出到日志记录器钩子,以便报告给Gitea
- 禁用 GraphQL URL因為Gitea不支
-Job启动一个新的容器,而不是重使用,以保隔性。
- 執行日誌輸出到日誌記錄器鉤子,以便報告給Gitea
- 禁用 GraphQL URL因為Gitea不支
-Job啟動一個新的容器,而不是重使用,以保隔性。
些修改有理由合到上游。
如果使用者只想在本地行可信的Actions们是没有意的。
些修改有理由合到上游。
如果使用者只想在本地行可信的Actions們是沒有意的。
然而,将来可能出現重,例如两个项目都需要的必要错误修复或新功能。
些情下,我们将向上存放庫贡献变更。
然而,將來可能出現重,例如兩個專案都需要的必要錯誤修復或新功能。
些情下,我們將向上存放庫貢獻變更。
## act runner
Gitea的Runner被稱為act runner因為它基act。
Gitea的Runner被稱為act runner因為它基act。
其他CIRunner一,我们将其设计為Gitea的外部部分意味它應該在Gitea不同的服器上行。
其他CIRunner一,我們將其設計為Gitea的外部部分意味它應該在Gitea不同的服器上行。
為了保Runner接到正的Gitea例,我需要使用令牌注册它。
此外Runner通過明自己的標籤向Gitea告它可以行的Job類型。
為了保Runner接到正的Gitea例,我需要使用令牌註冊它。
此外Runner通過明自己的標籤向Gitea告它可以行的Job類型。
之前,我提到工作流文件中的 `runs-on: ubuntu-latest` 表示該Job在具有`ubuntu-latest`標籤的Runner上行。
但是Runner如何知道要`ubuntu-latest`?答案在于将標籤映射到境。
就是為什么在注册過程中添加自定义標籤,需要入一些复杂内容,比如`my_custom_label:docker://centos:7`
意味Runner可以接受需要在`my_custom_label`行的Job並通過使用`centos:7`像的Docker容器来运行它。
之前,我提到工作流文件中的 `runs-on: ubuntu-latest` 表示該Job在具有`ubuntu-latest`標籤的Runner上行。
但是Runner如何知道要`ubuntu-latest`?答案在於將標籤映射到境。
就是為什麼在註冊過程中添加自標籤,需要入一些複雜內容,比如`my_custom_label:docker://centos:7`
意味Runner可以接受需要在`my_custom_label`行的Job並通過使用`centos:7`像的Docker容器來運行它。
然而Docker不是唯一的選
act 也支直接在主机上运行Job。
是通過像`linux_arm:host`这样的標籤現的。
这个標籤表示Runner可以接受需要在`linux_arm`行的Job並直接在主机上运行它
然而Docker不是唯一的選
act 也支直接在主機上運行Job。
是通過像`linux_arm:host`這樣的標籤現的。
這個標籤表示Runner可以接受需要在`linux_arm`行的Job並直接在主機上運行它
標籤的设计遵循格式`label[:schema[:args]]`
如果省略了schema则默认`host`
標籤的設計遵循格式`label[:schema[:args]]`
如果省略了schema則預設`host`
因此,
- `my_custom_label:docker://node:18`:使用`node:18 Docker`镜像运行带`my_custom_label`標籤的Job。
- `my_custom_label:host`:在主上直接运行带`my_custom_label`標籤的Job。
- `my_custom_label`:等同`my_custom_label:host`
- `my_custom_label:vm:ubuntu-latest`:(僅為例,未現)使用`ubuntu-latest` ISO的虚拟机运行带`my_custom_label`標籤的Job。
- `my_custom_label:docker://node:18`:使用`node:18 Docker`鏡像運行帶`my_custom_label`標籤的Job。
- `my_custom_label:host`:在主上直接運行帶`my_custom_label`標籤的Job。
- `my_custom_label`:等同`my_custom_label:host`
- `my_custom_label:vm:ubuntu-latest`:(僅為例,未現)使用`ubuntu-latest` ISO的虛擬機運行帶`my_custom_label`標籤的Job。
## 通信协议
## 通信協議
act runner是Gitea的立部分,我需要一种协议让RunnerGitea例進行通信。
然而,我们不认為让Gitea监听一个新端口是好主意。
相反,我希望重用HTTP端口意味着我们需要一个与HTTP容的协议
因此,我们選择使用基HTTP的gRPC。
act runner是Gitea的立部分,我需要一種協議讓RunnerGitea例進行通信。
然而,我們不認為讓Gitea監聽一個新端口是好主意。
相反,我希望重用HTTP端口意味著我們需要一個與HTTP容的協議
因此,我們選擇使用基HTTP的gRPC。
使用[actions-proto-def](https://gitea.com/gitea/actions-proto-def) 和 [actions-proto-go](https://gitea.com/gitea/actions-proto-go) 進行接。
gRPC 的更多信息,請访问[其官方](https://grpc.io/)。
使用[actions-proto-def](https://gitea.com/gitea/actions-proto-def) 和 [actions-proto-go](https://gitea.com/gitea/actions-proto-go) 進行接。
gRPC 的更多資訊,請前往[其官方](https://grpc.io/)。
## 网络架构
## 網路架構
让我们来看一下整體的网络架构
这将帮助您解一些问题,並解為什使用回环地址注册Runner是不好的主意。
讓我們來看一下整體的網路架構
這將幫助您解一些問題,並解為什使用迴環地址註冊Runner是不好的主意。
![network](/images/usage/actions/network.png)
片中标记了四个网络连接,並且箭的方向表示建立接的方向。
片中標記了四個網路連接,並且箭的方向表示建立接的方向。
### 接 1act runner到Gitea
### 接 1act runner到Gitea
act runner 必須能够连接到Gitea以接收任务並发送執行果回
act runner 必須能夠連接到Gitea以接收任務並發送執行果回
### 接 2Job容器到Gitea
### 接 2Job容器到Gitea
即使Job容器位同一台机器上,它们的网络命名空间与Runner不同。
举个例子,如果工作流中包含 `actions/checkout@v4`Job容器需要接到Gitea来获取代码
获取代码並不总是运行某些Job所必需的但在大多数情况下是必需的。
即使Job容器位同一臺機器上,它們的網路命名空間與Runner不同。
舉個例子,如果工作流中包含 `actions/checkout@v4`Job容器需要接到Gitea來獲取程式碼
獲取程式碼並不總是運行某些Job所必需的但在大多數情況下是必需的。
如果您使用回环地址注册RunnerRunnerGitea在同一台机器上Runner可以接到Gitea。
然而如果Job容器尝试从本地主机获取代码,它将失败因為Gitea不在同一容器中。
如果您使用迴環地址註冊RunnerRunnerGitea在同一臺機器上Runner可以接到Gitea。
然而如果Job容器嘗試從本地主機獲取程式碼,它將失敗因為Gitea不在同一容器中。
### 接 3act runner到互联网
### 接 3act runner到互聯網
您使用`actions/checkout@v4` 的一些Actionsact runner下的是而不是Job容器。
默认情况下,它[github.com](http://github.com/)下,因此需要访问互联网。如果您设置的是 self
么默认将从您的前Gitea例下,那此步不需要接到互联网
它還默认从Docker Hub下一些Docker像,也需要互联网访问
您使用`actions/checkout@v4` 的一些Actionsact runner下的是而不是Job容器。
預設情況下,它[github.com](http://github.com/)下,因此需要訪問互聯網。如果您設定的是 self
麼預設將從您的前Gitea例下,那此步不需要接到互聯網
它還預設從Docker Hub下一些Docker像,也需要互聯網訪問
然而,互联网访问並不是绝对必需的。
您可以配置您的Gitea实例从您的内部网络设施中取 Actions 或像。
然而,互聯網訪問並不是絕對必需的。
您可以設定您的Gitea實例從您的內部網路設施中取 Actions 或像。
实际您的Gitea例可以同时充当 Actions 市场和镜像註冊表。
您可以GitHub上的Actions存放庫像到您的Gitea例,並其用作普通Actions。
而 [Gitea 容器註冊表](usage/packages/container.md) 可用作Docker像註冊表。
實際您的Gitea例可以同時充當 Actions 市場和鏡像註冊表。
您可以GitHub上的Actions存放庫像到您的Gitea例,並其用作普通Actions。
而 [Gitea 容器註冊表](usage/packages/container.md) 可用作Docker像註冊表。
### 接 4Job容器到互联网
### 接 4Job容器到互聯網
使用`actions/setup-go@v5`的Actions,可能需要从互联网下载资源,以设置Job容器中的Go语言环境。
因此,成功完成些Actions需要访问互联网
使用`actions/setup-go@v5`的Actions,可能需要從互聯網下載資源,以設定Job容器中的Go語言環境。
因此,成功完成些Actions需要訪問互聯網
然而,也是可選的。
您可以使用自定义的Actions避免依赖互联网访问,或者可以使用已安裝所有依赖项的打包的Docker镜像来运行Job。
然而,也是可選的。
您可以使用自的Actions避免依賴互聯網訪問,或者可以使用已安裝所有依賴項的打包的Docker鏡像來運行Job。
## 总结
## 總結
使用Gitea Actions只需要保Runner能够连接到Gitea例。
联网访问是可選的,但如果有互联网访问,将需要外的工作。
换句话说:当Runner能自行查询互联网时,它的工作效果最好,但您不需要其暴露给互联网(無是單向還是向)。
使用Gitea Actions只需要保Runner能夠連接到Gitea例。
聯網訪問是可選的,但如果有互聯網訪問,將需要外的工作。
換句話說:當Runner能自行查詢互聯網時,它的工作效果最好,但您不需要其暴露給互聯網(無是單向還是向)。
如果您在使用Gitea Actions遇到任何网络问题,希望上面的片能够帮助您進行故障排除。
如果您在使用Gitea Actions遇到任何網路問題,希望上面的片能夠幫助您進行故障排除。

View File

@@ -4,84 +4,84 @@ slug: "faq"
sidebar_position: 100
---
# Gitea Actions常见问题解答
# Gitea Actions常見問題解答
面包含一些关于Gitea Actions的常见问题和答案。
面包含一些關於Gitea Actions的常見問題和答案。
## 是否可以在我的例中默认禁用新存放庫的Actions
## 是否可以在我的例中預設禁用新存放庫的Actions
是的,您為实例启用Actions,您可以選择默认启用actions單元以适用于所有新存放庫。
是的,您為實例啟用Actions,您可以選擇預設啟用actions單元以適用於所有新存放庫。
```ini
[repository]
; 去掉 repo.actions 将不会為新存放庫自动启用actions
; 去掉 repo.actions 將不會為新存放庫自動啟用actions
DEFAULT_REPO_UNITS = ...,repo.actions
```
## 在工作流文件中應該使用`${{ github.xyz }}`還是`${{ gitea.xyz }}`
您可以使用`github.xyz`Gitea正常工作。
如前所述Gitea Actions的设计是与GitHub Actions容的。
然而,我们建议在工作流文件中使用`gitea.xyz`,以防止在工作流文件中出現不同類型的密因為您在Gitea上使用此工作流而不是GitHub
不過,完全是可選的,因為目前这两个選项的效果是相同的。
您可以使用`github.xyz`Gitea正常工作。
如前所述Gitea Actions的設計是與GitHub Actions容的。
然而,我們建議在工作流文件中使用`gitea.xyz`,以防止在工作流文件中出現不同類型的密因為您在Gitea上使用此工作流而不是GitHub
不過,完全是可選的,因為目前這兩個選項的效果是相同的。
## 使用`actions/checkout@v4`等ActionsJob容器会从何处下载脚本?
## 使用`actions/checkout@v4`等ActionsJob容器會從何處下載腳本?
GitHub 上有成千上万个 [Actions ](https://github.com/marketplace?type=actions)。
当您编写 `uses: actions/checkout@v4` ,它默认会从 [github.com/actions/checkout](https://github.com/actions/checkout) 下载脚本。
那如果您想使用一些管在其它平台上的本呢,比如在 gitea.com 上的?
GitHub 上有成千上萬個 [Actions ](https://github.com/marketplace?type=actions)。
當您編寫 `uses: actions/checkout@v4` ,它預設會從 [github.com/actions/checkout](https://github.com/actions/checkout) 下載腳本。
那如果您想使用一些管在其它平台上的本呢,比如在 gitea.com 上的?
好消息是,您可以指定要任何位置使用Actions的URL前
是Gitea Actions中的额外语法。
好消息是,您可以指定要任何位置使用Actions的URL前
是Gitea Actions中的額外語法。
例如:
- `uses: https://gitea.com/xxx/xxx@xxx`
- `uses: https://github.com/xxx/xxx@xxx`
- `uses: http://your_gitea_instance.com/xxx@xxx`
注意,`https://``http://`是必需的!
注意,`https://``http://`是必需的!
这是与 GitHub Actions 的一个区别GitHub Actions 只允使用管在 GitHub 上的 actions 本。
但使用者理應拥有权利去灵活决定如何行 Actions。
這是與 GitHub Actions 的一個區別GitHub Actions 只允使用管在 GitHub 上的 actions 本。
但使用者理應擁有權利去靈活決定如何行 Actions。
另外,如果您希望您的 Runner 默认从您自己的 Gitea 例下 Actions可以通過设置 `[actions].DEFAULT_ACTIONS_URL`進行配置
参见[配置速查表](../../administration/config-cheat-sheet.md#actions-actions)。
另外,如果您希望您的 Runner 預設從您自己的 Gitea 例下 Actions可以透過設定 `[actions].DEFAULT_ACTIONS_URL`進行設定
參見[設定速查表](../../administration/config-cheat-sheet.md#actions-actions)。
## 如何限制Runner的限?
## 如何限制Runner的限?
Runner僅具有接到您的Gitea例的限。
任何Runner接收到要行的Job,它将临时获得与Job关联的存放庫的有限限。
如果您想為Runner提供更多限,允许它访问更多私有存放庫或外部系,您可以向其传递[](usage/actions/secrets.md)。
Runner僅具有接到您的Gitea例的限。
任何Runner接收到要行的Job,它將臨時獲得與Job關聯的存放庫的有限限。
如果您想為Runner提供更多限,允許它訪問更多私有存放庫或外部系,您可以向其傳遞[](usage/actions/secrets.md)。
對於 Actions 的粒度限控制是一项复杂的工作。
在未,我们将添加更多選以使Gitea更可配置,例如允许对存放庫進行更多写访问或对同一組織中的所有存放庫進行读访问
對於 Actions 的粒度限控制是一項複雜的工作。
在未,我們將添加更多選以使Gitea更可設定,例如允許對存放庫進行更多寫訪問或對同一組織中的所有存放庫進行讀訪問
## 如何避免被黑客攻擊?
两种可能的攻擊類型未知的Runner取您的存放庫中的代码或密,或恶意脚本控制您的Runner。
兩種可能的攻擊類型未知的Runner取您的存放庫中的程式碼或密,或惡意腳本控制您的Runner。
避免前者意味不允您不认识的人為您的存放庫、組織或实例注册Runner。
避免前者意味不允您不認識的人為您的存放庫、組織或實例註冊Runner。
者要复杂一些。
如果您為公司使用私有的Gitea例,您可能不需要心安全问题,因為您信任您的同事,並且可以追究他们的责任。
者要複雜一些。
如果您為公司使用私有的Gitea例,您可能不需要心安全問題,因為您信任您的同事,並且可以追究他們的責任。
對於公共例,情略有不同。
以下是我在 [gitea.com](http://gitea.com/)上的做法:
對於公共例,情略有不同。
以下是我在 [gitea.com](http://gitea.com/)上的做法:
-僅為 "gitea" 組織注册Runner因此我的Runner不執行自其他存放庫的Job。
-的Runner始在隔容器中行Job。然可以直接在主上進行这样的操作,但出安全考,我们選择不这样做。
- 對於 fork 的拉取請求,需要得批准才能行Actions。参见[#22803](https://github.com/go-gitea/gitea/pull/22803)。
- 如果有人在[gitea.com](http://gitea.com/)為其存放庫或組織注册自己的Runner们不会反对,只是不在我的組織中使用它。然而,他應該注意保該Runner不被他们不认识的其他使用者使用。
-僅為 "gitea" 組織註冊Runner因此我的Runner不執行自其他存放庫的Job。
-的Runner始在隔容器中行Job。然可以直接在主上進行這樣的操作,但出安全考,我們選擇不這樣做。
- 對於 fork 的拉取請求,需要得批准才能行Actions。參見[#22803](https://github.com/go-gitea/gitea/pull/22803)。
- 如果有人在[gitea.com](http://gitea.com/)為其存放庫或組織註冊自己的Runner們不會反對,只是不在我的組織中使用它。然而,他應該注意保該Runner不被他們不認識的其他使用者使用。
## act runner支哪些操作系
## act runner支哪些操作系
它在Linux、macOS和Windows上行良好。
然理上支其他操作系,但需要進一步测试
它在Linux、macOS和Windows上行良好。
然理上支其他操作系,但需要進一步測試
需要注意的一是,如果選直接在主机上运行Job而不是在Job容器中行,操作系统之间的环境差可能会导致意外的失
需要注意的一是,如果選直接在主機上運行Job而不是在Job容器中行,操作系統之間的環境差可能會導致意外的失
例如,在大多数情况Windows上有可用的bash而act尝试默认使用bash运行脚本。
因此,您需要在工作流文件中将默认shell指定為`powershell`考[defaults.run](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#defaultsrun)。
例如,在大多數情況Windows上有可用的bash而act嘗試預設使用bash運行腳本。
因此,您需要在工作流文件中將預設shell指定為`powershell`考[defaults.run](https://docs.github.com/zh/actions/using-workflows/workflow-syntax-for-github-actions#defaultsrun)。
```yaml
defaults:
@@ -89,72 +89,72 @@ 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 系,還是一个自动化工具。
[@lunny](https://gitea.com/lunny)在現Actions的[問題](https://github.com/go-gitea/gitea/issues/13539)中已經解釋過這個問題
此外Actions不僅是一CI/CD 系,還是一個自動化工具。
源世界中,已经有许多[上的Actions](https://github.com/marketplace?type=actions)現了。
重用它是令人兴奋的。
源世界中,已經有許多[上的Actions](https://github.com/marketplace?type=actions)現了。
重用它是令人興奮的。
## 如果它在多標籤上行,例如 `runs-on: [label_a, label_b]`会发生什
## 如果它在多標籤上行,例如 `runs-on: [label_a, label_b]`會發生什
是有效的法。
它意味它應該在具有`label_a` **和** `label_b`標籤的Runner上行,考[GitHub Actions的工作流](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on)。
不幸的是act runner 並不支持这种方式。
如上所述,我们将標籤映射到境:
是有效的法。
它意味它應該在具有`label_a` **和** `label_b`標籤的Runner上行,考[GitHub Actions的工作流](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on)。
不幸的是act runner 並不支援這種方式。
如上所述,我們將標籤映射到境:
- `ubuntu``ubuntu:22.04`
- `centos``centos:8`
但我需要標籤映射到境,例如:
但我需要標籤映射到境,例如:
- `[ubuntu]``ubuntu:22.04`
- `[with-gpu]``linux:with-gpu`
- `[ubuntu, with-gpu]``ubuntu:22.04_with-gpu`
還需要重新设计任务分配Runner的方式。
還需要重新設計任務分配Runner的方式。
具有`ubuntu``centos``with-gpu`的Runner並不一定表示它可以接受`[centos, with-gpu]`的Job。
因此Runner應該通知Gitea例它只能接受具有 `[ubuntu]``[centos]``[with-gpu]``[ubuntu, with-gpu]`的Job。
不是一个技术问题,只是在早期设计中被忽了。
参见[runtime.go#L65](https://gitea.com/gitea/act_runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L65)。
因此Runner應該通知Gitea例它只能接受具有 `[ubuntu]``[centos]``[with-gpu]``[ubuntu, with-gpu]`的Job。
不是一個技術問題,只是在早期設計中被忽了。
參見[runtime.go#L65](https://gitea.com/gitea/act_runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L65)。
目前act runner尝试匹配標籤中的每一,並使用找到的第一匹配
目前act runner嘗試匹配標籤中的每一,並使用找到的第一匹配
## 代理標籤和自定义標籤對於Runner有什么区别
## 代理標籤和自標籤對於Runner有什麼區別
![labels](/images/usage/actions/labels.png)
代理標籤是由Runner在注册過程中向Gitea实例报告的。
而自定义標籤是由Gitea的管理或組織或存放庫的所有者手添加的(取决于Runner所属的级别)。
代理標籤是由Runner在註冊過程中向Gitea實例報告的。
而自標籤是由Gitea的管理或組織或存放庫的所有者手添加的(取決於Runner所屬的級別)。
然而,目前方面的设计還有待改進,因為它目前存在一些不完善之
您可以向已注册的Runner添加自定义標籤,比如 `centos`意味該Runner接收具有`runs-on: centos`的Job。
然而Runner可能不知道要使用哪个环境来執行該標籤,致它使用默认镜像或导致逻辑死胡同
这个默认值可能使用者的期望不符。
参见[runtime.go#L71](https://gitea.com/gitea/act_runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L71)。
然而,目前方面的設計還有待改進,因為它目前存在一些不完善之
您可以向已註冊的Runner添加自標籤,比如 `centos`意味該Runner接收具有`runs-on: centos`的Job。
然而Runner可能不知道要使用哪個環境來執行該標籤,致它使用預設鏡像或導致邏輯死衚衕
這個預設值可能使用者的期望不符。
參見[runtime.go#L71](https://gitea.com/gitea/act_runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L71)。
此同如果您想更改Runner的標籤们建议您重新注册Runner。
此同如果您想更改Runner的標籤們建議您重新註冊Runner。
## Gitea Actions runner有更多的实現吗
## Gitea Actions runner有更多的實現嗎
然我希望提供更多的選,但由于我们有限的人力act runner是唯一受支的官方Runner。
然而,無您如何Gitea 和act runner都是完全源的,所以任何人都可以建立一新的/更好的現。
们支持您的選,無您如何定。
如果您選分支act runner建立自己的版本,請在您為您的更改其他人也有助的情况下贡献这些更改。
然我希望提供更多的選,但由於我們有限的人力act runner是唯一受支的官方Runner。
然而,無您如何Gitea 和act runner都是完全源的,所以任何人都可以建立一新的/更好的現。
們支援您的選,無您如何定。
如果您選分支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)。
| 触发事件 | 活類型 |
| 觸發事件 | 活類型 |
|-----------------------------|--------------------------------------------------------------------------------------------------------------------------|
| create | 不用 |
| delete | 不用 |
| fork | 不用 |
| gollum | 不用 |
| push | 不用 |
| create | 不用 |
| delete | 不用 |
| fork | 不用 |
| gollum | 不用 |
| push | 不用 |
| issues | `opened`, `edited`, `closed`, `reopened`, `assigned`, `unassigned`, `milestoned`, `demilestoned`, `labeled`, `unlabeled` |
| issue_comment | `created`, `edited`, `deleted` |
| pull_request | `opened`, `edited`, `closed`, `reopened`, `assigned`, `unassigned`, `synchronize`, `labeled`, `unlabeled` |
@@ -163,5 +163,5 @@ defaults:
| release | `published`, `edited` |
| registry_package | `published` |
> 對於 `pull_request` 事件,在 [GitHub Actions](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request) 中 `ref` 是 `refs/pull/:prNumber/merge`,它指向这个拉取請求合提交的一个预览。但是 Gitea 没有这种 reference。
> 因此Gitea Actions 中 `ref` 是 `refs/pull/:prNumber/head`,它指向这个拉取請求的分支而不是合提交的预览
> 對於 `pull_request` 事件,在 [GitHub Actions](https://docs.github.com/en/actions/using-workflows/events-that-trigger-workflows#pull_request) 中 `ref` 是 `refs/pull/:prNumber/merge`,它指向這個拉取請求合提交的一個預覽。但是 Gitea 沒有這種 reference。
> 因此Gitea Actions 中 `ref` 是 `refs/pull/:prNumber/head`,它指向這個拉取請求的分支而不是合提交的預覽

View File

@@ -6,37 +6,37 @@ sidebar_position: 1
# Overview
Gitea **1.19**版本Gitea Actions成為了置的CI/CD解方案。
Gitea **1.19**版本Gitea Actions成為了置的CI/CD解方案。
## 名稱
Gitea Actions[GitHub Actions](https://github.com/features/actions)相似且容,它的名稱也受到了它的启发
為了避免混淆,在这里我们明确了拼方式:
Gitea Actions[GitHub Actions](https://github.com/features/actions)相似且容,它的名稱也受到了它的啟發
為了避免混淆,在這裡我們明確了拼方式:
- "Gitea Actions"两个單詞都大写且带有"s"是Gitea功能的名稱。
- "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"。
## Runner
和其他CI/CD解方案一Gitea不自己行Job而是Job委托给Runner。
Gitea Actions的Runner被稱為[act runner](https://gitea.com/gitea/act_runner),它是一个独立的程也是用Go语言编写的。
它是基[nektos/act](http://github.com/nektos/act)的一[分支](https://gitea.com/gitea/act) 。
和其他CI/CD解方案一Gitea不自己行Job而是Job委託給Runner。
Gitea Actions的Runner被稱為[act runner](https://gitea.com/gitea/act_runner),它是一個獨立的程也是用Go語言編寫的。
它是基[nektos/act](http://github.com/nektos/act)的一[分支](https://gitea.com/gitea/act) 。
Runner是立部署的,可能存在在的安全问题
為了避免这些问题,請遵循两个简單的規則:
Runner是立部署的,可能存在在的安全問題
為了避免這些問題,請遵循兩個簡單的規則:
- 不要為你的存放庫、組織或例使用你不信任的Runner。
- 不要為你不信任的存放庫、組織或例提供Runner。
- 不要為你的存放庫、組織或例使用你不信任的Runner。
- 不要為你不信任的存放庫、組織或例提供Runner。
對於部使用的Gitea例,比如企业或个人使用的例,这两个規則不是问题,它自然而然就是如此。
然而對於公共的Gitea例,比如[gitea.com](https://gitea.com)在添加或使用Runner时應当牢记这两个規則。
對於部使用的Gitea例,比如企業或個人使用的例,這兩個規則不是問題,它自然而然就是如此。
然而對於公共的Gitea例,比如[gitea.com](https://gitea.com)在添加或使用Runner時應當牢記這兩個規則。
## 状态
## 狀態
Gitea Actions仍然在开发中,因此可能存在一些错误和缺失的功能。
並且在定版本v1.20或更高版本)之前可能進行一些重大的更改。
Gitea Actions仍然在開發中,因此可能存在一些錯誤和缺失的功能。
並且在定版本v1.20或更高版本)之前可能進行一些重大的更改。
如果情况发生变化,我们将在此進行更新。
因此,請在其他地方找到過文章时参考此处的内容。
如果情況發生變化,我們將在此進行更新。
因此,請在其他地方找到過文章時參考此處的內容。

View File

@@ -4,91 +4,91 @@ slug: "quickstart"
sidebar_position: 10
---
# 快速入
# 快速入
页面将指导您使用Gitea Actions的過程。
頁面將指導您使用Gitea Actions的過程。
## 设置Gitea
## 設定Gitea
首先,您需要一Gitea例。
您可以按照[](installation/from-package.md) 来设置一个新实例或升現有例。
您如何安裝或行Gitea只要版本是1.19.0或更高即可。
首先,您需要一Gitea例。
您可以按照[](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#actions-actions)。
### 设置Runner
### 設定Runner
Gitea Actions需要[act runner](https://gitea.com/gitea/act_runner) 来运行Job。
為了避免消耗過多源並影響Gitea例,建您在Gitea例分开的机器上启动Runner。
Gitea Actions需要[act runner](https://gitea.com/gitea/act_runner) 來運行Job。
為了避免消耗過多源並影響Gitea例,建您在Gitea例分開的機器上啟動Runner。
您可以使用[预构建的二進制文件](http://dl.gitea.com/act_runner)或[容器](https://hub.docker.com/r/gitea/act_runner/tags)来设置Runner。
您可以使用[預構建的二進制文件](http://dl.gitea.com/act_runner)或[容器](https://hub.docker.com/r/gitea/act_runner/tags)來設定Runner。
在進一步操作之前,建您先使用预构建的二進制文件以命令行方式行它,以保它您的环境兼容,尤其是如果您在本地主机上运行Runner。
如果出現问题,这样调试起来会更容易。
在進一步操作之前,建您先使用預構建的二進制文件以命令行方式行它,以保它您的環境相容,尤其是如果您在本地主機上運行Runner。
如果出現問題,這樣調試起來會更容易。
該Runner可以在隔的Docker容器中行Job因此您需要保已安裝Docker並且Docker守進程正在行。
虽然这不是格必需的因為Runner也可以直接在主机上运行Job这取决于您的配置方式。
然而,建使用Docker行Job因為它更安全且更易管理。
該Runner可以在隔的Docker容器中行Job因此您需要保已安裝Docker並且Docker守進程正在行。
雖然這不是格必需的因為Runner也可以直接在主機上運行Job這取決於您的設定方式。
然而,建使用Docker行Job因為它更安全且更易管理。
行Runner之前您需要使用以下命令将其注册到Gitea例中:
行Runner之前您需要使用以下命令將其註冊到Gitea例中:
```bash
./act_runner register --no-interactive --instance <instance> --token <token>
```
需要两个必需的參數:`instance``token`
需要兩個必需的參數:`instance``token`
`instance`是您的Gitea例的地址,如`http://192.168.8.8:3000``https://gitea.com`
Runner和Job容器由Runner启动以執行Job将连接到此地址。
意味它可能与用于Web访问`ROOT_URL`不同。
使用回环地址(例如 `127.0.0.1``localhost`)是一不好的選
如果不定使用哪地址,通常選局域地址即可。
`instance`是您的Gitea例的地址,如`http://192.168.8.8:3000``https://gitea.com`
Runner和Job容器由Runner啟動以執行Job將連接到此地址。
意味它可能與用於Web訪問`ROOT_URL`不同。
使用迴環地址(例如 `127.0.0.1``localhost`)是一不好的選
如果不定使用哪地址,通常選局域地址即可。
`token`身份驗證和标识,例如 `P2U1U0oB4XaRCi8azcngmPCLbRpUGapalhmddh23`
它只能使用一次,並且不能用于注册多个Runner。
您可以以下位置取不同级别`token`,而建立出相應级别`runner`
`token`身份驗證和標識,例如 `P2U1U0oB4XaRCi8azcngmPCLbRpUGapalhmddh23`
它只能使用一次,並且不能用於註冊多個Runner。
您可以以下位置取不同級別`token`,而建立出相應級別`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`
![register runner](/images/usage/actions/register-runner.png)
注册后,当前目錄中出現一名為 `.runner` 的新文件,該文件存儲了注册信息
請不要手动编辑該文件。
如果該文件失或损坏,只需除它然重新注册即可。
註冊後,當前目錄中出現一名為 `.runner` 的新文件,該文件儲存了註冊資訊
請不要手動編輯該文件。
如果該文件失或損壞,只需除它然重新註冊即可。
,是时候启动Runner了
,是時候啟動Runner了
```bash
./act_runner daemon
```
您可以在管理面上看到新的Runner
您可以在管理面上看到新的Runner
![view runner](/images/usage/actions/view-runner.png)
您可以通過访问[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`
![enable actions](/images/usage/actions/enable-actions.png)
接下的步可能相当复杂
您需要学习Actions的[工作流](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions),並编写您想要的工作流文件。
接下的步可能相當複雜
您需要學習Actions的[工作流](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions),並編寫您想要的工作流文件。
不過,我可以从一个简單的演示始:
不過,我可以從一個簡單的演示始:
```yaml
name: Gitea Actions Demo
@@ -112,20 +112,20 @@ jobs:
- run: echo "🍏 This job's status is ${{ job.status }}."
```
您可以上述例上為一`.yaml`展名的文件,放在存儲库`.gitea/workflows/`目錄中,例如`.gitea/workflows/demo.yaml`
您可能注意到,这与[GitHub Actions的快速入](https://docs.github.com/en/actions/quickstart)非常相似。
是因為Gitea Actions在可能容GitHub Actions的基上進行设计
您可以上述例上為一`.yaml`展名的文件,放在儲存庫`.gitea/workflows/`目錄中,例如`.gitea/workflows/demo.yaml`
您可能注意到,這與[GitHub Actions的快速入](https://docs.github.com/en/actions/quickstart)非常相似。
是因為Gitea Actions在可能容GitHub Actions的基上進行設計
請注意,演示文件中包含一些表情符
保您的数据库支持它们,特是在使用MySQL
如果字符集不是`utf8mb4`出現错误,例如`Error 1366 (HY000): Incorrect string value: '\\xF0\\x9F\\x8E\\x89 T...' for column 'name' at row 1`
更多信息,請参阅[数据库准备工作](../../installation/database-preparation.md#mysqlmariadb)。
請注意,演示文件中包含一些表情符
保您的資料庫支援它們,特是在使用MySQL
如果字符集不是`utf8mb4`出現錯誤,例如`Error 1366 (HY000): Incorrect string value: '\\xF0\\x9F\\x8E\\x89 T...' for column 'name' at row 1`
更多資訊,請參閱[資料庫準備工作](../../installation/database-preparation.md#mysqlmariadb)。
或者,您可以演示文件中除所有表情符,然后再尝试一次。
或者,您可以演示文件中除所有表情符,然後再嘗試一次。
`on: [push]` 一行表示您向該存儲库推送提交,工作流将被触发
然而,您上 YAML 文件,它也推送一提交,所以您應該在"Actions"標籤中看到一新的任
`on: [push]` 一行表示您向該儲存庫推送提交,工作流將被觸發
然而,您上 YAML 文件,它也推送一提交,所以您應該在"Actions"標籤中看到一新的任
![view job](/images/usage/actions/view-job.png)
做得好!您已成功始使用Actions。
做得好!您已成功始使用Actions。

View File

@@ -4,25 +4,25 @@ slug: "secrets"
sidebar_position: 50
---
# 密管理
# 密管理
管理允您在使用者、組織或存放庫中存儲敏感信息
管理在 Gitea 1.19+ 版本中可用。
管理允您在使用者、組織或存放庫中儲存敏感資訊
管理在 Gitea 1.19+ 版本中可用。
## 设置密钥名稱
## 設定密鑰名稱
以下規則适用于密钥名稱:
以下規則適用於密鑰名稱:
-名稱只能包含字母字字符 (`[a-z]`, `[A-Z]`, `[0-9]`) 或下划线 (`_`)。不允使用空格。
-名稱只能包含字母字字符 (`[a-z]`, `[A-Z]`, `[0-9]`) 或下劃線 (`_`)。不允使用空格。
-名稱不能以 `GITHUB_``GITEA_`開頭。
-名稱不能以 `GITHUB_``GITEA_`開頭。
-名稱不能以字開頭。
-名稱不能以字開頭。
-名稱不分大小
-名稱不分大小
-名稱在建立它们的级别上必須是唯一的。
-名稱在建立它們的級別上必須是唯一的。
例如,對於在存放庫级别建立的密,它在該存放庫中必須具有唯一的名稱;對於在組織级别建立的密,它在該级别上必須具有唯一的名稱。
例如,對於在存放庫級別建立的密,它在該存放庫中必須具有唯一的名稱;對於在組織級別建立的密,它在該級別上必須具有唯一的名稱。
如果在多个级别上存在具有相同名稱的密钥,则最低级别的密钥优先生效。例如,如果組織级别的密钥与存放庫级别的密具有相同的名稱,存放庫级别的密钥将优先生效。
如果在多個級別上存在具有相同名稱的密鑰,則最低級別的密鑰優先生效。例如,如果組織級別的密鑰與存放庫級別的密具有相同的名稱,存放庫級別的密鑰將優先生效。

View File

@@ -4,27 +4,27 @@ slug: "actions-variables"
sidebar_position: 25
---
#
#
您可以建立使用者、組織和存放庫级别的变量。量的级别取决于建立它的位置。建立变量时,变量的名稱
转换為大在yaml文件中引用需要使用大
您可以建立使用者、組織和存放庫級別的變量。量的級別取決於建立它的位置。建立變量時,變量的名稱
轉換為大在yaml文件中引用需要使用大
## 命名規則
以下規則适用于变量名:
以下規則適用於變量名:
- 量名稱只能包含字母字字符 (`[a-z]`, `[A-Z]`, `[0-9]`) 或下划线 (`_`)。不允使用空格。
- 量名稱不能以 `GITHUB_``GITEA_`開頭。
- 量名稱不能以字開頭。
- 量名稱不分大小
- 量名稱在建立它们的级别上必須是唯一的。
- 量名稱不能為 `CI`
- 量名稱只能包含字母字字符 (`[a-z]`, `[A-Z]`, `[0-9]`) 或下劃線 (`_`)。不允使用空格。
- 量名稱不能以 `GITHUB_``GITEA_`開頭。
- 量名稱不能以字開頭。
- 量名稱不分大小
- 量名稱在建立它們的級別上必須是唯一的。
- 量名稱不能為 `CI`
## 使用
建立配置变量后,它们将自动填充到 `vars` 上下文中。您可以在工作流中使用`${{ vars.VARIABLE_NAME }}` 这样的表达式来使用它
建立設定變量後,它們將自動填充到 `vars` 上下文中。您可以在工作流中使用`${{ vars.VARIABLE_NAME }}` 這樣的表達式來使用它
## 优先级
## 優先級
如果同名量存在于多个级别,则级别最低的变量优先。
存放庫级别的变量总是比組織或者使用者级别的变量优先被選中。
如果同名量存在於多個級別,則級別最低的變量優先。
存放庫級別的變量總是比組織或者使用者級別的變量優先被選中。