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

@@ -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,97 +4,97 @@ slug: "design"
sidebar_position: 40
---
# Gitea Actions设计
# Gitea Actions設計
Gitea Actions由多个组件组成。本文档将对它们进行逐描述。
Gitea Actions由多個元件組成。本文件將對它們進行逐描述。
## Gitea Runner
Gitea Runner部分基[nektos/act](https://github.com/nektos/act)的硬分支。
Gitea Runner部分基[nektos/act](https://github.com/nektos/act)的硬分支。
其他CI Runner一,我们将其设计为Gitea的外部部分意味着它应该在与Gitea不同的服器上行。
其他CI Runner一,我們將其設計為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不是唯一的选择
Runner 也支直接在主机上运行Job。
是通`linux_arm:host`这样的标签实现的。
这个标签表示Runner可以接受需要在`linux_arm`行的Job直接在主机上运行它
然而Docker不是唯一的選擇
Runner 也支直接在主機上運行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。
## 通信协议
## 通信協議
runner 是Gitea的立部分,我需要一种协议让RunnerGitea实例进行通信。
然而,我们不认为让Gitea监听一个新端口是好主意。
相反,我希望重用HTTP端口意味着我们需要一个与HTTP容的协议
因此,我们选择使用基HTTP的gRPC。
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)
片中标记了四个网络连接,且箭的方向表示建立接的方向。
片中標記了四個網路連接,且箭的方向表示建立接的方向。
### 接 1 runner到Gitea
### 接 1 runner到Gitea
Runner 必须能够连接到Gitea以接收任务并发送执行结果回
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不在同一容器中。
### 接 3runner到互联网
### 接 3runner到互聯網
您使用`actions/checkout@v4` 的一些Actionsrunner 下的是而不是Job容器。
默认情况下,它[github.com](http://github.com/)下,因此需要访问互联网。如果您设置的是 self
么默认将从您的前Gitea例下,那此步不需要接到互联网
还默认从Docker Hub下一些Docker像,也需要互联网访问
您使用`actions/checkout@v4` 的一些Actionsrunner 下的是而不是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.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不被他們不認識的其他使用者使用。
## runner支哪些操作系
## 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)。
不幸的是runner 不支持这种方式。
如上所述,我们将标签映射到境:
是有效的法。
它意味著它應該在具有`label_a` **和** `label_b`標籤的Runner上行,考[GitHub Actions的工作流](https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idruns-on)。
不幸的是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的方式。
具有`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/runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L65)。
們還需要重新設計任務分配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/runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L65)。
目前, runner尝试匹配标签中的每一个,并使用找到的第一匹配
目前, 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/runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L71)。
然而,目前方面的設計還有待改,因它目前存在一些不完善之
您可以向已註冊的Runner添加自訂標籤,比如 `centos`意味著該Runner接收具有`runs-on: centos`的Job。
然而Runner可能不知道要使用哪個環境來執行該標籤,導致它使用預設鏡像或導致邏輯死衚衕
這個預設值可能與使用者的期望不符。
參見[runtime.go#L71](https://gitea.com/gitea/runner/src/commit/90b8cc6a7a48f45cc28b5ef9660ebf4061fcb336/runtime/runtime.go#L71)。
此同如果您想更改Runner的标签,我们建议您重新注册Runner。
此同如果您想更改Runner的標籤,我們建議您重新註冊Runner。
## Gitea Actions runner有更多的实现吗
## Gitea Actions runner有更多的實現嗎
然我希望提供更多的选择,但由于我们有限的人力源, runner是唯一受支的官方Runner。
然而,无论您如何Gitea 和 runner都是完全源的,所以任何人都可以创建一个新的/更好的实现
们支持您的选择,无论您如何定。
如果您选择分支 runner 来创建自己的版本,在您认为您的更改其他人也有助的情况下贡献这些更改。
然我希望提供更多的選擇,但由於我們有限的人力源, runner是唯一受支的官方Runner。
然而,無論您如何Gitea 和 runner都是完全源的,所以任何人都可以建立一個新的/更好的實現
們支援您的選擇,無論您如何定。
如果您選擇分支 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功能的名
- "GitHub Actions"是GitHub功能的名
- "Actions"根上下文的不同可以指代以上任意一。在本文中指代的是"Gitea Actions"。
- "action"或"actions"指代一些要使用的本/插件,比如"actions/checkout@v4"或"actions/cache@v3"。
- "Gitea Actions"兩個單詞都大寫且帶有"s"是Gitea功能的名
- "GitHub Actions"是GitHub功能的名
- "Actions"根上下文的不同可以指代以上任意一。在本文中指代的是"Gitea Actions"。
- "action"或"actions"指代一些要使用的本/外掛,比如"actions/checkout@v4"或"actions/cache@v3"。
## Runner
和其他CI/CD解方案一Gitea不自己行Job而是Job委托给Runner。
Gitea Actions的Runner被称为[Gitea Runner](https://gitea.com/gitea/runner),它是一个独立的程也是用Go语言编写的。
它的重要部分自[nektos/act](http://github.com/nektos/act)的一硬分支。
和其他CI/CD解方案一Gitea不自己行Job而是Job委託給Runner。
Gitea Actions的Runner被稱為[Gitea Runner](https://gitea.com/gitea/runner),它是一個獨立的程也是用Go語言編寫的。
它的重要部分自[nektos/act](http://github.com/nektos/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需要[runner](https://gitea.com/gitea/runner) 来运行Job。
了避免消耗过多资源并影响Gitea例,建您在Gitea例分开的机器上启动Runner。
Gitea Actions需要[runner](https://gitea.com/gitea/runner) 來運行Job。
了避免消耗過多資源並影響Gitea例,建您在Gitea例分開的機器上啟動Runner。
您可以使用[预构建的二制文件](http://dl.gitea.com/gitea-runner)或[容器](https://hub.docker.com/r/gitea/runner/tags)来设置Runner。
您可以使用[預構建的二制文件](http://dl.gitea.com/gitea-runner)或[容器](https://hub.docker.com/r/gitea/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
./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
./runner daemon
```
您可以在管理面上看到新的Runner
您可以在管理面上看到新的Runner
![view runner](/images/usage/actions/view-runner.png)
您可以通过访问[runner](runner) 取更多信息
您可以透過訪問[runner](runner) 取更多資訊
### 使用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

@@ -8,111 +8,111 @@ aliases:
# Gitea Runner
页面将详细介绍[Gitea Runner](https://gitea.com/gitea/runner)是Gitea Actions的Runner。
頁面將詳細介紹[Gitea Runner](https://gitea.com/gitea/runner)是Gitea Actions的Runner。
## 要求
在Docker容器中行Job因此您需要首先安Docker。
并确保Docker守护进程正在行。
在Docker容器中行Job因此您需要首先安Docker。
並確保Docker守護進程正在行。
其他Docker API容的OCI容器引擎也应该可以正常工作,但尚未经过测试
其他Docker API容的OCI容器引擎也應該可以正常工作,但尚未經過測試
但是,如果您定要直接在主机上运行Job不需要Docker。
但是,如果您定要直接在主機上運行Job不需要Docker。
## 安
## 安
有多种安装Gitea Runner的方法。
有多種安裝Gitea Runner的方法。
### 下载二进制文件
### 下載二進制文件
您可以[发布页](https://gitea.com/gitea/runner/releases)下载二进制文件。
然而,如果您想使用最新的夜间构建版本,可以[载页](https://dl.gitea.com/gitea-runner/)下
您可以[發佈頁](https://gitea.com/gitea/runner/releases)下載二進制文件。
然而,如果您想使用最新的夜間構建版本,可以[載頁](https://dl.gitea.com/gitea-runner/)下
载二进制文件时,请确保您已经下载了适用于您的平台的正版本。
您可以通过运行以下命令进行检查:
載二進制文件時,請確保您已經下載了適用於您的平台的正版本。
您可以透過運行以下命令進行檢查:
```bash
chmod +x runner
./runner --version
```
如果看到版本信息,则表示您已经下载了正的二制文件。
如果看到版本資訊,則表示您已經下載了正的二制文件。
### 使用 Docker
### 使用 Docker
您可以使用[docker hub](https://hub.docker.com/r/gitea/runner/tags)上的Docker像。
与二进制文件似,您可以使用`nightly`标签使用最新的夜间构建版本,而`latest`标签是最新的定版本。
您可以使用[docker hub](https://hub.docker.com/r/gitea/runner/tags)上的Docker像。
與二進制文件似,您可以使用`nightly`標籤使用最新的夜間構建版本,而`latest`標籤是最新的定版本。
```bash
docker pull docker.io/gitea/runner:latest # for the latest stable release
docker pull docker.io/gitea/runner:nightly # for the latest nightly build
```
## 配置
## 設定
配置通过配置文件行。它是可的,当没有指定配置文件时,将使用默认配置
設定通過設定文件行。它是可的,當沒有指定設定文件時,將使用預設設定
您可以通过运行以下命令生成配置文件:
您可以透過運行以下命令生成設定文件:
```bash
./runner generate-config
```
默认配置是安全的,可以直接使用。
預設設定是安全的,可以直接使用。
```bash
./runner generate-config > config.yaml
./runner --config config.yaml [command]
```
您亦可以如下使用 docker 创建配置文件:
您亦可以如下使用 docker 建立設定文件:
```bash
docker run --entrypoint="" --rm -it docker.io/gitea/runner:latest 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 ...
```
您可能注意到上面的命令都是不完整的,因为现在还不是行 Runner 的候。
行 Runner 之前,我需要首先将其注册到您的Gitea例中。
您可能注意到上面的命令都是不完整的,因為現在還不是行 Runner 的候。
行 Runner 之前,我需要首先將其註冊到您的Gitea例中。
## 注册
## 註冊
行 Runner 之前,需要进行注册,因 Runner 需要知道从哪里获取Job并且对于Gitea实例来说,识别Runner也很重要。
行 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.md#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
@@ -120,48 +120,48 @@ export GITEA_RUNNER_REGISTRATION_TOKEN_FILE=/some-dir/runner-token
./gitea --config ...
```
来自环境变量的令牌在通 Web 面或 API 重置(重新建新令牌)前一直有效。
來自環境變量的令牌在通 Web 面或 API 重置(重新建新令牌)前一直有效。
令牌可用于注册多个 Runner直到使用 Web 面中的令牌重置链接将其撤销并替换为新令牌。
令牌可用於註冊多個 Runner直到使用 Web 面中的令牌重置鏈接將其撤銷並替換為新令牌。
### 注册 Runner
### 註冊 Runner
可以通过运行以下命令来注册 Runner
可以透過運行以下命令來註冊 Runner
```bash
./runner register
```
或者,您可以使用 `--config` 选项来指定前面部分提到的配置文件。
或者,您可以使用 `--config` 選項來指定前面部分提到的設定文件。
```bash
./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
./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像,注册行为会略有不同。在这种情况下,注册和运行合并为一步,因此您需要在行 Runner 指定注册信息
如果您使用的是Docker像,註冊行為會略有不同。在這種情況下,註冊和運行合併為一步,因此您需要在行 Runner 指定註冊資訊
```bash
docker run \
@@ -177,12 +177,12 @@ docker run \
-d gitea/runner:nightly
```
您可能注意到我们已将`/var/run/docker.sock`挂载到容器中。
是因 Runner 在Docker容器中行Job因此它需要Docker守护进程进行通信。
如前所述,如果要在主上直接行Job可以其移除。
需要明的是,这里的 "主" 实际上指的是当前运行 Runner的容器而不是主机机器本身。
您可能注意到我們已將`/var/run/docker.sock`掛載到容器中。
是因 Runner 在Docker容器中行Job因此它需要Docker守護進程進行通信。
如前所述,如果要在主上直接行Job可以其移除。
需要明的是,這裡的 "主" 實際上指的是當前運行 Runner的容器而不是主機機器本身。
### 使用 Docker compose 行 Runner
### 使用 Docker compose 行 Runner
您亦可使用如下的 `docker-compose.yml`:
@@ -203,31 +203,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,7 +236,7 @@ docker run \
-d gitea/runner:nightly
```
### 标签
### 標籤
```mermaid
flowchart TD
@@ -247,25 +247,25 @@ flowchart TD
E --> F[返回執行結果給 Gitea]
```
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` 更改标签(如果没有配置文件,请参考 [配置教程](#配置)通过执`./runner daemon --config config.yaml` 命令重 runner 之后,这些新定义的标签就会生效。
Gitea 1.21 始,您可以透過修改 runner 的設定文件中的 `container.labels` 更改標籤(如果沒有設定文件,請參考 [設定教學](#設定)透過執`./runner daemon --config config.yaml` 命令重 runner 之後,這些新定義的標籤就會生效。
##
##
注册完Runner,您可以通过运行以下命令来运行它:
註冊完Runner,您可以透過運行以下命令來運行它:
```bash
./runner daemon
@@ -273,6 +273,6 @@ Runner的标签用于确定Runner可以运行哪些Job以及如何运行它们
./runner daemon --config config.yaml
```
Runner将从Gitea实例获取Job并自动运行它
Runner將從Gitea實例獲取Job並自動運行它
Gitea Runner仍在不断升级中,建定期查最新版本并进行升
Gitea Runner仍在不斷升級中,建定期查最新版本並進行升

View File

@@ -87,7 +87,7 @@ SCOPED_WORKFLOW_DIRS = .gitea/scoped_workflows
<來源儲存庫全名>: <工作流程顯示名稱> / <job> (<event>)
```
設定頁面會為每個工作流程預覽這些 “Expected status checks預期狀態檢查並標記出與你的模式相符的項目,便於你確認模式是否正確。一種常見模式是對 job 和 event 使用萬用字元,例如 `my-org/ci-repo: Lint / *`。
設定頁面會為每個工作流程預覽這些 “Expected status checks預期狀態檢查並標記出與你的模式相符的專案,便於你確認模式是否正確。一種常見模式是對 job 和 event 使用萬用字元,例如 `my-org/ci-repo: Lint / *`。
強制範圍:

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 }}` 這樣的表達式來使用它
## 优先级
## 優先級
如果同名量存在于多个级别,则级别最低的变量优先。
仓库级别的变量总是比组织或者用户级别的变量优先被中。
如果同名量存在於多個級別,則級別最低的變量優先。
儲存庫級別的變量總是比組織或者使用者級別的變量優先被中。