🐁

Go言語のバージョン通知アプリをHerokuから移行する

2022/08/28に公開

はじめに

https://blog.heroku.com/next-chapter

Herokuが次のチャプターに行くということで無料プランが廃止されます。

以前記事で紹介した良い感じのGo言語バージョン通知アプリが動かなくなってしまいます...

https://zenn.dev/takokun/articles/8562a278bb2010

そこで環境移行することにしました。

大雑把な機能説明

大きく3つの機能で構成されています。

  1. 定期実行
  2. タグの管理
  3. 差分検知&通知

3はGoでの実装になります。
データ管理に用いていたのがPostgreSQLだったので
そこは変えないようにしたいところです。

なので問題は12ですね。

移行をどうするか

  1. 定期実行

これについてはGithub Actionscron設定を使おうと思います。
前回の構成ではHerokuの自動再起動を利用していたのでだいたいの発火だったのですが、
今回からはちゃんと指定した日時に発火させることができそうです。
パブリックリポジトリであれば無料で利用できるのも嬉しいですね。

https://github.com/features/actions

  1. タグの管理

PostgreSQLの実装は変えたくない&&無料で使いたいということでCockroachDB Serverlessを使うことにしました。
Githubアカウントで認証連携して画面ぽちぽちしているだけでDB構築ができてしまいました。
なんて便利な世の中なんでしょうね。
しかもHeroku Postgres無料枠1GBに対してCockroachDB Serverless無料枠は5GBです。

https://www.cockroachlabs.com/lp/serverless/

アプリももろもろ修正

  1. ディレクトリ構成を整理
  2. CLIライブラリurfave/cliの追加
  3. 実行時に任意のリポジトリを指定できるように修正
  4. リポジトリカラムを追加し複数リポジトリを管理できるように修正

今回の修正でgolangci/golangci-lintも通知対象に追加しました。

今回作成したリポジトリはこちらになります。

https://github.com/takokun778/golang-tag/tree/v2.0.0

なんとなくv2.0.0に。

いざ実行

とりあえず*/5 * * * *と設定して動くか確認。

問題なく動きました!
cronを0 15 * * *と設定して日本時間0時に起動するように設定し完了です。

おわりに

案外簡単に移行ができたのではないかと思います。
それにしてもGithub Actions便利ですね。

Discussion