2017-05-18 78 views
1

我們使用codeship爲C++項目運行CI。我們的CI構建包括一個docker映像,我們安裝系統依賴項,然後構建我們的測試的一個bazel build步驟。用於bazel遠程回購的本地緩存

我們巴澤勒工作區文件翻出各種外部依賴,如GTEST:

new_http_archive(
    name = "gtest", 
    url = "https://github.com/google/googletest/archive/release-1.7.0.zip", 
    build_file = "thirdparty/gtest.BUILD", 
    strip_prefix = "googletest-release-1.7.0", 
    sha256 = "b58cb7547a28b2c718d1e38aee18a3659c9e3ff52440297e965f5edffe34b6d0", 
) 

在CI構建,大量的時間都花在下載這些文件。是否有可能設置bazel使用本地緩存來存檔這些文件?

回答

2

我認爲Bazel已經在output_base中緩存了外部存儲庫(它應該,如果不是它是一個值得報告的bug)。您是否可以在Docker容器中保持高溫緩存?例如。通過獲取代碼並運行bazel fetch //...或更具體的目標?請注意,您還可以使用bazel --output_base=/foo build //...來指定bazel的output_base的位置。您可能會發現this doc section有關。

[編輯:我們的真棒Kristina來保存一天]:

您可以使用--experimental_repository_cache=/path/to/some/dir

這是否幫助?

相關問題