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,121 +6,121 @@ 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 URLGitea不支
-Job启动一个新的容器,而不是重使用,以保隔性。
- 將執行日誌輸出到日誌記錄器鉤子,以便報告給Gitea
- 禁用 GraphQL URLGitea不支
-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遇到任何網路問題,希望上面的片能夠幫助您行故障排除。