引き続き、リリースに関わる作業に自動化をやっている。今日は GitHub Releases の作成。
https://github.com/ruby/ruby/commit/dc50d3590ff00bdd3578f922e909e7f701243366
GitHub Releases は tag をベースに作成しなければならないので v3_3_4
というような文字列と、その前のバージョンである v3_3_3
を 3.3.4
という文字列から生成する必要がある。前者は単純に置換すればいいけど、後者はちょっと工夫がいるので awk を使って以下のようなワンライナーで組み立てた。
awk 'BEGIN {FS="_"; OFS="_"}{ $NF=$NF-1; print }'
v3_4_0
みたいな時は明らかに動かないのでスキップするようにしておかないと事故りそう。
heroku から redis の 6 は 2024 年内に終わるよ、とう通知が来たので 7 にバージョンアップした。具体的な手順は以下に書いてあるとおり。
https://devcenter.heroku.com/ja/articles/heroku-redis-version-upgrade
特に悩むことなく、以下のコマンドを実行しておくとメンテナンスウィンドウでアップグレードを実行するようになる。
heroku redis:upgrade --version 7.2
すぐに実行したい場合は maintenance プラグインを使えばいいということだった。
heroku plugins:install @heroku-cli/plugin-data-maintenance
heroku data:maintenances:run REDIS_ID
最初、maintenance が実行できるような状態になるのに時間がかかるということがわからなくて、実行しても成功とだけ出て、なんだこれ、となったのはもうちょいわかりやすくなってくれるといいなあ。
redis のアップグレードに合わせて ふと heroku postgresql のバージョンを見てみると、今使っている 14 はEOL が 2025年とすぐではないものの、割とすぐという状況だったのでこっちも 16 にアップグレードしておいた。
heroku addons:create heroku-postgresql:premium-0 -a bugs-ruby-lang -- --follow HEROKU_POSTGRESQL_XXX
heroku pg:upgrade HEROKU_POSTGRESQL_XXX -a bugs-ruby-lang
heroku pg:wait -a bugs-ruby-lang
heroku pg:promote HEROKU_POSTGRESQL_XXX -a bugs-ruby-lang
heroku addons:destroy HEROKU_POSTGRESQL_XXX_URL -a bugs-ruby-lang
手順としては上記をずらずら実行するだけで終わる。データとしては1GBのアプリと、15GBの2つ程度なので特にメンテナンス告知とかは入れないで 10-15分くらいで終わらせてしまった。本当に便利。