GitHub Actionsで「Check SKIP_DB_AND_REDIS bootability」ステップが失敗

最近追加された「Check SKIP_DB_AND_REDIS bootability」ステップが、私のプラグインの1つで失敗するという問題が発生しました。

SKIP_DB_AND_REDIS の起動に失敗しました。Rails の起動プロセス中にデータベースにアクセスされていないことを確認してください。

ローカルで再現するには、`SKIP_DB_AND_REDIS=1 RAILS_DB=‘nonexistent’ bin/rails runner “puts ‘booted successfully’”`を実行してください。

試してみましたが、ローカルでは問題を再現できませんでした。単に通過してしまいました。

失敗した GitHub Actions ステップのスタックトレースを使って、問題のコードを特定することができました。

問題のコード

コントローラーの1つで、Active Record の属性リストを取得する定数を宣言しました。

REWARD_FIELDS =  Reward.attribute_names.excluding("id", "created_at", "updated_at")

これは明らかに行ってはいけません。

しかし、GitHub Actions を通じて試行錯誤するのではなく、このチェックをローカルでシミュレートできればより良かったです。つまり、

SKIP_DB_AND_REDIS=1 RAILS_DB='nonexistent' bin/rails runner "puts 'booted successfully'"

を実行する以外にも何かあるはずです。