TL;DR
shogo82148/actions-setup-mysql には「GitHub Actionsのコード」と「MySQLをビルドするためのスクリプト群」が一緒に入っていたのですが、 このたび「MySQLをビルドするためのスクリプト群」を以下のレポジトリーに移行することにしました。
ユーザー側での対応は不要です。
背景・目的
shogo82148/actions-setup-mysql のビルド済みMySQLバイナリー置き場には紆余曲折ありました。 以下のブログ記事はPerlのものですが、MySQLも同じような道筋を辿っています。
紆余曲折あり最終的には GitHub Releases に保存することにしました。 GitHubネイティブの機能で安心感があるのと、なんたって無料なのが魅力的ですね。
v1.45.0 をリリースしたら、 v1.45.0の関連アセットに必要なバイナリーを全部突っ込む、という作戦で運用を続けてきました。 しかし、この方法では以下のような問題がありました。
- リリースのたびにすべてのプラットフォームのビルドをし直さなければならない
- ひとつのリリースに含める事のできるアセットの上限 1000 が見えてきた
というわけで、「MySQLをビルドするためのスクリプト群」を別レポジトリーに移行し、 shogo82148/actions-setup-mysql 自体のリリースサイクルとは別に管理するようにしました。
移行作業
shogo82148/build-mysql のセットアップ
「MySQLをビルドするための秘伝のスクリプト群」はすでに手元にあるので、スクリプト群をコピーするたけです。 完成したバイナリーは gh コマンドでアップロードします。
同じMySQLバージョンの再ビルドを行いたい(たとえば、将来リリースされるであろうubuntu-26.04版ビルドの追加とか)ケースも考えて、リリース名に mysql-8.4.6-20251026153058 のようにリリースした日付を入れておきます。
これは、変更不可リリースを有効化しており、過去のリリースを直接書き換えることができないためです。
shogo82148/actions-setup-mysql のダウンロードURL書き換え
毎回 shogo82148/build-mysql のリリースを検索するのも大変なので、
shogo82148/build-mysql の全リリースを gh api --paginate --slurp '/repos/shogo82148/build-mysql/releases?per_page=100' コマンドで取得し、整形したものをソースコードに埋め込んでいます。
[
{
"arch": "arm64",
"distribution": "mysql",
"os": "darwin",
"sha256": "874d49f26f0bcb1cdd186bf768d863cb1da227091609e5873e25255f19e46753",
"url": "https://github.com/shogo82148/build-mysql/releases/download/mysql-9.5.0-20251026034039/mysql-9.5.0-darwin-arm64.tar.zstd",
"version": "9.5.0"
},
{
"arch": "x64",
"distribution": "mysql",
"os": "darwin",
"sha256": "fe1432366afdd57c8b821234342baacb699162a4cc405ba44ca4ded258c5ec83",
"url": "https://github.com/shogo82148/build-mysql/releases/download/mysql-9.5.0-20251026034039/mysql-9.5.0-darwin-x64.tar.zstd",
"version": "9.5.0"
},
{
"arch": "arm64",
"distribution": "mysql",
"os": "ubuntu-22.04",
"sha256": "49389ac102c43e336dbc3624a9429f0abb8bc7538853e843614013c2e63e8953",
"url": "https://github.com/shogo82148/build-mysql/releases/download/mysql-9.5.0-20251026034039/mysql-9.5.0-ubuntu-22.04-arm64.tar.zstd",
"version": "9.5.0"
},
// ... (後略)
]
GitHub Action が動作する環境や指定されたバージョンをもとに、このJSONファイルを検索し、ダウンロードURLを取得します。
まとめ
shogo82148/actions-setup-mysql に含まれていた「MySQLをビルドするためのスクリプト群」を以下のレポジトリーに移行しました。
新しいMySQL, MariaDB のバージョンが公開されたときに、スムーズに対応できるようになりました。
🐰 ウサギの喜びの歌
ビルドスクリプトよ、独立の道へ
マニフェストJSON、きれいに整列
新しき物語が書かれて、ホッ
ドキュメント完成、すべてクリア🎉by CodeRabbit