🚀
self-hosted runner のConfigure で使用するトークンをコマンドで生成
self-hosted runner のConfigure で使用するトークンをコマンドで生成
https://zenn.dev/mtmatma/articles/6e63be62171b60 の続き
まとめ
以下の環境変数を設定しておく
-
GITHUB_ACCESS_TOKEN
GitHubのアクセストークン -
OWNER
対象のアカウントまたはOrganization名 -
REPO
リポジトリ名 (Organization名を指定する場合は空にする) -
LABELS
Runner に付与するラベル名 (これ以外に自動的に付与されるラベルもある) -
NAME
Runner に指定する名前に付与する名前の一部(この記事ではホスト名も付与している)
#!/bin/bash
if [ -z "$OWNER" ] || [ -z "$GITHUB_ACCESS_TOKEN" ] || [ -z "$LABELS" ] || [ -z "$NAME" ]; then
echo "please set enviornment variable in advance."
echo " GITHUB_ACCESS_TOKEN"
echo " OWNER"
echo " REPO"
echo " LABELS"
echo " NAME"
exit 1
fi
if [ -n "$REPO" ]; then
URL=https://api.github.com/repos/$OWNER/$REPO/actions/runners/registration-token
URL_TO_RUNNER=https://github.com/$OWNER/$REPO
else
URL=https://api.github.com/orgs/$OWNER/actions/runners/registration-token
URL_TO_RUNNER=https://github.com/$OWNER
fi
TOKEN=$(curl -L \
-X POST \
-s \
-H "Accept: application/vnd.github+json" \
-H "Authorization: Bearer $GITHUB_ACCESS_TOKEN" \
-H "X-GitHub-Api-Version: 2022-11-28" \
$URL | jq -r '.token')
cd actions-runner
./config.sh --unattended --name $NAME-$(hostname) --url $URL_TO_RUNNER --token $TOKEN --labels $LABELS
説明
参考サイト
- self-hosted runnerをDockerイメージにする
- Create a registration token for an organization
- Create a registration token for a repository
- GtiHub Actionsでオンプレミス環境のCI/CDを実行する方法
使用API
Organizaion 共通で利用する Runner の場合
/orgs/{org}/actions/runners/registration-token
Organizaion 共通で利用できるが、通常のアカウントの場合、アカウント共通で指定はできない。
Discussion