跳到主內容

Gitea 串接 Act Runner 服務

  BUBU 因為最近看了很多人都在用 AI 寫服務跟功能,剛好之前是用另一套 Drone CI/CD 來處理,現在在 Gitea 後期的版本已有內建 CI \ CD 這樣子的服務,只是還是需要另外建一台來執行任務,因此本篇記錄一下該怎麼建置及串接

運行環境


  環境都是在 「Proxmox VE 」 虛擬系統上架設,都是以 「 LXC 」模式為主,除非有特殊狀況會告知使用 「 VM 」 模式

  • 系統環境: Debian 13

安裝過程


安裝 Docker 服務

  • 安裝必要套件
sudo apt update && sudo apt install ca-certificates curl
  • 新增加 Docker 金鑰
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
  • 設定來源庫
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/debian
Suites: $(. /etc/os-release && echo "$VERSION_CODENAME")
Components: stable
Signed-By: /etc/apt/keyrings/docker.asc
EOF
  • 安裝 Docker
sudo apt update && sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y
安裝 Runner 服務

  • 直接到官方抓取已打包好的檔案 act_runner
wget -O /usr/local/bin/act_runner https://gitea.com/gitea/act_runner/releases/download/v0.3.0/act_runner-0.3.0-linux-amd64
  • 設定可執行
chmod +x /usr/local/bin/act_runner
  • 版本確認
act_runner --version

  • 建立 runner 專用帳號
useradd -m -s /bin/bash gitea-runner
usermod -aG docker gitea-runner
  • 建立相關目錄
mkdir -p /etc/act_runner /var/lib/act_runner
  • 產生設定檔
act_runner generate-config > /etc/act_runner/config.yaml
  • 設定相關權限
chown -R gitea-runner:gitea-runner /etc/act_runner /var/lib/act_runner
chmod 700 /var/lib/act_runner
  • 取得 Runner Registration Token(在 Gitea)

    • Site Administration → Actions → Runners → Create new Runner(全域 runner)
    • Repo Settings → Actions → Runners(repo 專用)
  • 回到 Gitea 介面去取的 Token,請選擇設定(這是全域取的方式),如果是針對 repo 直接到該專案下的設定上面做取得

  • 選擇 Actions

  • 展開之後再選擇 Runner

  • 在畫面中間右邊有一個 建立 Runner

  • 系統會隨機產一組 Token 給您之後請複製起來貼到要註冊的 Runner 設定檔

設定 act_runner 服務

  • 進到指定目錄會產一份隱藏檔是 .runner
cd /var/lib/act_runner
  • 註冊 Runner
cd /var/lib/act_runner
sudo -u gitea-runner act_runner register \
  --config /etc/act_runner/config.yaml \
  --instance https://你的-gitea-網址 \
  --token 你的註冊token \
  --name runner-lxc-debian13-01 \
  --labels docker,linux,x64
  • 執行完之後會出現這樣子的畫面

  • 在回到 Gitea 後台就會看到您剛剛所註冊服務

  • 註冊成服務
cat >/etc/systemd/system/gitea-act-runner.service <<'EOF'
[Unit]
Description=Gitea Actions Runner
After=network.target docker.service
Requires=docker.service

[Service]
User=gitea-runner
Group=gitea-runner
WorkingDirectory=/var/lib/act_runner
Environment=HOME=/var/lib/act_runner
ExecStart=/usr/local/bin/act_runner daemon --config /etc/act_runner/config.yaml
Restart=always
RestartSec=3
LimitNOFILE=1048576

[Install]
WantedBy=multi-user.target
EOF
  • 服務重載
systemctl daemon-reload
  • 啟動服務
systemctl enable --now gitea-act-runner
  • 服務狀態
systemctl status gitea-act-runner --no-pager
  • 服務啟動後在回到 Gitea 後台查看狀態會是閒置

補充說明


備註





參考相關網頁