🐁
Go言語のバージョン通知アプリをHerokuから移行する
はじめに
Heroku
が次のチャプターに行くということで無料プランが廃止されます。
以前記事で紹介した良い感じのGo言語バージョン通知アプリが動かなくなってしまいます...
そこで環境移行することにしました。
大雑把な機能説明
大きく3つの機能で構成されています。
- 定期実行
- タグの管理
- 差分検知&通知
3
はGoでの実装になります。
データ管理に用いていたのがPostgreSQL
だったので
そこは変えないようにしたいところです。
なので問題は1
と2
ですね。
移行をどうするか
- 定期実行
これについてはGithub Actions
のcron
設定を使おうと思います。
前回の構成ではHeroku
の自動再起動を利用していたのでだいたいの発火だったのですが、
今回からはちゃんと指定した日時に発火させることができそうです。
パブリックリポジトリであれば無料で利用できるのも嬉しいですね。
- タグの管理
PostgreSQL
の実装は変えたくない&&無料で使いたいということでCockroachDB Serverlessを使うことにしました。
Github
アカウントで認証連携して画面ぽちぽちしているだけでDB構築ができてしまいました。
なんて便利な世の中なんでしょうね。
しかもHeroku Postgres
無料枠1GB
に対してCockroachDB Serverless
無料枠は5GB
です。
アプリももろもろ修正
- ディレクトリ構成を整理
- CLIライブラリurfave/cliの追加
- 実行時に任意のリポジトリを指定できるように修正
- リポジトリカラムを追加し複数リポジトリを管理できるように修正
今回の修正でgolangci/golangci-lintも通知対象に追加しました。
今回作成したリポジトリはこちらになります。
なんとなくv2.0.0
に。
いざ実行
とりあえず*/5 * * * *
と設定して動くか確認。
問題なく動きました!
cronを0 15 * * *
と設定して日本時間0時に起動するように設定し完了です。
おわりに
案外簡単に移行ができたのではないかと思います。
それにしてもGithub Actions
便利ですね。
Discussion