問題タブ [ccache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
45 参照

android - 後続の Android ビルドで ccache に影響するエラーが発生する可能性があります

私はccacheがどのように機能するかをよく理解していません(読んだことがありますが、まだわかりません)。もっと詳しく説明します: クリーンな ccache から始めて、Android ROM をビルドすると、ビルドがうまくいき、ccache に値が入力されるとしましょう。次に、ROM を起動すると、何かが期待どおりに機能しないことに気付きました。わかりません。例として、WiFi が接続されていないとしましょう。私は自分のコードに戻って、それを修正する必要があるものを変更しますが、明らかにそれをテストする必要があるため、もう一度ビルドします (ccache を使用して、ビルドにあまり時間がかかりません)。

私の質問は、問題を修正しようとしている後続のビルドにccacheを使用すると、変更が無価値になる可能性があるため、完全にクリーンなビルドを作成するか、結果にまったく影響を与えない方がよいでしょうか?

0 投票する
1 に答える
121 参照

jenkins - ジェンキンス + Kubernetes + ccache

Jenkins を Kubernetes (GKE) に移行し、Jenkins Kubernetes プラグインを使用してポッドでジョブを実行することを検討しています。ただし、ビルド インフラストラクチャはビルド速度の最適化のために ccache を使用し、jenkins エージェントに ccache ファイルを保持します (すべてのビルドは、各エージェントのローカル ccache フォルダーに対して読み取りと書き込みを行います)。

私の理解では、k8s の Jenkins エージェント ポッドは一時的なものです。つまり、それらは 1 回しか使用できません。ccache がどのように機能するかを理解するのに苦労しています。これが私が考えていることです:

  • ポッド テンプレートでホストパス ボリュームを使用して、エージェント ポッドがノードにパスをマウントするようにします。GKE のドキュメントに基づくと、ホストパスは ReadWriteMany を許可していないため、これは機能しないのではないかと心配しています。つまり、複数のポッドが ccache マウントに同時に書き込むことができないということです。
  • NFS ベースのボリュームを使用してください。速度が遅くなり、ロックの問題が発生するため、うまく機能しないという事実を知っています。
  • Pod を再利用するには、「podRetention」および「idleMinutes」オプションを使用して Pod テンプレートを構成します。これは実行可能だと思いますが、IMO これは Kubernetes を使用する目的に反します。
  • StateFull Jenkins エージェントを使用する - これも実行可能だと思いますが、Kubernetes を使用する目的に反します。

関連する可能性のあるhttps://issues.jenkins.io/browse/JENKINS-42422を見つけましたが、解決策はないと思います。

これを実装する方法に関する他のアイデアはありますか? ccache を使用できないことは、静的エージェントと比較してビルドのターンアラウンド タイムが大幅に悪化するため、私たちにとって大きな問題です。