Open3

Rails 7.2.2.1 の secret_key_base の挙動

oieioioieioi

https://github.com/rails/rails/blob/v7.2.2.1/railties/lib/rails/application/configuration.rb#L501-L521

SECRET_KEY_BASE 環境変数 or credentials.yml の値は、generate_local_secret? が false となる場合のみ使用される。

https://github.com/rails/rails/blob/v7.2.2.1/railties/lib/rails/application/configuration.rb#L641-L643

generate_local_secret? は、 Rails.env.local? が true となるか、 SECRET_KEY_BASE_DUMMY が設定された環境ではtmp/local_secret.txt が生成されて使用される。その場合、 SECRET_KEY_BASE は使われない。

oieioioieioi

並行稼働するCIのテスト環境でうまくいったりうまくいかなかったりすることがあり、以下のようなエラーになる。

tmp/local_secret.txt が同時に作られると起こるのかな?この場合、tmp/local_secret.txt を適当に作っちゃえば防げる。

ArgumentError: `secret_key_base` for test environment must be a type of String` (ArgumentError)