diff --git a/.github/workflows/getdeps_linux.yml b/.github/workflows/getdeps_linux.yml index 2309ad3b86a0..723569aa10ce 100644 --- a/.github/workflows/getdeps_linux.yml +++ b/.github/workflows/getdeps_linux.yml @@ -144,123 +144,630 @@ jobs: - name: Fetch edencommon if: ${{ steps.paths.outputs.edencommon_SOURCE }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests edencommon - - name: Build boost + - 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 --allow-system-packages build --no-tests boost - - name: Build ninja + - 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 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 --allow-system-packages 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 --allow-system-packages build --no-tests cmake - - name: Build cpptoml + - 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 cpptoml from cache + id: restore_cpptoml if: ${{ steps.paths.outputs.cpptoml_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.cpptoml_INSTALL }} + key: ${{ steps.paths.outputs.cpptoml_CACHE_KEY }}-install + - name: Build cpptoml + if: ${{ steps.paths.outputs.cpptoml_SOURCE && ! steps.restore_cpptoml.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests cpptoml - - name: Build fmt + - name: Save cpptoml to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.cpptoml_SOURCE && ! steps.restore_cpptoml.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.cpptoml_INSTALL }} + key: ${{ steps.paths.outputs.cpptoml_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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages build --no-tests googletest - - name: Build xxhash + - 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 xxhash from cache + id: restore_xxhash if: ${{ steps.paths.outputs.xxhash_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.xxhash_INSTALL }} + key: ${{ steps.paths.outputs.xxhash_CACHE_KEY }}-install + - name: Build xxhash + if: ${{ steps.paths.outputs.xxhash_SOURCE && ! steps.restore_xxhash.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests xxhash - - name: Build zstd + - name: Save xxhash to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.xxhash_SOURCE && ! steps.restore_xxhash.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.xxhash_INSTALL }} + key: ${{ steps.paths.outputs.xxhash_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 --allow-system-packages build --no-tests zstd - - name: Build double-conversion + - 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 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 --allow-system-packages 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 --allow-system-packages build --no-tests fast_float - - name: Build libdwarf + - 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 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages build --no-tests snappy - - name: Build pcre2 + - 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 pcre2 from cache + id: restore_pcre2 if: ${{ steps.paths.outputs.pcre2_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.pcre2_INSTALL }} + key: ${{ steps.paths.outputs.pcre2_CACHE_KEY }}-install + - name: Build pcre2 + if: ${{ steps.paths.outputs.pcre2_SOURCE && ! steps.restore_pcre2.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests pcre2 - - name: Build python-setuptools + - name: Save pcre2 to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.pcre2_SOURCE && ! steps.restore_pcre2.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.pcre2_INSTALL }} + key: ${{ steps.paths.outputs.pcre2_CACHE_KEY }}-install + - name: Restore python-setuptools from cache + id: restore_python-setuptools if: ${{ steps.paths.outputs.python-setuptools_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.python-setuptools_INSTALL }} + key: ${{ steps.paths.outputs.python-setuptools_CACHE_KEY }}-install + - name: Build python-setuptools + if: ${{ steps.paths.outputs.python-setuptools_SOURCE && ! steps.restore_python-setuptools.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests python-setuptools - - name: Build zlib + - name: Save python-setuptools to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.python-setuptools_SOURCE && ! steps.restore_python-setuptools.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.python-setuptools_INSTALL }} + key: ${{ steps.paths.outputs.python-setuptools_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 --allow-system-packages build --no-tests zlib - - name: Build bz2 + - 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 bz2 from cache + id: restore_bz2 if: ${{ steps.paths.outputs.bz2_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.bz2_INSTALL }} + key: ${{ steps.paths.outputs.bz2_CACHE_KEY }}-install + - name: Build bz2 + if: ${{ steps.paths.outputs.bz2_SOURCE && ! steps.restore_bz2.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests bz2 - - name: Build openssl + - name: Save bz2 to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.bz2_SOURCE && ! steps.restore_bz2.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.bz2_INSTALL }} + key: ${{ steps.paths.outputs.bz2_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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages build --no-tests libtool - - name: Build libsodium + - 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 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 --allow-system-packages build --no-tests libsodium - - name: Build libiberty + - 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 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 --allow-system-packages build --no-tests libiberty - - name: Build libunwind + - 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 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages build --no-tests mvfst - - name: Build libffi + - 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 libffi from cache + id: restore_libffi if: ${{ steps.paths.outputs.libffi_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.libffi_INSTALL }} + key: ${{ steps.paths.outputs.libffi_CACHE_KEY }}-install + - name: Build libffi + if: ${{ steps.paths.outputs.libffi_SOURCE && ! steps.restore_libffi.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests libffi - - name: Build ncurses + - name: Save libffi to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.libffi_SOURCE && ! steps.restore_libffi.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.libffi_INSTALL }} + key: ${{ steps.paths.outputs.libffi_CACHE_KEY }}-install + - name: Restore ncurses from cache + id: restore_ncurses if: ${{ steps.paths.outputs.ncurses_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.ncurses_INSTALL }} + key: ${{ steps.paths.outputs.ncurses_CACHE_KEY }}-install + - name: Build ncurses + if: ${{ steps.paths.outputs.ncurses_SOURCE && ! steps.restore_ncurses.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests ncurses - - name: Build python + - name: Save ncurses to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.ncurses_SOURCE && ! steps.restore_ncurses.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.ncurses_INSTALL }} + key: ${{ steps.paths.outputs.ncurses_CACHE_KEY }}-install + - name: Restore python from cache + id: restore_python if: ${{ steps.paths.outputs.python_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.python_INSTALL }} + key: ${{ steps.paths.outputs.python_CACHE_KEY }}-install + - name: Build python + if: ${{ steps.paths.outputs.python_SOURCE && ! steps.restore_python.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests python - - name: Build wangle + - name: Save python to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.python_SOURCE && ! steps.restore_python.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.python_INSTALL }} + key: ${{ steps.paths.outputs.python_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 --allow-system-packages build --no-tests wangle - - name: Build fbthrift + - 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: Restore fbthrift from cache + id: restore_fbthrift if: ${{ steps.paths.outputs.fbthrift_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.fbthrift_INSTALL }} + key: ${{ steps.paths.outputs.fbthrift_CACHE_KEY }}-install + - name: Build fbthrift + if: ${{ steps.paths.outputs.fbthrift_SOURCE && ! steps.restore_fbthrift.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fbthrift - - name: Build fb303 + - name: Save fbthrift to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.fbthrift_SOURCE && ! steps.restore_fbthrift.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.fbthrift_INSTALL }} + key: ${{ steps.paths.outputs.fbthrift_CACHE_KEY }}-install + - name: Restore fb303 from cache + id: restore_fb303 if: ${{ steps.paths.outputs.fb303_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.fb303_INSTALL }} + key: ${{ steps.paths.outputs.fb303_CACHE_KEY }}-install + - name: Build fb303 + if: ${{ steps.paths.outputs.fb303_SOURCE && ! steps.restore_fb303.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fb303 - - name: Build edencommon + - name: Save fb303 to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.fb303_SOURCE && ! steps.restore_fb303.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.fb303_INSTALL }} + key: ${{ steps.paths.outputs.fb303_CACHE_KEY }}-install + - name: Restore edencommon from cache + id: restore_edencommon if: ${{ steps.paths.outputs.edencommon_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.edencommon_INSTALL }} + key: ${{ steps.paths.outputs.edencommon_CACHE_KEY }}-install + - name: Build edencommon + if: ${{ steps.paths.outputs.edencommon_SOURCE && ! steps.restore_edencommon.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests edencommon + - name: Save edencommon to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.edencommon_SOURCE && ! steps.restore_edencommon.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.edencommon_INSTALL }} + key: ${{ steps.paths.outputs.edencommon_CACHE_KEY }}-install - name: Build watchman run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --src-dir=. watchman --project-install-prefix watchman:/usr/local - name: Copy artifacts diff --git a/.github/workflows/getdeps_mac.yml b/.github/workflows/getdeps_mac.yml index 67c1a5bfeb00..9e6423a1a59f 100644 --- a/.github/workflows/getdeps_mac.yml +++ b/.github/workflows/getdeps_mac.yml @@ -124,105 +124,534 @@ jobs: - name: Fetch edencommon if: ${{ steps.paths.outputs.edencommon_SOURCE }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests edencommon - - name: Build boost + - 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 --allow-system-packages build --no-tests boost - - name: Build ninja + - 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 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 --allow-system-packages 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 --allow-system-packages build --no-tests cmake - - name: Build cpptoml + - 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 cpptoml from cache + id: restore_cpptoml if: ${{ steps.paths.outputs.cpptoml_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.cpptoml_INSTALL }} + key: ${{ steps.paths.outputs.cpptoml_CACHE_KEY }}-install + - name: Build cpptoml + if: ${{ steps.paths.outputs.cpptoml_SOURCE && ! steps.restore_cpptoml.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests cpptoml - - name: Build fmt + - name: Save cpptoml to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.cpptoml_SOURCE && ! steps.restore_cpptoml.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.cpptoml_INSTALL }} + key: ${{ steps.paths.outputs.cpptoml_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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages build --no-tests googletest - - name: Build xxhash + - 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 xxhash from cache + id: restore_xxhash if: ${{ steps.paths.outputs.xxhash_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.xxhash_INSTALL }} + key: ${{ steps.paths.outputs.xxhash_CACHE_KEY }}-install + - name: Build xxhash + if: ${{ steps.paths.outputs.xxhash_SOURCE && ! steps.restore_xxhash.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests xxhash - - name: Build zstd + - name: Save xxhash to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.xxhash_SOURCE && ! steps.restore_xxhash.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.xxhash_INSTALL }} + key: ${{ steps.paths.outputs.xxhash_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 --allow-system-packages build --no-tests zstd - - name: Build double-conversion + - 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 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 --allow-system-packages 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 --allow-system-packages build --no-tests fast_float - - name: Build libdwarf + - 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 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages build --no-tests snappy - - name: Build pcre2 + - 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 pcre2 from cache + id: restore_pcre2 if: ${{ steps.paths.outputs.pcre2_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.pcre2_INSTALL }} + key: ${{ steps.paths.outputs.pcre2_CACHE_KEY }}-install + - name: Build pcre2 + if: ${{ steps.paths.outputs.pcre2_SOURCE && ! steps.restore_pcre2.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests pcre2 - - name: Build python-setuptools + - name: Save pcre2 to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.pcre2_SOURCE && ! steps.restore_pcre2.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.pcre2_INSTALL }} + key: ${{ steps.paths.outputs.pcre2_CACHE_KEY }}-install + - name: Restore python-setuptools from cache + id: restore_python-setuptools if: ${{ steps.paths.outputs.python-setuptools_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.python-setuptools_INSTALL }} + key: ${{ steps.paths.outputs.python-setuptools_CACHE_KEY }}-install + - name: Build python-setuptools + if: ${{ steps.paths.outputs.python-setuptools_SOURCE && ! steps.restore_python-setuptools.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests python-setuptools - - name: Build libevent + - name: Save python-setuptools to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.python-setuptools_SOURCE && ! steps.restore_python-setuptools.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.python-setuptools_INSTALL }} + key: ${{ steps.paths.outputs.python-setuptools_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 --allow-system-packages 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 --allow-system-packages build --no-tests liboqs - - name: Build zlib + - 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 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 --allow-system-packages build --no-tests zlib - - name: Build autoconf + - 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 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages build --no-tests libtool - - name: Build libsodium + - 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 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages 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 --allow-system-packages build --no-tests wangle - - name: Build fbthrift + - 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: Restore fbthrift from cache + id: restore_fbthrift if: ${{ steps.paths.outputs.fbthrift_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.fbthrift_INSTALL }} + key: ${{ steps.paths.outputs.fbthrift_CACHE_KEY }}-install + - name: Build fbthrift + if: ${{ steps.paths.outputs.fbthrift_SOURCE && ! steps.restore_fbthrift.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fbthrift - - name: Build fb303 + - name: Save fbthrift to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.fbthrift_SOURCE && ! steps.restore_fbthrift.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.fbthrift_INSTALL }} + key: ${{ steps.paths.outputs.fbthrift_CACHE_KEY }}-install + - name: Restore fb303 from cache + id: restore_fb303 if: ${{ steps.paths.outputs.fb303_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.fb303_INSTALL }} + key: ${{ steps.paths.outputs.fb303_CACHE_KEY }}-install + - name: Build fb303 + if: ${{ steps.paths.outputs.fb303_SOURCE && ! steps.restore_fb303.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests fb303 - - name: Build edencommon + - name: Save fb303 to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.fb303_SOURCE && ! steps.restore_fb303.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.fb303_INSTALL }} + key: ${{ steps.paths.outputs.fb303_CACHE_KEY }}-install + - name: Restore edencommon from cache + id: restore_edencommon if: ${{ steps.paths.outputs.edencommon_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.edencommon_INSTALL }} + key: ${{ steps.paths.outputs.edencommon_CACHE_KEY }}-install + - name: Build edencommon + if: ${{ steps.paths.outputs.edencommon_SOURCE && ! steps.restore_edencommon.outputs.cache-hit }} run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --no-tests edencommon + - name: Save edencommon to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.edencommon_SOURCE && ! steps.restore_edencommon.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.edencommon_INSTALL }} + key: ${{ steps.paths.outputs.edencommon_CACHE_KEY }}-install - name: Build watchman run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --src-dir=. watchman --project-install-prefix watchman:/usr/local - name: Copy artifacts diff --git a/.github/workflows/getdeps_windows.yml b/.github/workflows/getdeps_windows.yml index a337cf93a096..c273020cfcfd 100644 --- a/.github/workflows/getdeps_windows.yml +++ b/.github/workflows/getdeps_windows.yml @@ -126,99 +126,502 @@ jobs: - name: Fetch edencommon if: ${{ steps.paths.outputs.edencommon_SOURCE }} run: python build/fbcode_builder/getdeps.py fetch --no-tests edencommon - - name: Build boost + - 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: python build/fbcode_builder/getdeps.py build --no-tests boost - - name: Build ninja + - 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 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: python 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: python build/fbcode_builder/getdeps.py build --no-tests cmake - - name: Build cpptoml + - 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 cpptoml from cache + id: restore_cpptoml if: ${{ steps.paths.outputs.cpptoml_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.cpptoml_INSTALL }} + key: ${{ steps.paths.outputs.cpptoml_CACHE_KEY }}-install + - name: Build cpptoml + if: ${{ steps.paths.outputs.cpptoml_SOURCE && ! steps.restore_cpptoml.outputs.cache-hit }} run: python build/fbcode_builder/getdeps.py build --no-tests cpptoml - - name: Build fmt + - name: Save cpptoml to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.cpptoml_SOURCE && ! steps.restore_cpptoml.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.cpptoml_INSTALL }} + key: ${{ steps.paths.outputs.cpptoml_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: python 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: python 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: python 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: python build/fbcode_builder/getdeps.py build --no-tests googletest - - name: Build libsodium + - 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 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: python build/fbcode_builder/getdeps.py build --no-tests libsodium - - name: Build xxhash + - 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 xxhash from cache + id: restore_xxhash if: ${{ steps.paths.outputs.xxhash_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.xxhash_INSTALL }} + key: ${{ steps.paths.outputs.xxhash_CACHE_KEY }}-install + - name: Build xxhash + if: ${{ steps.paths.outputs.xxhash_SOURCE && ! steps.restore_xxhash.outputs.cache-hit }} run: python build/fbcode_builder/getdeps.py build --no-tests xxhash - - name: Build zstd + - name: Save xxhash to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.xxhash_SOURCE && ! steps.restore_xxhash.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.xxhash_INSTALL }} + key: ${{ steps.paths.outputs.xxhash_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: python build/fbcode_builder/getdeps.py build --no-tests zstd - - name: Build double-conversion + - 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 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: python 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: python build/fbcode_builder/getdeps.py build --no-tests fast_float - - name: Build libdwarf + - 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 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: python 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: python 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: python build/fbcode_builder/getdeps.py build --no-tests snappy - - name: Build zlib + - 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 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: python build/fbcode_builder/getdeps.py build --no-tests zlib - - name: Build pcre2 + - 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 pcre2 from cache + id: restore_pcre2 if: ${{ steps.paths.outputs.pcre2_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.pcre2_INSTALL }} + key: ${{ steps.paths.outputs.pcre2_CACHE_KEY }}-install + - name: Build pcre2 + if: ${{ steps.paths.outputs.pcre2_SOURCE && ! steps.restore_pcre2.outputs.cache-hit }} run: python build/fbcode_builder/getdeps.py build --no-tests pcre2 - - name: Build python-setuptools + - name: Save pcre2 to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.pcre2_SOURCE && ! steps.restore_pcre2.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.pcre2_INSTALL }} + key: ${{ steps.paths.outputs.pcre2_CACHE_KEY }}-install + - name: Restore python-setuptools from cache + id: restore_python-setuptools if: ${{ steps.paths.outputs.python-setuptools_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.python-setuptools_INSTALL }} + key: ${{ steps.paths.outputs.python-setuptools_CACHE_KEY }}-install + - name: Build python-setuptools + if: ${{ steps.paths.outputs.python-setuptools_SOURCE && ! steps.restore_python-setuptools.outputs.cache-hit }} run: python build/fbcode_builder/getdeps.py build --no-tests python-setuptools - - name: Build jom + - name: Save python-setuptools to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.python-setuptools_SOURCE && ! steps.restore_python-setuptools.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.python-setuptools_INSTALL }} + key: ${{ steps.paths.outputs.python-setuptools_CACHE_KEY }}-install + - name: Restore jom from cache + id: restore_jom if: ${{ steps.paths.outputs.jom_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.jom_INSTALL }} + key: ${{ steps.paths.outputs.jom_CACHE_KEY }}-install + - name: Build jom + if: ${{ steps.paths.outputs.jom_SOURCE && ! steps.restore_jom.outputs.cache-hit }} run: python build/fbcode_builder/getdeps.py build --no-tests jom - - name: Build perl + - name: Save jom to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.jom_SOURCE && ! steps.restore_jom.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.jom_INSTALL }} + key: ${{ steps.paths.outputs.jom_CACHE_KEY }}-install + - name: Restore perl from cache + id: restore_perl if: ${{ steps.paths.outputs.perl_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.perl_INSTALL }} + key: ${{ steps.paths.outputs.perl_CACHE_KEY }}-install + - name: Build perl + if: ${{ steps.paths.outputs.perl_SOURCE && ! steps.restore_perl.outputs.cache-hit }} run: python build/fbcode_builder/getdeps.py build --no-tests perl - - name: Build openssl + - name: Save perl to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.perl_SOURCE && ! steps.restore_perl.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.perl_INSTALL }} + key: ${{ steps.paths.outputs.perl_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: python build/fbcode_builder/getdeps.py build --no-tests openssl - - name: Build libevent + - 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 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: python build/fbcode_builder/getdeps.py build --no-tests libevent - - name: Build folly + - 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 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: python build/fbcode_builder/getdeps.py build --no-tests folly - - name: Build liboqs + - 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 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: python build/fbcode_builder/getdeps.py build --no-tests liboqs - - name: Build fizz + - 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 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: python 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: python 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: python build/fbcode_builder/getdeps.py build --no-tests wangle - - name: Build fbthrift + - 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: Restore fbthrift from cache + id: restore_fbthrift if: ${{ steps.paths.outputs.fbthrift_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.fbthrift_INSTALL }} + key: ${{ steps.paths.outputs.fbthrift_CACHE_KEY }}-install + - name: Build fbthrift + if: ${{ steps.paths.outputs.fbthrift_SOURCE && ! steps.restore_fbthrift.outputs.cache-hit }} run: python build/fbcode_builder/getdeps.py build --no-tests fbthrift - - name: Build fb303 + - name: Save fbthrift to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.fbthrift_SOURCE && ! steps.restore_fbthrift.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.fbthrift_INSTALL }} + key: ${{ steps.paths.outputs.fbthrift_CACHE_KEY }}-install + - name: Restore fb303 from cache + id: restore_fb303 if: ${{ steps.paths.outputs.fb303_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.fb303_INSTALL }} + key: ${{ steps.paths.outputs.fb303_CACHE_KEY }}-install + - name: Build fb303 + if: ${{ steps.paths.outputs.fb303_SOURCE && ! steps.restore_fb303.outputs.cache-hit }} run: python build/fbcode_builder/getdeps.py build --no-tests fb303 - - name: Build edencommon + - name: Save fb303 to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.fb303_SOURCE && ! steps.restore_fb303.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.fb303_INSTALL }} + key: ${{ steps.paths.outputs.fb303_CACHE_KEY }}-install + - name: Restore edencommon from cache + id: restore_edencommon if: ${{ steps.paths.outputs.edencommon_SOURCE }} + uses: actions/cache/restore@v4 + with: + path: ${{ steps.paths.outputs.edencommon_INSTALL }} + key: ${{ steps.paths.outputs.edencommon_CACHE_KEY }}-install + - name: Build edencommon + if: ${{ steps.paths.outputs.edencommon_SOURCE && ! steps.restore_edencommon.outputs.cache-hit }} run: python build/fbcode_builder/getdeps.py build --no-tests edencommon + - name: Save edencommon to cache + uses: actions/cache/save@v4 + if: ${{ steps.paths.outputs.edencommon_SOURCE && ! steps.restore_edencommon.outputs.cache-hit }} + with: + path: ${{ steps.paths.outputs.edencommon_INSTALL }} + key: ${{ steps.paths.outputs.edencommon_CACHE_KEY }}-install - name: Build watchman run: python build/fbcode_builder/getdeps.py build --src-dir=. watchman - name: Copy artifacts diff --git a/build/fbcode_builder/getdeps.py b/build/fbcode_builder/getdeps.py index 138e729e7fff..5efd2efc638a 100755 --- a/build/fbcode_builder/getdeps.py +++ b/build/fbcode_builder/getdeps.py @@ -245,16 +245,16 @@ def __init__(self, cache, loader, m): 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 @@ def run_project_cmd(self, args, loader, manifest): 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 @@ def run_project_cmd(self, args, loader, manifest): 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,16 +1240,50 @@ def write_job_for_platform(self, platform, args): # noqa: C901 src_dir_arg = "--src-dir=. " has_same_repo_dep = True - out.write(" - name: Build %s\n" % m.name) - if not src_dir_arg: - # only run the step if needed + 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: + 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" + ) out.write( 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 @@ def setup_project_cmd_parser(self, parser): 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): diff --git a/build/fbcode_builder/getdeps/cargo.py b/build/fbcode_builder/getdeps/cargo.py index 5bb2ada85c2e..c1d6dae914cd 100644 --- a/build/fbcode_builder/getdeps/cargo.py +++ b/build/fbcode_builder/getdeps/cargo.py @@ -82,6 +82,14 @@ def recreate_dir(self, src, dst) -> None: 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 @@ def _build(self, reconfigure) -> None: ], ) - 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: