私は、実行ホストされた継続的インテグレーション会社を、私たちは、Linux上で、お客様のコードを実行します。コードを実行するたびに、別の仮想マシンで実行します。頻繁に発生する問題は、VMでチェックアウトされたコードのディレクトリ順序が原因で、顧客のテストが失敗する場合があることです。
より詳細に説明させてください。OSXでは、HFS +ファイルシステムにより、ディレクトリが常に同じ順序でトラバースされることが保証されます。OSXを使用するプログラマーは、OSXがマシンで動作する場合、どこでも動作する必要があると想定しています。しかし、Linuxファイルシステムはディレクトリを横断する際に順序の保証を提供しないため、Linuxではしばしば機能しません。
例として、a.rb、b.rbの2つのファイルがあるとします。a.rbはを定義しMyObject
、b.rbはを使用しMyObject
ます。a.rbが最初にロードされると、すべてが機能します。b.rbが最初にロードされると、未定義の変数へのアクセスが試行されMyObject
、失敗します。
しかし、これよりも悪いのは、常に失敗するわけではないということです。Linuxでのファイルシステムの順序付けは順序付けられていないため、異なるマシンでは異なる順序になります。これは、テストに合格することもあれば、失敗することもあるため、さらに悪化します。これは最悪の結果です。
だから私の質問は、ファイルシステムの順序を繰り返し可能にする方法はありますか?おそらくext4へのフラグは、それは常にディレクトリをある順序でトラバースするということですか?それとも、この保証がある別のファイルシステムですか?