タイトル通り、CircleCIのキャッシュにハマったのである。 CircleCIのキャッシュについては、こちらのドキュメントを参照してください。

環境変数が取得できない

CircleCIではキャッシュ機能が存在しており、特定のディレクトリをキャッシュしておくことが出来る。 その際のキャッシュのキーに、ブランチ名やリビジョン、ファイルのチェックサムなどを利用することが出来る。 そして、これらの中に環境変数が利用出来ると書いてあるのだが、まあ動かない。 {{ .Environment.variableName }}という名前のものなのだが、RAILS_ENVを取得しようとして、{{ .Environment.RAILS_ENV }}を書いたところで、が返ってくる。

この問題についてのディスカッション

これに関してのディスカッションは、ここに書いてある。 色々書いてあるのだが、CircleCIの従業員曰く、

At this time, that is expected functionality. We do not yet fully support environment variables throughout the configuration file. This thread is a feature request not a bug report

とのこと。 要は、「ドキュメントに書いてあることは、理想であって実装しているわけではない。そして、これはバグリポートではなく機能追加ということらしい。 どう考えてもドキュメントバグだろ…

まあ、その後に

The docs should definitely be updated- the phrasing is unclear. It supports any env var we supply, not any arbitrary env var.

と書いてあるので、一部の環境変数は使用可能なのだろうか。 時間がある時に検証してみようと思う。

ちなみにキャッシュについてのドキュメントは更新されていないが、configuration-referenceの方は更新されている。