2017-08-21 16 views
1

ジェンキンスパイプラインビルドでccacheから一貫した利点を得ることができません。現在のビルドディレクトリの親ディレクトリにCCACHE_BASEDIRを設定しています(これは/opt/jenkins/workspaceのようなものです)。このbasedirを考えると、私は、この共通の親を共有するすべてのPR /ブランチビルドがキャッシュ内のヒットを見つけることができると期待しますが、そうではありません。 I do特定のディレクトリの後続ビルドのキャッシュヒットを参照してください(たとえば、特定のPRを手動で再構築すると)、CCACHE_BASEDIRが期待したように動作していないことを意味します。ジェンキンスパイプラインでccacheを使用する

さらに診断するために、CCACHE_LOGFILEを設定しようとしましたが、そのファイルはビルドによって生成されますが、実質的に空です(ccacheのバージョンを示す2行しか含まれません)。

ゲンキンスパイプラインでccacheから最大の利益を得るために特別な設定やテクニックを提案してもらえますか、それとも他の問題を診断しようとしていますか?何が空のccacheログファイルを引き起こす可能性がありますか?

実行中ccache 3.3.4。

+0

手動でccacheを動作させることはできますか? 'ccache -s'でccache statsをチェックして、ファイルをキャッシュしているかどうかを調べることができます。 –

答えて

1

質問の最初の部分の解は、(環境変数を使用している場合CCACHE_NOHASHDIR=1)または共通のプレフィックス(例えば-fdebug-prefix-map=$PWD=.)にデバッグ情報を再配置する-fdebug-prefix-map=old=newを設定hash_dir = falseを設定することが考えられます。詳細は"Compiling in different directories" section in the ccache manualにあります。

CCACHE_LOGFILEについて:これまで私はその問題について聞いたことがありませんでしたが(私はccacheのメンテナー、BTWです)、CCACHE_LOGFILEを相対ファイルパスに設定した場合は、代わりに絶対パスに設定してみてください。

関連する問題