monolithic kernel

固定した mise のバージョンを multi-gitter でまとめて更新する

GitHub Actions で mise-action を使うときの再現性のために mise のバージョンを固定したのだが、これによって、mise のバージョンを更新する手間が生じるようになった。同じことをやっているリポジトリが複数ある場合、リポジトリの数だけ作業を繰り返す必要があり非常に面倒。

同じ操作を繰り返すだけの単純作業なので、まとめて更新したいと思い調べていたところ、multi-gitter というツールを見つけた。複数のリポジトリでコマンドを実行して、ファイルが正常に更新されたらその内容を push するという、今回の目的にはまさにぴったりなものだった。

mise-up.sh
#!/bin/sh
MISE_VERSION="$(curl -s https://mise.jdx.dev/VERSION)"
MISE_VERSION="$MISE_VERSION" multi-gitter run "./mise-up-internal.sh" \
--token "$(gh auth token)" \
--repo org/repo --repo ... \
-m "Bump mise version to $MISE_VERSION" --skip-pr
mise-up-internal.sh
#!/bin/sh
perl -i -pe "s/^(\s*version:\s*)[0-9.]+/\${1}$MISE_VERSION/" .github/actions/setup-mise/action.yml

--token には事前に gh auth login でログインして用意しておいたアクセストークンを渡している。今回は個人用なのでデフォルトブランチに直で push しているが、Pull Request を作成することもできる。

これで、リポジトリがいくら増えても大丈夫そう。


Related articles