最近追加された「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'"
を実行する以外にも何かあるはずです。