mirror of
https://github.com/facebook/proxygen.git
synced 2025-08-08 18:02:05 +03:00
add github actions caching
Summary: X-link: https://github.com/facebook/sapling/pull/1005 Speed up github builds with github actions CI caching based on the cache-key mechanism already present in getdeps. Cached fizz windows build completed in 22% of original time, linux build in 54% of the original time, and mac in 72% of original time. This saves a lot of waiting around for PR builds on OSS changes as windows signal is usually the lagging one. Speed ups will vary across the different Meta OSS projects. Windows benefits most from caching dependencies as we don't use system packages there at all, linux next as its default runner is slower than mac, and then finaly mac (the strongest hardware of the default github runners). Github allows [up to 10GB cache per repo](https://github.blog/changelog/2021-11-23-github-actions-cache-size-is-now-increased-to-10gb-per-repository/), expiring data over capacity. You can see the size of the caches generated in the [caches view of githhub actions UX](https://github.com/ahornby/fizz/actions/caches?query=sort%3Asize-desc), looks like our usage is pretty small so far. More background: Github actions caching decides its own compression format (currently it prefers zstd), but they are free to change that in future, hence no .zstd suffix or similar on the cache keys. Github actions caches from main are used from feature branches but not vice versa, hence a PR can't pollute cache for the trunk build. This allows us to benefit from caching on main and PRs where dependency versions match. The final item being built, and dependencies inside the same repo as the final are not cached. A different mechanism would be necessary for those (e.g. using a tool like ccache/sccache or caching cargo/buck2 output). This means that when building EdenFS, sapling could not be cached (its in the same repo), but folly could be as we have a key for it based on the folly-rev.txt file. When there is a cache hit the build step is skipped using extension of the conditionals introduced in previous diff D67839708 Reviewed By: bigfootjon Differential Revision: D67839730 fbshipit-source-id: c384a216eb27ccd3f816e3c31b167232bda571a6
This commit is contained in:
committed by
Facebook GitHub Bot
parent
ebb3bbc12d
commit
d4355c4300
435
.github/workflows/getdeps_linux.yml
vendored
435
.github/workflows/getdeps_linux.yml
vendored
@@ -108,93 +108,470 @@ jobs:
|
||||
- name: Fetch wangle
|
||||
if: ${{ steps.paths.outputs.wangle_SOURCE }}
|
||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests wangle
|
||||
- name: Build ninja
|
||||
- name: Restore ninja from cache
|
||||
id: restore_ninja
|
||||
if: ${{ steps.paths.outputs.ninja_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.ninja_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.ninja_CACHE_KEY }}-install
|
||||
- name: Build ninja
|
||||
if: ${{ steps.paths.outputs.ninja_SOURCE && ! steps.restore_ninja.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests ninja
|
||||
- name: Build cmake
|
||||
- name: Save ninja to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.ninja_SOURCE && ! steps.restore_ninja.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.ninja_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.ninja_CACHE_KEY }}-install
|
||||
- name: Restore cmake from cache
|
||||
id: restore_cmake
|
||||
if: ${{ steps.paths.outputs.cmake_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.cmake_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.cmake_CACHE_KEY }}-install
|
||||
- name: Build cmake
|
||||
if: ${{ steps.paths.outputs.cmake_SOURCE && ! steps.restore_cmake.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests cmake
|
||||
- name: Build zlib
|
||||
- name: Save cmake to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.cmake_SOURCE && ! steps.restore_cmake.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.cmake_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.cmake_CACHE_KEY }}-install
|
||||
- name: Restore zlib from cache
|
||||
id: restore_zlib
|
||||
if: ${{ steps.paths.outputs.zlib_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.zlib_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.zlib_CACHE_KEY }}-install
|
||||
- name: Build zlib
|
||||
if: ${{ steps.paths.outputs.zlib_SOURCE && ! steps.restore_zlib.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests zlib
|
||||
- name: Build zstd
|
||||
- name: Save zlib to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.zlib_SOURCE && ! steps.restore_zlib.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.zlib_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.zlib_CACHE_KEY }}-install
|
||||
- name: Restore zstd from cache
|
||||
id: restore_zstd
|
||||
if: ${{ steps.paths.outputs.zstd_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.zstd_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.zstd_CACHE_KEY }}-install
|
||||
- name: Build zstd
|
||||
if: ${{ steps.paths.outputs.zstd_SOURCE && ! steps.restore_zstd.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests zstd
|
||||
- name: Build boost
|
||||
- name: Save zstd to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.zstd_SOURCE && ! steps.restore_zstd.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.zstd_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.zstd_CACHE_KEY }}-install
|
||||
- name: Restore boost from cache
|
||||
id: restore_boost
|
||||
if: ${{ steps.paths.outputs.boost_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.boost_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.boost_CACHE_KEY }}-install
|
||||
- name: Build boost
|
||||
if: ${{ steps.paths.outputs.boost_SOURCE && ! steps.restore_boost.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests boost
|
||||
- name: Build double-conversion
|
||||
- name: Save boost to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.boost_SOURCE && ! steps.restore_boost.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.boost_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.boost_CACHE_KEY }}-install
|
||||
- name: Restore double-conversion from cache
|
||||
id: restore_double-conversion
|
||||
if: ${{ steps.paths.outputs.double-conversion_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.double-conversion_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.double-conversion_CACHE_KEY }}-install
|
||||
- name: Build double-conversion
|
||||
if: ${{ steps.paths.outputs.double-conversion_SOURCE && ! steps.restore_double-conversion.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests double-conversion
|
||||
- name: Build fast_float
|
||||
- name: Save double-conversion to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.double-conversion_SOURCE && ! steps.restore_double-conversion.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.double-conversion_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.double-conversion_CACHE_KEY }}-install
|
||||
- name: Restore fast_float from cache
|
||||
id: restore_fast_float
|
||||
if: ${{ steps.paths.outputs.fast_float_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.fast_float_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.fast_float_CACHE_KEY }}-install
|
||||
- name: Build fast_float
|
||||
if: ${{ steps.paths.outputs.fast_float_SOURCE && ! steps.restore_fast_float.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests fast_float
|
||||
- name: Build fmt
|
||||
- name: Save fast_float to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.fast_float_SOURCE && ! steps.restore_fast_float.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.fast_float_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.fast_float_CACHE_KEY }}-install
|
||||
- name: Restore fmt from cache
|
||||
id: restore_fmt
|
||||
if: ${{ steps.paths.outputs.fmt_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.fmt_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.fmt_CACHE_KEY }}-install
|
||||
- name: Build fmt
|
||||
if: ${{ steps.paths.outputs.fmt_SOURCE && ! steps.restore_fmt.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests fmt
|
||||
- name: Build gflags
|
||||
- name: Save fmt to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.fmt_SOURCE && ! steps.restore_fmt.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.fmt_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.fmt_CACHE_KEY }}-install
|
||||
- name: Restore gflags from cache
|
||||
id: restore_gflags
|
||||
if: ${{ steps.paths.outputs.gflags_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.gflags_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.gflags_CACHE_KEY }}-install
|
||||
- name: Build gflags
|
||||
if: ${{ steps.paths.outputs.gflags_SOURCE && ! steps.restore_gflags.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests gflags
|
||||
- name: Build glog
|
||||
- name: Save gflags to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.gflags_SOURCE && ! steps.restore_gflags.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.gflags_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.gflags_CACHE_KEY }}-install
|
||||
- name: Restore glog from cache
|
||||
id: restore_glog
|
||||
if: ${{ steps.paths.outputs.glog_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.glog_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.glog_CACHE_KEY }}-install
|
||||
- name: Build glog
|
||||
if: ${{ steps.paths.outputs.glog_SOURCE && ! steps.restore_glog.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests glog
|
||||
- name: Build googletest
|
||||
- name: Save glog to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.glog_SOURCE && ! steps.restore_glog.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.glog_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.glog_CACHE_KEY }}-install
|
||||
- name: Restore googletest from cache
|
||||
id: restore_googletest
|
||||
if: ${{ steps.paths.outputs.googletest_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.googletest_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.googletest_CACHE_KEY }}-install
|
||||
- name: Build googletest
|
||||
if: ${{ steps.paths.outputs.googletest_SOURCE && ! steps.restore_googletest.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests googletest
|
||||
- name: Build libdwarf
|
||||
- name: Save googletest to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.googletest_SOURCE && ! steps.restore_googletest.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.googletest_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.googletest_CACHE_KEY }}-install
|
||||
- name: Restore libdwarf from cache
|
||||
id: restore_libdwarf
|
||||
if: ${{ steps.paths.outputs.libdwarf_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libdwarf_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libdwarf_CACHE_KEY }}-install
|
||||
- name: Build libdwarf
|
||||
if: ${{ steps.paths.outputs.libdwarf_SOURCE && ! steps.restore_libdwarf.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libdwarf
|
||||
- name: Build libevent
|
||||
- name: Save libdwarf to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.libdwarf_SOURCE && ! steps.restore_libdwarf.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libdwarf_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libdwarf_CACHE_KEY }}-install
|
||||
- name: Restore libevent from cache
|
||||
id: restore_libevent
|
||||
if: ${{ steps.paths.outputs.libevent_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libevent_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libevent_CACHE_KEY }}-install
|
||||
- name: Build libevent
|
||||
if: ${{ steps.paths.outputs.libevent_SOURCE && ! steps.restore_libevent.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libevent
|
||||
- name: Build lz4
|
||||
- name: Save libevent to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.libevent_SOURCE && ! steps.restore_libevent.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libevent_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libevent_CACHE_KEY }}-install
|
||||
- name: Restore lz4 from cache
|
||||
id: restore_lz4
|
||||
if: ${{ steps.paths.outputs.lz4_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.lz4_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.lz4_CACHE_KEY }}-install
|
||||
- name: Build lz4
|
||||
if: ${{ steps.paths.outputs.lz4_SOURCE && ! steps.restore_lz4.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests lz4
|
||||
- name: Build snappy
|
||||
- name: Save lz4 to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.lz4_SOURCE && ! steps.restore_lz4.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.lz4_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.lz4_CACHE_KEY }}-install
|
||||
- name: Restore snappy from cache
|
||||
id: restore_snappy
|
||||
if: ${{ steps.paths.outputs.snappy_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.snappy_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.snappy_CACHE_KEY }}-install
|
||||
- name: Build snappy
|
||||
if: ${{ steps.paths.outputs.snappy_SOURCE && ! steps.restore_snappy.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests snappy
|
||||
- name: Build openssl
|
||||
- name: Save snappy to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.snappy_SOURCE && ! steps.restore_snappy.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.snappy_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.snappy_CACHE_KEY }}-install
|
||||
- name: Restore openssl from cache
|
||||
id: restore_openssl
|
||||
if: ${{ steps.paths.outputs.openssl_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.openssl_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.openssl_CACHE_KEY }}-install
|
||||
- name: Build openssl
|
||||
if: ${{ steps.paths.outputs.openssl_SOURCE && ! steps.restore_openssl.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests openssl
|
||||
- name: Build liboqs
|
||||
- name: Save openssl to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.openssl_SOURCE && ! steps.restore_openssl.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.openssl_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.openssl_CACHE_KEY }}-install
|
||||
- name: Restore liboqs from cache
|
||||
id: restore_liboqs
|
||||
if: ${{ steps.paths.outputs.liboqs_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.liboqs_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.liboqs_CACHE_KEY }}-install
|
||||
- name: Build liboqs
|
||||
if: ${{ steps.paths.outputs.liboqs_SOURCE && ! steps.restore_liboqs.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests liboqs
|
||||
- name: Build autoconf
|
||||
- name: Save liboqs to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.liboqs_SOURCE && ! steps.restore_liboqs.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.liboqs_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.liboqs_CACHE_KEY }}-install
|
||||
- name: Restore autoconf from cache
|
||||
id: restore_autoconf
|
||||
if: ${{ steps.paths.outputs.autoconf_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.autoconf_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.autoconf_CACHE_KEY }}-install
|
||||
- name: Build autoconf
|
||||
if: ${{ steps.paths.outputs.autoconf_SOURCE && ! steps.restore_autoconf.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests autoconf
|
||||
- name: Build automake
|
||||
- name: Save autoconf to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.autoconf_SOURCE && ! steps.restore_autoconf.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.autoconf_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.autoconf_CACHE_KEY }}-install
|
||||
- name: Restore automake from cache
|
||||
id: restore_automake
|
||||
if: ${{ steps.paths.outputs.automake_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.automake_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.automake_CACHE_KEY }}-install
|
||||
- name: Build automake
|
||||
if: ${{ steps.paths.outputs.automake_SOURCE && ! steps.restore_automake.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests automake
|
||||
- name: Build libtool
|
||||
- name: Save automake to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.automake_SOURCE && ! steps.restore_automake.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.automake_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.automake_CACHE_KEY }}-install
|
||||
- name: Restore libtool from cache
|
||||
id: restore_libtool
|
||||
if: ${{ steps.paths.outputs.libtool_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libtool_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libtool_CACHE_KEY }}-install
|
||||
- name: Build libtool
|
||||
if: ${{ steps.paths.outputs.libtool_SOURCE && ! steps.restore_libtool.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libtool
|
||||
- name: Build gperf
|
||||
- name: Save libtool to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.libtool_SOURCE && ! steps.restore_libtool.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libtool_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libtool_CACHE_KEY }}-install
|
||||
- name: Restore gperf from cache
|
||||
id: restore_gperf
|
||||
if: ${{ steps.paths.outputs.gperf_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.gperf_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.gperf_CACHE_KEY }}-install
|
||||
- name: Build gperf
|
||||
if: ${{ steps.paths.outputs.gperf_SOURCE && ! steps.restore_gperf.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests gperf
|
||||
- name: Build libiberty
|
||||
- name: Save gperf to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.gperf_SOURCE && ! steps.restore_gperf.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.gperf_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.gperf_CACHE_KEY }}-install
|
||||
- name: Restore libiberty from cache
|
||||
id: restore_libiberty
|
||||
if: ${{ steps.paths.outputs.libiberty_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libiberty_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libiberty_CACHE_KEY }}-install
|
||||
- name: Build libiberty
|
||||
if: ${{ steps.paths.outputs.libiberty_SOURCE && ! steps.restore_libiberty.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libiberty
|
||||
- name: Build libsodium
|
||||
- name: Save libiberty to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.libiberty_SOURCE && ! steps.restore_libiberty.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libiberty_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libiberty_CACHE_KEY }}-install
|
||||
- name: Restore libsodium from cache
|
||||
id: restore_libsodium
|
||||
if: ${{ steps.paths.outputs.libsodium_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libsodium_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libsodium_CACHE_KEY }}-install
|
||||
- name: Build libsodium
|
||||
if: ${{ steps.paths.outputs.libsodium_SOURCE && ! steps.restore_libsodium.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libsodium
|
||||
- name: Build libunwind
|
||||
- name: Save libsodium to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.libsodium_SOURCE && ! steps.restore_libsodium.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libsodium_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libsodium_CACHE_KEY }}-install
|
||||
- name: Restore libunwind from cache
|
||||
id: restore_libunwind
|
||||
if: ${{ steps.paths.outputs.libunwind_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libunwind_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libunwind_CACHE_KEY }}-install
|
||||
- name: Build libunwind
|
||||
if: ${{ steps.paths.outputs.libunwind_SOURCE && ! steps.restore_libunwind.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libunwind
|
||||
- name: Build xz
|
||||
- name: Save libunwind to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.libunwind_SOURCE && ! steps.restore_libunwind.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libunwind_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libunwind_CACHE_KEY }}-install
|
||||
- name: Restore xz from cache
|
||||
id: restore_xz
|
||||
if: ${{ steps.paths.outputs.xz_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.xz_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.xz_CACHE_KEY }}-install
|
||||
- name: Build xz
|
||||
if: ${{ steps.paths.outputs.xz_SOURCE && ! steps.restore_xz.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests xz
|
||||
- name: Build folly
|
||||
- name: Save xz to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.xz_SOURCE && ! steps.restore_xz.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.xz_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.xz_CACHE_KEY }}-install
|
||||
- name: Restore folly from cache
|
||||
id: restore_folly
|
||||
if: ${{ steps.paths.outputs.folly_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.folly_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.folly_CACHE_KEY }}-install
|
||||
- name: Build folly
|
||||
if: ${{ steps.paths.outputs.folly_SOURCE && ! steps.restore_folly.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests folly
|
||||
- name: Build fizz
|
||||
- name: Save folly to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.folly_SOURCE && ! steps.restore_folly.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.folly_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.folly_CACHE_KEY }}-install
|
||||
- name: Restore fizz from cache
|
||||
id: restore_fizz
|
||||
if: ${{ steps.paths.outputs.fizz_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.fizz_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.fizz_CACHE_KEY }}-install
|
||||
- name: Build fizz
|
||||
if: ${{ steps.paths.outputs.fizz_SOURCE && ! steps.restore_fizz.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests fizz
|
||||
- name: Build mvfst
|
||||
- name: Save fizz to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.fizz_SOURCE && ! steps.restore_fizz.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.fizz_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.fizz_CACHE_KEY }}-install
|
||||
- name: Restore mvfst from cache
|
||||
id: restore_mvfst
|
||||
if: ${{ steps.paths.outputs.mvfst_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.mvfst_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.mvfst_CACHE_KEY }}-install
|
||||
- name: Build mvfst
|
||||
if: ${{ steps.paths.outputs.mvfst_SOURCE && ! steps.restore_mvfst.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests mvfst
|
||||
- name: Build wangle
|
||||
- name: Save mvfst to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.mvfst_SOURCE && ! steps.restore_mvfst.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.mvfst_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.mvfst_CACHE_KEY }}-install
|
||||
- name: Restore wangle from cache
|
||||
id: restore_wangle
|
||||
if: ${{ steps.paths.outputs.wangle_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.wangle_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.wangle_CACHE_KEY }}-install
|
||||
- name: Build wangle
|
||||
if: ${{ steps.paths.outputs.wangle_SOURCE && ! steps.restore_wangle.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests wangle
|
||||
- name: Save wangle to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.wangle_SOURCE && ! steps.restore_wangle.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.wangle_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.wangle_CACHE_KEY }}-install
|
||||
- name: Build proxygen
|
||||
run: python3 build/fbcode_builder/getdeps.py build --src-dir=. proxygen --project-install-prefix proxygen:/usr/local
|
||||
- name: Copy artifacts
|
||||
|
405
.github/workflows/getdeps_mac.yml
vendored
405
.github/workflows/getdeps_mac.yml
vendored
@@ -102,87 +102,438 @@ jobs:
|
||||
- name: Fetch wangle
|
||||
if: ${{ steps.paths.outputs.wangle_SOURCE }}
|
||||
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests wangle
|
||||
- name: Build ninja
|
||||
- name: Restore ninja from cache
|
||||
id: restore_ninja
|
||||
if: ${{ steps.paths.outputs.ninja_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.ninja_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.ninja_CACHE_KEY }}-install
|
||||
- name: Build ninja
|
||||
if: ${{ steps.paths.outputs.ninja_SOURCE && ! steps.restore_ninja.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests ninja
|
||||
- name: Build cmake
|
||||
- name: Save ninja to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.ninja_SOURCE && ! steps.restore_ninja.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.ninja_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.ninja_CACHE_KEY }}-install
|
||||
- name: Restore cmake from cache
|
||||
id: restore_cmake
|
||||
if: ${{ steps.paths.outputs.cmake_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.cmake_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.cmake_CACHE_KEY }}-install
|
||||
- name: Build cmake
|
||||
if: ${{ steps.paths.outputs.cmake_SOURCE && ! steps.restore_cmake.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests cmake
|
||||
- name: Build zlib
|
||||
- name: Save cmake to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.cmake_SOURCE && ! steps.restore_cmake.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.cmake_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.cmake_CACHE_KEY }}-install
|
||||
- name: Restore zlib from cache
|
||||
id: restore_zlib
|
||||
if: ${{ steps.paths.outputs.zlib_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.zlib_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.zlib_CACHE_KEY }}-install
|
||||
- name: Build zlib
|
||||
if: ${{ steps.paths.outputs.zlib_SOURCE && ! steps.restore_zlib.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests zlib
|
||||
- name: Build zstd
|
||||
- name: Save zlib to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.zlib_SOURCE && ! steps.restore_zlib.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.zlib_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.zlib_CACHE_KEY }}-install
|
||||
- name: Restore zstd from cache
|
||||
id: restore_zstd
|
||||
if: ${{ steps.paths.outputs.zstd_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.zstd_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.zstd_CACHE_KEY }}-install
|
||||
- name: Build zstd
|
||||
if: ${{ steps.paths.outputs.zstd_SOURCE && ! steps.restore_zstd.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests zstd
|
||||
- name: Build boost
|
||||
- name: Save zstd to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.zstd_SOURCE && ! steps.restore_zstd.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.zstd_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.zstd_CACHE_KEY }}-install
|
||||
- name: Restore boost from cache
|
||||
id: restore_boost
|
||||
if: ${{ steps.paths.outputs.boost_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.boost_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.boost_CACHE_KEY }}-install
|
||||
- name: Build boost
|
||||
if: ${{ steps.paths.outputs.boost_SOURCE && ! steps.restore_boost.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests boost
|
||||
- name: Build double-conversion
|
||||
- name: Save boost to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.boost_SOURCE && ! steps.restore_boost.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.boost_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.boost_CACHE_KEY }}-install
|
||||
- name: Restore double-conversion from cache
|
||||
id: restore_double-conversion
|
||||
if: ${{ steps.paths.outputs.double-conversion_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.double-conversion_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.double-conversion_CACHE_KEY }}-install
|
||||
- name: Build double-conversion
|
||||
if: ${{ steps.paths.outputs.double-conversion_SOURCE && ! steps.restore_double-conversion.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests double-conversion
|
||||
- name: Build fast_float
|
||||
- name: Save double-conversion to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.double-conversion_SOURCE && ! steps.restore_double-conversion.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.double-conversion_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.double-conversion_CACHE_KEY }}-install
|
||||
- name: Restore fast_float from cache
|
||||
id: restore_fast_float
|
||||
if: ${{ steps.paths.outputs.fast_float_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.fast_float_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.fast_float_CACHE_KEY }}-install
|
||||
- name: Build fast_float
|
||||
if: ${{ steps.paths.outputs.fast_float_SOURCE && ! steps.restore_fast_float.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests fast_float
|
||||
- name: Build fmt
|
||||
- name: Save fast_float to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.fast_float_SOURCE && ! steps.restore_fast_float.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.fast_float_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.fast_float_CACHE_KEY }}-install
|
||||
- name: Restore fmt from cache
|
||||
id: restore_fmt
|
||||
if: ${{ steps.paths.outputs.fmt_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.fmt_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.fmt_CACHE_KEY }}-install
|
||||
- name: Build fmt
|
||||
if: ${{ steps.paths.outputs.fmt_SOURCE && ! steps.restore_fmt.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests fmt
|
||||
- name: Build gflags
|
||||
- name: Save fmt to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.fmt_SOURCE && ! steps.restore_fmt.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.fmt_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.fmt_CACHE_KEY }}-install
|
||||
- name: Restore gflags from cache
|
||||
id: restore_gflags
|
||||
if: ${{ steps.paths.outputs.gflags_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.gflags_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.gflags_CACHE_KEY }}-install
|
||||
- name: Build gflags
|
||||
if: ${{ steps.paths.outputs.gflags_SOURCE && ! steps.restore_gflags.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests gflags
|
||||
- name: Build glog
|
||||
- name: Save gflags to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.gflags_SOURCE && ! steps.restore_gflags.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.gflags_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.gflags_CACHE_KEY }}-install
|
||||
- name: Restore glog from cache
|
||||
id: restore_glog
|
||||
if: ${{ steps.paths.outputs.glog_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.glog_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.glog_CACHE_KEY }}-install
|
||||
- name: Build glog
|
||||
if: ${{ steps.paths.outputs.glog_SOURCE && ! steps.restore_glog.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests glog
|
||||
- name: Build googletest
|
||||
- name: Save glog to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.glog_SOURCE && ! steps.restore_glog.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.glog_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.glog_CACHE_KEY }}-install
|
||||
- name: Restore googletest from cache
|
||||
id: restore_googletest
|
||||
if: ${{ steps.paths.outputs.googletest_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.googletest_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.googletest_CACHE_KEY }}-install
|
||||
- name: Build googletest
|
||||
if: ${{ steps.paths.outputs.googletest_SOURCE && ! steps.restore_googletest.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests googletest
|
||||
- name: Build libdwarf
|
||||
- name: Save googletest to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.googletest_SOURCE && ! steps.restore_googletest.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.googletest_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.googletest_CACHE_KEY }}-install
|
||||
- name: Restore libdwarf from cache
|
||||
id: restore_libdwarf
|
||||
if: ${{ steps.paths.outputs.libdwarf_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libdwarf_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libdwarf_CACHE_KEY }}-install
|
||||
- name: Build libdwarf
|
||||
if: ${{ steps.paths.outputs.libdwarf_SOURCE && ! steps.restore_libdwarf.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libdwarf
|
||||
- name: Build lz4
|
||||
- name: Save libdwarf to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.libdwarf_SOURCE && ! steps.restore_libdwarf.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libdwarf_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libdwarf_CACHE_KEY }}-install
|
||||
- name: Restore lz4 from cache
|
||||
id: restore_lz4
|
||||
if: ${{ steps.paths.outputs.lz4_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.lz4_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.lz4_CACHE_KEY }}-install
|
||||
- name: Build lz4
|
||||
if: ${{ steps.paths.outputs.lz4_SOURCE && ! steps.restore_lz4.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests lz4
|
||||
- name: Build openssl
|
||||
- name: Save lz4 to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.lz4_SOURCE && ! steps.restore_lz4.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.lz4_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.lz4_CACHE_KEY }}-install
|
||||
- name: Restore openssl from cache
|
||||
id: restore_openssl
|
||||
if: ${{ steps.paths.outputs.openssl_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.openssl_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.openssl_CACHE_KEY }}-install
|
||||
- name: Build openssl
|
||||
if: ${{ steps.paths.outputs.openssl_SOURCE && ! steps.restore_openssl.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests openssl
|
||||
- name: Build snappy
|
||||
- name: Save openssl to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.openssl_SOURCE && ! steps.restore_openssl.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.openssl_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.openssl_CACHE_KEY }}-install
|
||||
- name: Restore snappy from cache
|
||||
id: restore_snappy
|
||||
if: ${{ steps.paths.outputs.snappy_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.snappy_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.snappy_CACHE_KEY }}-install
|
||||
- name: Build snappy
|
||||
if: ${{ steps.paths.outputs.snappy_SOURCE && ! steps.restore_snappy.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests snappy
|
||||
- name: Build libevent
|
||||
- name: Save snappy to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.snappy_SOURCE && ! steps.restore_snappy.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.snappy_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.snappy_CACHE_KEY }}-install
|
||||
- name: Restore libevent from cache
|
||||
id: restore_libevent
|
||||
if: ${{ steps.paths.outputs.libevent_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libevent_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libevent_CACHE_KEY }}-install
|
||||
- name: Build libevent
|
||||
if: ${{ steps.paths.outputs.libevent_SOURCE && ! steps.restore_libevent.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libevent
|
||||
- name: Build liboqs
|
||||
- name: Save libevent to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.libevent_SOURCE && ! steps.restore_libevent.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libevent_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libevent_CACHE_KEY }}-install
|
||||
- name: Restore liboqs from cache
|
||||
id: restore_liboqs
|
||||
if: ${{ steps.paths.outputs.liboqs_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.liboqs_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.liboqs_CACHE_KEY }}-install
|
||||
- name: Build liboqs
|
||||
if: ${{ steps.paths.outputs.liboqs_SOURCE && ! steps.restore_liboqs.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests liboqs
|
||||
- name: Build autoconf
|
||||
- name: Save liboqs to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.liboqs_SOURCE && ! steps.restore_liboqs.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.liboqs_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.liboqs_CACHE_KEY }}-install
|
||||
- name: Restore autoconf from cache
|
||||
id: restore_autoconf
|
||||
if: ${{ steps.paths.outputs.autoconf_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.autoconf_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.autoconf_CACHE_KEY }}-install
|
||||
- name: Build autoconf
|
||||
if: ${{ steps.paths.outputs.autoconf_SOURCE && ! steps.restore_autoconf.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests autoconf
|
||||
- name: Build automake
|
||||
- name: Save autoconf to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.autoconf_SOURCE && ! steps.restore_autoconf.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.autoconf_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.autoconf_CACHE_KEY }}-install
|
||||
- name: Restore automake from cache
|
||||
id: restore_automake
|
||||
if: ${{ steps.paths.outputs.automake_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.automake_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.automake_CACHE_KEY }}-install
|
||||
- name: Build automake
|
||||
if: ${{ steps.paths.outputs.automake_SOURCE && ! steps.restore_automake.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests automake
|
||||
- name: Build libtool
|
||||
- name: Save automake to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.automake_SOURCE && ! steps.restore_automake.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.automake_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.automake_CACHE_KEY }}-install
|
||||
- name: Restore libtool from cache
|
||||
id: restore_libtool
|
||||
if: ${{ steps.paths.outputs.libtool_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libtool_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libtool_CACHE_KEY }}-install
|
||||
- name: Build libtool
|
||||
if: ${{ steps.paths.outputs.libtool_SOURCE && ! steps.restore_libtool.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libtool
|
||||
- name: Build gperf
|
||||
- name: Save libtool to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.libtool_SOURCE && ! steps.restore_libtool.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libtool_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libtool_CACHE_KEY }}-install
|
||||
- name: Restore gperf from cache
|
||||
id: restore_gperf
|
||||
if: ${{ steps.paths.outputs.gperf_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.gperf_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.gperf_CACHE_KEY }}-install
|
||||
- name: Build gperf
|
||||
if: ${{ steps.paths.outputs.gperf_SOURCE && ! steps.restore_gperf.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests gperf
|
||||
- name: Build libsodium
|
||||
- name: Save gperf to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.gperf_SOURCE && ! steps.restore_gperf.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.gperf_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.gperf_CACHE_KEY }}-install
|
||||
- name: Restore libsodium from cache
|
||||
id: restore_libsodium
|
||||
if: ${{ steps.paths.outputs.libsodium_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libsodium_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libsodium_CACHE_KEY }}-install
|
||||
- name: Build libsodium
|
||||
if: ${{ steps.paths.outputs.libsodium_SOURCE && ! steps.restore_libsodium.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests libsodium
|
||||
- name: Build xz
|
||||
- name: Save libsodium to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.libsodium_SOURCE && ! steps.restore_libsodium.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.libsodium_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.libsodium_CACHE_KEY }}-install
|
||||
- name: Restore xz from cache
|
||||
id: restore_xz
|
||||
if: ${{ steps.paths.outputs.xz_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.xz_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.xz_CACHE_KEY }}-install
|
||||
- name: Build xz
|
||||
if: ${{ steps.paths.outputs.xz_SOURCE && ! steps.restore_xz.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests xz
|
||||
- name: Build folly
|
||||
- name: Save xz to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.xz_SOURCE && ! steps.restore_xz.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.xz_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.xz_CACHE_KEY }}-install
|
||||
- name: Restore folly from cache
|
||||
id: restore_folly
|
||||
if: ${{ steps.paths.outputs.folly_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.folly_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.folly_CACHE_KEY }}-install
|
||||
- name: Build folly
|
||||
if: ${{ steps.paths.outputs.folly_SOURCE && ! steps.restore_folly.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests folly
|
||||
- name: Build fizz
|
||||
- name: Save folly to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.folly_SOURCE && ! steps.restore_folly.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.folly_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.folly_CACHE_KEY }}-install
|
||||
- name: Restore fizz from cache
|
||||
id: restore_fizz
|
||||
if: ${{ steps.paths.outputs.fizz_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.fizz_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.fizz_CACHE_KEY }}-install
|
||||
- name: Build fizz
|
||||
if: ${{ steps.paths.outputs.fizz_SOURCE && ! steps.restore_fizz.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests fizz
|
||||
- name: Build mvfst
|
||||
- name: Save fizz to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.fizz_SOURCE && ! steps.restore_fizz.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.fizz_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.fizz_CACHE_KEY }}-install
|
||||
- name: Restore mvfst from cache
|
||||
id: restore_mvfst
|
||||
if: ${{ steps.paths.outputs.mvfst_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.mvfst_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.mvfst_CACHE_KEY }}-install
|
||||
- name: Build mvfst
|
||||
if: ${{ steps.paths.outputs.mvfst_SOURCE && ! steps.restore_mvfst.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests mvfst
|
||||
- name: Build wangle
|
||||
- name: Save mvfst to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.mvfst_SOURCE && ! steps.restore_mvfst.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.mvfst_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.mvfst_CACHE_KEY }}-install
|
||||
- name: Restore wangle from cache
|
||||
id: restore_wangle
|
||||
if: ${{ steps.paths.outputs.wangle_SOURCE }}
|
||||
uses: actions/cache/restore@v4
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.wangle_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.wangle_CACHE_KEY }}-install
|
||||
- name: Build wangle
|
||||
if: ${{ steps.paths.outputs.wangle_SOURCE && ! steps.restore_wangle.outputs.cache-hit }}
|
||||
run: python3 build/fbcode_builder/getdeps.py build --no-tests wangle
|
||||
- name: Save wangle to cache
|
||||
uses: actions/cache/save@v4
|
||||
if: ${{ steps.paths.outputs.wangle_SOURCE && ! steps.restore_wangle.outputs.cache-hit }}
|
||||
with:
|
||||
path: ${{ steps.paths.outputs.wangle_INSTALL }}
|
||||
key: ${{ steps.paths.outputs.wangle_CACHE_KEY }}-install
|
||||
- name: Build proxygen
|
||||
run: python3 build/fbcode_builder/getdeps.py build --src-dir=. proxygen --project-install-prefix proxygen:/usr/local
|
||||
- name: Copy artifacts
|
||||
|
@@ -245,16 +245,16 @@ class CachedProject(object):
|
||||
self.loader = loader
|
||||
self.cache = cache
|
||||
|
||||
self.cache_file_name = "-".join(
|
||||
self.cache_key = "-".join(
|
||||
(
|
||||
m.name,
|
||||
self.ctx.get("os"),
|
||||
self.ctx.get("distro") or "none",
|
||||
self.ctx.get("distro_vers") or "none",
|
||||
self.project_hash,
|
||||
"buildcache.tgz",
|
||||
)
|
||||
)
|
||||
self.cache_file_name = self.cache_key + "-buildcache.tgz"
|
||||
|
||||
def is_cacheable(self):
|
||||
"""We only cache third party projects"""
|
||||
@@ -560,6 +560,7 @@ class QueryPathsCmd(ProjectCmdBase):
|
||||
else:
|
||||
manifests = [manifest]
|
||||
|
||||
cache = cache_module.create_cache()
|
||||
for m in manifests:
|
||||
fetcher = loader.create_fetcher(m)
|
||||
if isinstance(fetcher, SystemPackageFetcher):
|
||||
@@ -569,6 +570,10 @@ class QueryPathsCmd(ProjectCmdBase):
|
||||
continue
|
||||
src_dir = fetcher.get_src_dir()
|
||||
print(f"{m.name}_SOURCE={src_dir}")
|
||||
inst_dir = loader.get_project_install_dir_respecting_install_prefix(m)
|
||||
print(f"{m.name}_INSTALL={inst_dir}")
|
||||
cached_project = CachedProject(cache, loader, m)
|
||||
print(f"{m.name}_CACHE_KEY={cached_project.cache_key}")
|
||||
|
||||
def setup_project_cmd_parser(self, parser):
|
||||
parser.add_argument(
|
||||
@@ -1235,9 +1240,29 @@ jobs:
|
||||
src_dir_arg = "--src-dir=. "
|
||||
has_same_repo_dep = True
|
||||
|
||||
if args.use_build_cache and not src_dir_arg:
|
||||
out.write(f" - name: Restore {m.name} from cache\n")
|
||||
out.write(f" id: restore_{m.name}\n")
|
||||
# only need to restore if would build it
|
||||
out.write(
|
||||
f" if: ${{{{ steps.paths.outputs.{m.name}_SOURCE }}}}\n"
|
||||
)
|
||||
out.write(" uses: actions/cache/restore@v4\n")
|
||||
out.write(" with:\n")
|
||||
out.write(
|
||||
f" path: ${{{{ steps.paths.outputs.{m.name}_INSTALL }}}}\n"
|
||||
)
|
||||
out.write(
|
||||
f" key: ${{{{ steps.paths.outputs.{m.name}_CACHE_KEY }}}}-install\n"
|
||||
)
|
||||
|
||||
out.write(" - name: Build %s\n" % m.name)
|
||||
if not src_dir_arg:
|
||||
# only run the step if needed
|
||||
if args.use_build_cache:
|
||||
out.write(
|
||||
f" if: ${{{{ steps.paths.outputs.{m.name}_SOURCE && ! steps.restore_{m.name}.outputs.cache-hit }}}}\n"
|
||||
)
|
||||
else:
|
||||
out.write(
|
||||
f" if: ${{{{ steps.paths.outputs.{m.name}_SOURCE }}}}\n"
|
||||
)
|
||||
@@ -1245,6 +1270,20 @@ jobs:
|
||||
f" run: {getdepscmd}{allow_sys_arg} build {build_type_arg}{src_dir_arg}{free_up_disk}--no-tests {m.name}\n"
|
||||
)
|
||||
|
||||
if args.use_build_cache and not src_dir_arg:
|
||||
out.write(f" - name: Save {m.name} to cache\n")
|
||||
out.write(" uses: actions/cache/save@v4\n")
|
||||
out.write(
|
||||
f" if: ${{{{ steps.paths.outputs.{m.name}_SOURCE && ! steps.restore_{m.name}.outputs.cache-hit }}}}\n"
|
||||
)
|
||||
out.write(" with:\n")
|
||||
out.write(
|
||||
f" path: ${{{{ steps.paths.outputs.{m.name}_INSTALL }}}}\n"
|
||||
)
|
||||
out.write(
|
||||
f" key: ${{{{ steps.paths.outputs.{m.name}_CACHE_KEY }}}}-install\n"
|
||||
)
|
||||
|
||||
out.write(" - name: Build %s\n" % manifest.name)
|
||||
|
||||
project_prefix = ""
|
||||
@@ -1363,6 +1402,13 @@ jobs:
|
||||
action="store",
|
||||
default=None,
|
||||
)
|
||||
parser.add_argument(
|
||||
"--no-build-cache",
|
||||
action="store_false",
|
||||
default=True,
|
||||
dest="use_build_cache",
|
||||
help="Do not attempt to use the build cache.",
|
||||
)
|
||||
|
||||
|
||||
def get_arg_var_name(args):
|
||||
|
@@ -82,6 +82,14 @@ class CargoBuilder(BuilderBase):
|
||||
shutil.rmtree(dst)
|
||||
simple_copytree(src, dst)
|
||||
|
||||
def recreate_linked_dir(self, src, dst) -> None:
|
||||
if os.path.isdir(dst):
|
||||
if os.path.islink(dst):
|
||||
os.remove(dst)
|
||||
elif os.path.isdir(dst):
|
||||
shutil.rmtree(dst)
|
||||
os.symlink(src, dst)
|
||||
|
||||
def cargo_config_file(self):
|
||||
build_source_dir = self.build_dir
|
||||
if self.cargo_config_file_subdir:
|
||||
@@ -191,7 +199,9 @@ incremental = false
|
||||
],
|
||||
)
|
||||
|
||||
self.recreate_dir(build_source_dir, os.path.join(self.inst_dir, "source"))
|
||||
self.recreate_linked_dir(
|
||||
build_source_dir, os.path.join(self.inst_dir, "source")
|
||||
)
|
||||
|
||||
def run_tests(self, schedule_type, owner, test_filter, retry, no_testpilot) -> None:
|
||||
if test_filter:
|
||||
|
Reference in New Issue
Block a user