免费A级毛片无码专区网站-成人国产精品视频一区二区-啊 日出水了 用力乖乖在线-国产黑色丝袜在线观看下-天天操美女夜夜操美女-日韩网站在线观看中文字幕-AV高清hd片XXX国产-亚洲av中文字字幕乱码综合-搬开女人下面使劲插视频

基于 Docker 構(gòu)建輕量級(jí) CI 系統(tǒng):Gitea 與 Woodpecker CI 集成

【基于 Docker 構(gòu)建輕量級(jí) CI 系統(tǒng):Gitea 與 Woodpecker CI 集成】WoodpeckerCI 是一個(gè)由社區(qū)維護(hù)的 DroneCI 分支,使用 Apache License 2.0 許可證發(fā)布 。社區(qū)版進(jìn)一步擴(kuò)展了 pipeline 的功能特性、支持對(duì)文件路徑設(shè)置 pipeline 執(zhí)行條件,并且可以與 Gitea 實(shí)現(xiàn)緊密集成 。不同的是,DroneCI 的配置文件是 .drone.yml,WoodpeckerCI 重命名為了 .woodpecker.yml 。好在 WoodpeckerCI 也兼容 DroneCI 的配置文件,遷移起來并不會(huì)太麻煩 。

基于 Docker 構(gòu)建輕量級(jí) CI 系統(tǒng):Gitea 與 Woodpecker CI 集成

文章插圖
下面,我們以 try.gitea.io 服務(wù)器為例,實(shí)現(xiàn) Gitea 與 WoodpeckerCI 的系統(tǒng)集成 。
系統(tǒng)結(jié)構(gòu)
  • Gitea : VCS,代碼倉(cāng)庫(kù) 。
  • Server : 中心服務(wù)器,負(fù)責(zé)任務(wù)調(diào)度 。
  • Agent : 邊緣節(jié)點(diǎn),執(zhí)行 Pipeline 的具體任務(wù) 。
用戶將代碼推送到 Gitea 時(shí)觸發(fā) Webhook,調(diào)動(dòng) WoodpeckerCI 從 Gitea 拉取最新的代碼并根據(jù) .woodpecker.yml 描述文件執(zhí)行 CI 流水線 。
基于 Docker 構(gòu)建輕量級(jí) CI 系統(tǒng):Gitea 與 Woodpecker CI 集成

文章插圖
網(wǎng)絡(luò)結(jié)構(gòu)由于 CI 任務(wù)的特殊性,工作繁忙時(shí)會(huì)占用較多的系統(tǒng)資源,因此為了提高系統(tǒng)整體可靠性,不建議將 Gitea、WoodpeckerCI Server 和 Agent 安裝在同一臺(tái)服務(wù)器上 。
  • 在本地局域網(wǎng)搭建時(shí)應(yīng)該確保以上服務(wù)可以通過域名、IP 互相訪問 。例如:gitea.example.com -> 192.168.3.10ci.example.com-> 192.168.3.20agent.example.com -> 192.168.3.30
  • 如需使用 docker compose 在本地開發(fā)環(huán)境搭建整套系統(tǒng),可以閱讀參考官方手冊(cè):
    https://woodpecker-ci.org/docs/administration/setup
準(zhǔn)備工作在 Gitea 上創(chuàng)建 OAuth2 應(yīng)用程序在本例中,WoodpeckerCI 基于 OAuth2 認(rèn)證授權(quán)訪問您的 Gitea API 。您可以創(chuàng)建一個(gè)專用于 CI 的賬號(hào),并將該賬號(hào)添加為代碼倉(cāng)庫(kù)協(xié)作者或者組織管理員 。
首先,登錄一個(gè)您要用于集成 WoodpeckerCI 的 Gitea 賬號(hào),進(jìn)入 設(shè)置 - 應(yīng)用,創(chuàng)建一個(gè) Gitea OAuth2 應(yīng)用程序 。
  • 應(yīng)用名稱 : 您可以任取一個(gè)名字,此案例中我們填寫 WoodpeckerCI
  • 重定向 URL : 授權(quán)回調(diào) URL,例如 https://<host>/authorize

基于 Docker 構(gòu)建輕量級(jí) CI 系統(tǒng):Gitea 與 Woodpecker CI 集成

文章插圖
修改 Gitea 服務(wù)器的 Webhook 白名單出于安全考慮,Gitea 默認(rèn)禁止觸發(fā)外部主機(jī)的 Webhook 。您可以將外部主機(jī)添加到 webhook.ALLOWED_HOST_LIST 白名單來解除這一限制 。請(qǐng)參考文檔 Webhook 了解具體方法 。
修改配置時(shí),打開 conf/app.ini,添加 ALLOWED_HOST_LIST = *[webhook] 欄目中,并重啟 Gitea 服務(wù)器 。例如:
[webhook]ALLOWED_HOST_LIST = *創(chuàng)建共享密鑰共享密鑰用于 WoodpeckerCI Server 和 Agent 之間的通信認(rèn)證 。記錄下您創(chuàng)建的共享密鑰,稍后在安裝 WoodpeckerCI Server 和 Agent 時(shí)將使用此密鑰填充環(huán)境變量 WOODPECKER_AGENT_SECRET 。
您可以使用 OpenSSL 生成隨機(jī)的長(zhǎng)度為 32 位的十六進(jìn)制共享密鑰:
$ openssl rand -hex 32c5704bc389f1e3d47f1c4751d1295c86使用 Docker 安裝 WoodpeckerCI 服務(wù)器和 AgentWoodpeckerCI 服務(wù)器是一個(gè)輕量級(jí)的 Docker 容器,使用 SQLite 作為默認(rèn)數(shù)據(jù)庫(kù),支持通過環(huán)境變量動(dòng)態(tài)設(shè)定運(yùn)行參數(shù) 。有關(guān)配置參數(shù)的完整列表,請(qǐng)參閱 WoodpeckerCI 服務(wù)器配置文檔 。
環(huán)境變量