Forgejo Runner
Forgejo のランナー。
https://forgejo.org/docs/latest/admin/actions/
インストールする
公式ドキュメント通りにバイナリを落としてきて設置する
Installation from binary | Forgejo – Beyond coding. We forge.
runner ユーザーを追加する
docker グループに所属させる
設定ファイルをホームディレクトリに設置する
forgejo-runner generate-config > /home/runner/runner-config.yml
登録する
公式ドキュメントに従って Forgejo にランナーを設定する
Forgejo Runner Registration | Forgejo – Beyond coding. We forge.
Forgejo で UUID と Token を得て、それをランナーに設定することで接続できる
Forgejo で対話形式で登録することが推奨されている
登録は Forgejo インスタンス全体、org、ユーザー、リポジトリレベルでできる
例えば Forgejo インスタンス全体は http://example.com/admin/actions/runners で設定できる
ランナー追加をクリック
UUID と Token が表示されるので、これを表示されている説明通りにランナーの設定ファイルに書く
サービスを設定する
forgejo-runner.service を /etc/systemd/system/forgejo-runner.service として設置
ランナーを設定する
ラベルを選ぶ
ジョブに書かれた runs-on でどのランナーで実行するかが決められるわけで
ランナー側でラベルを設定しておくと、runs-on で書かれた内容でどのランナーのどの環境で動作させられるかが決められる
例えばラベルに次のように設定する
debian:docker://docker.io/library/node:lts
ubuntu-latest:docker://ghcr.io/catthehacker/ubuntu:act-22.04
すると runs-on: debian のジョブは node のコンテナで実行される、みたいな
self-hosted:host のように書けばホストで直接実行できるが、ホストが破壊される可能性があるので避けるべき
runs-on: [docker, gpu] のように複数のラベルを指定できる
その場合、それらのラベル全てが宣言されているランナーでのみ実行される
起動する
sudo systemctl start forgejo-runner
Forgejo インスタンス側で Actions を有効にするのを忘れない(1敗)