1
0
mirror of https://github.com/facebook/proxygen.git synced 2025-08-07 07:02:53 +03:00

skip unnecessary github actions steps

Summary:
X-link: https://github.com/facebookincubator/zstrong/pull/1100

Update generated github actions to only run the fetch and and build steps when there are sources expected for a manifest

For local github actions testing using `act` this speeds up the test runs, and in real github CI it makes it clearer which steps are actually doing something on the given runner (we don't know exactly what it has installed beforehand)

Also set the windows git config the same as on internal CI

Reviewed By: bigfootjon

Differential Revision: D67839708

fbshipit-source-id: 0a60c6fc89e8c6abb2464f879459aa23d5aec969
This commit is contained in:
Alex Hornby
2025-01-06 11:16:30 -08:00
committed by Facebook GitHub Bot
parent f9acda3885
commit ebb3bbc12d
4 changed files with 198 additions and 35 deletions

View File

@@ -18,121 +18,182 @@ jobs:
runs-on: ubuntu-22.04 runs-on: ubuntu-22.04
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- id: paths
name: Query paths
run: python3 build/fbcode_builder/getdeps.py query-paths --recursive --src-dir=. proxygen >> "$GITHUB_OUTPUT"
- name: Fetch ninja - name: Fetch ninja
if: ${{ steps.paths.outputs.ninja_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests ninja run: python3 build/fbcode_builder/getdeps.py fetch --no-tests ninja
- name: Fetch cmake - name: Fetch cmake
if: ${{ steps.paths.outputs.cmake_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests cmake run: python3 build/fbcode_builder/getdeps.py fetch --no-tests cmake
- name: Fetch zlib - name: Fetch zlib
if: ${{ steps.paths.outputs.zlib_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests zlib run: python3 build/fbcode_builder/getdeps.py fetch --no-tests zlib
- name: Fetch zstd - name: Fetch zstd
if: ${{ steps.paths.outputs.zstd_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests zstd run: python3 build/fbcode_builder/getdeps.py fetch --no-tests zstd
- name: Fetch boost - name: Fetch boost
if: ${{ steps.paths.outputs.boost_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests boost run: python3 build/fbcode_builder/getdeps.py fetch --no-tests boost
- name: Fetch double-conversion - name: Fetch double-conversion
if: ${{ steps.paths.outputs.double-conversion_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests double-conversion run: python3 build/fbcode_builder/getdeps.py fetch --no-tests double-conversion
- name: Fetch fast_float - name: Fetch fast_float
if: ${{ steps.paths.outputs.fast_float_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fast_float run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fast_float
- name: Fetch fmt - name: Fetch fmt
if: ${{ steps.paths.outputs.fmt_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fmt run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fmt
- name: Fetch gflags - name: Fetch gflags
if: ${{ steps.paths.outputs.gflags_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gflags run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gflags
- name: Fetch glog - name: Fetch glog
if: ${{ steps.paths.outputs.glog_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests glog run: python3 build/fbcode_builder/getdeps.py fetch --no-tests glog
- name: Fetch googletest - name: Fetch googletest
if: ${{ steps.paths.outputs.googletest_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests googletest run: python3 build/fbcode_builder/getdeps.py fetch --no-tests googletest
- name: Fetch libdwarf - name: Fetch libdwarf
if: ${{ steps.paths.outputs.libdwarf_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libdwarf run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libdwarf
- name: Fetch libevent - name: Fetch libevent
if: ${{ steps.paths.outputs.libevent_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libevent run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libevent
- name: Fetch lz4 - name: Fetch lz4
if: ${{ steps.paths.outputs.lz4_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests lz4 run: python3 build/fbcode_builder/getdeps.py fetch --no-tests lz4
- name: Fetch snappy - name: Fetch snappy
if: ${{ steps.paths.outputs.snappy_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests snappy run: python3 build/fbcode_builder/getdeps.py fetch --no-tests snappy
- name: Fetch openssl - name: Fetch openssl
if: ${{ steps.paths.outputs.openssl_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests openssl run: python3 build/fbcode_builder/getdeps.py fetch --no-tests openssl
- name: Fetch liboqs - name: Fetch liboqs
if: ${{ steps.paths.outputs.liboqs_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests liboqs run: python3 build/fbcode_builder/getdeps.py fetch --no-tests liboqs
- name: Fetch autoconf - name: Fetch autoconf
if: ${{ steps.paths.outputs.autoconf_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests autoconf run: python3 build/fbcode_builder/getdeps.py fetch --no-tests autoconf
- name: Fetch automake - name: Fetch automake
if: ${{ steps.paths.outputs.automake_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests automake run: python3 build/fbcode_builder/getdeps.py fetch --no-tests automake
- name: Fetch libtool - name: Fetch libtool
if: ${{ steps.paths.outputs.libtool_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libtool run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libtool
- name: Fetch gperf - name: Fetch gperf
if: ${{ steps.paths.outputs.gperf_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gperf run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gperf
- name: Fetch libiberty - name: Fetch libiberty
if: ${{ steps.paths.outputs.libiberty_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libiberty run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libiberty
- name: Fetch libsodium - name: Fetch libsodium
if: ${{ steps.paths.outputs.libsodium_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libsodium run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libsodium
- name: Fetch libunwind - name: Fetch libunwind
if: ${{ steps.paths.outputs.libunwind_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libunwind run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libunwind
- name: Fetch xz - name: Fetch xz
if: ${{ steps.paths.outputs.xz_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests xz run: python3 build/fbcode_builder/getdeps.py fetch --no-tests xz
- name: Fetch folly - name: Fetch folly
if: ${{ steps.paths.outputs.folly_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests folly run: python3 build/fbcode_builder/getdeps.py fetch --no-tests folly
- name: Fetch fizz - name: Fetch fizz
if: ${{ steps.paths.outputs.fizz_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fizz run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fizz
- name: Fetch mvfst - name: Fetch mvfst
if: ${{ steps.paths.outputs.mvfst_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests mvfst run: python3 build/fbcode_builder/getdeps.py fetch --no-tests mvfst
- name: Fetch wangle - name: Fetch wangle
if: ${{ steps.paths.outputs.wangle_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests wangle run: python3 build/fbcode_builder/getdeps.py fetch --no-tests wangle
- name: Build ninja - name: Build ninja
if: ${{ steps.paths.outputs.ninja_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests ninja run: python3 build/fbcode_builder/getdeps.py build --no-tests ninja
- name: Build cmake - name: Build cmake
if: ${{ steps.paths.outputs.cmake_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests cmake run: python3 build/fbcode_builder/getdeps.py build --no-tests cmake
- name: Build zlib - name: Build zlib
if: ${{ steps.paths.outputs.zlib_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests zlib run: python3 build/fbcode_builder/getdeps.py build --no-tests zlib
- name: Build zstd - name: Build zstd
if: ${{ steps.paths.outputs.zstd_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests zstd run: python3 build/fbcode_builder/getdeps.py build --no-tests zstd
- name: Build boost - name: Build boost
if: ${{ steps.paths.outputs.boost_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests boost run: python3 build/fbcode_builder/getdeps.py build --no-tests boost
- name: Build double-conversion - name: Build double-conversion
if: ${{ steps.paths.outputs.double-conversion_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests double-conversion run: python3 build/fbcode_builder/getdeps.py build --no-tests double-conversion
- name: Build fast_float - name: Build fast_float
if: ${{ steps.paths.outputs.fast_float_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests fast_float run: python3 build/fbcode_builder/getdeps.py build --no-tests fast_float
- name: Build fmt - name: Build fmt
if: ${{ steps.paths.outputs.fmt_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests fmt run: python3 build/fbcode_builder/getdeps.py build --no-tests fmt
- name: Build gflags - name: Build gflags
if: ${{ steps.paths.outputs.gflags_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests gflags run: python3 build/fbcode_builder/getdeps.py build --no-tests gflags
- name: Build glog - name: Build glog
if: ${{ steps.paths.outputs.glog_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests glog run: python3 build/fbcode_builder/getdeps.py build --no-tests glog
- name: Build googletest - name: Build googletest
if: ${{ steps.paths.outputs.googletest_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests googletest run: python3 build/fbcode_builder/getdeps.py build --no-tests googletest
- name: Build libdwarf - name: Build libdwarf
if: ${{ steps.paths.outputs.libdwarf_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests libdwarf run: python3 build/fbcode_builder/getdeps.py build --no-tests libdwarf
- name: Build libevent - name: Build libevent
if: ${{ steps.paths.outputs.libevent_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests libevent run: python3 build/fbcode_builder/getdeps.py build --no-tests libevent
- name: Build lz4 - name: Build lz4
if: ${{ steps.paths.outputs.lz4_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests lz4 run: python3 build/fbcode_builder/getdeps.py build --no-tests lz4
- name: Build snappy - name: Build snappy
if: ${{ steps.paths.outputs.snappy_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests snappy run: python3 build/fbcode_builder/getdeps.py build --no-tests snappy
- name: Build openssl - name: Build openssl
if: ${{ steps.paths.outputs.openssl_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests openssl run: python3 build/fbcode_builder/getdeps.py build --no-tests openssl
- name: Build liboqs - name: Build liboqs
if: ${{ steps.paths.outputs.liboqs_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests liboqs run: python3 build/fbcode_builder/getdeps.py build --no-tests liboqs
- name: Build autoconf - name: Build autoconf
if: ${{ steps.paths.outputs.autoconf_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests autoconf run: python3 build/fbcode_builder/getdeps.py build --no-tests autoconf
- name: Build automake - name: Build automake
if: ${{ steps.paths.outputs.automake_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests automake run: python3 build/fbcode_builder/getdeps.py build --no-tests automake
- name: Build libtool - name: Build libtool
if: ${{ steps.paths.outputs.libtool_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests libtool run: python3 build/fbcode_builder/getdeps.py build --no-tests libtool
- name: Build gperf - name: Build gperf
if: ${{ steps.paths.outputs.gperf_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests gperf run: python3 build/fbcode_builder/getdeps.py build --no-tests gperf
- name: Build libiberty - name: Build libiberty
if: ${{ steps.paths.outputs.libiberty_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests libiberty run: python3 build/fbcode_builder/getdeps.py build --no-tests libiberty
- name: Build libsodium - name: Build libsodium
if: ${{ steps.paths.outputs.libsodium_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests libsodium run: python3 build/fbcode_builder/getdeps.py build --no-tests libsodium
- name: Build libunwind - name: Build libunwind
if: ${{ steps.paths.outputs.libunwind_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests libunwind run: python3 build/fbcode_builder/getdeps.py build --no-tests libunwind
- name: Build xz - name: Build xz
if: ${{ steps.paths.outputs.xz_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests xz run: python3 build/fbcode_builder/getdeps.py build --no-tests xz
- name: Build folly - name: Build folly
if: ${{ steps.paths.outputs.folly_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests folly run: python3 build/fbcode_builder/getdeps.py build --no-tests folly
- name: Build fizz - name: Build fizz
if: ${{ steps.paths.outputs.fizz_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests fizz run: python3 build/fbcode_builder/getdeps.py build --no-tests fizz
- name: Build mvfst - name: Build mvfst
if: ${{ steps.paths.outputs.mvfst_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests mvfst run: python3 build/fbcode_builder/getdeps.py build --no-tests mvfst
- name: Build wangle - name: Build wangle
if: ${{ steps.paths.outputs.wangle_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests wangle run: python3 build/fbcode_builder/getdeps.py build --no-tests wangle
- name: Build proxygen - name: Build proxygen
run: python3 build/fbcode_builder/getdeps.py build --src-dir=. proxygen --project-install-prefix proxygen:/usr/local run: python3 build/fbcode_builder/getdeps.py build --src-dir=. proxygen --project-install-prefix proxygen:/usr/local

View File

@@ -18,113 +18,170 @@ jobs:
runs-on: macOS-latest runs-on: macOS-latest
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- id: paths
name: Query paths
run: python3 build/fbcode_builder/getdeps.py query-paths --recursive --src-dir=. proxygen >> "$GITHUB_OUTPUT"
- name: Fetch ninja - name: Fetch ninja
if: ${{ steps.paths.outputs.ninja_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests ninja run: python3 build/fbcode_builder/getdeps.py fetch --no-tests ninja
- name: Fetch cmake - name: Fetch cmake
if: ${{ steps.paths.outputs.cmake_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests cmake run: python3 build/fbcode_builder/getdeps.py fetch --no-tests cmake
- name: Fetch zlib - name: Fetch zlib
if: ${{ steps.paths.outputs.zlib_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests zlib run: python3 build/fbcode_builder/getdeps.py fetch --no-tests zlib
- name: Fetch zstd - name: Fetch zstd
if: ${{ steps.paths.outputs.zstd_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests zstd run: python3 build/fbcode_builder/getdeps.py fetch --no-tests zstd
- name: Fetch boost - name: Fetch boost
if: ${{ steps.paths.outputs.boost_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests boost run: python3 build/fbcode_builder/getdeps.py fetch --no-tests boost
- name: Fetch double-conversion - name: Fetch double-conversion
if: ${{ steps.paths.outputs.double-conversion_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests double-conversion run: python3 build/fbcode_builder/getdeps.py fetch --no-tests double-conversion
- name: Fetch fast_float - name: Fetch fast_float
if: ${{ steps.paths.outputs.fast_float_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fast_float run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fast_float
- name: Fetch fmt - name: Fetch fmt
if: ${{ steps.paths.outputs.fmt_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fmt run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fmt
- name: Fetch gflags - name: Fetch gflags
if: ${{ steps.paths.outputs.gflags_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gflags run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gflags
- name: Fetch glog - name: Fetch glog
if: ${{ steps.paths.outputs.glog_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests glog run: python3 build/fbcode_builder/getdeps.py fetch --no-tests glog
- name: Fetch googletest - name: Fetch googletest
if: ${{ steps.paths.outputs.googletest_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests googletest run: python3 build/fbcode_builder/getdeps.py fetch --no-tests googletest
- name: Fetch libdwarf - name: Fetch libdwarf
if: ${{ steps.paths.outputs.libdwarf_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libdwarf run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libdwarf
- name: Fetch lz4 - name: Fetch lz4
if: ${{ steps.paths.outputs.lz4_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests lz4 run: python3 build/fbcode_builder/getdeps.py fetch --no-tests lz4
- name: Fetch openssl - name: Fetch openssl
if: ${{ steps.paths.outputs.openssl_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests openssl run: python3 build/fbcode_builder/getdeps.py fetch --no-tests openssl
- name: Fetch snappy - name: Fetch snappy
if: ${{ steps.paths.outputs.snappy_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests snappy run: python3 build/fbcode_builder/getdeps.py fetch --no-tests snappy
- name: Fetch libevent - name: Fetch libevent
if: ${{ steps.paths.outputs.libevent_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libevent run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libevent
- name: Fetch liboqs - name: Fetch liboqs
if: ${{ steps.paths.outputs.liboqs_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests liboqs run: python3 build/fbcode_builder/getdeps.py fetch --no-tests liboqs
- name: Fetch autoconf - name: Fetch autoconf
if: ${{ steps.paths.outputs.autoconf_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests autoconf run: python3 build/fbcode_builder/getdeps.py fetch --no-tests autoconf
- name: Fetch automake - name: Fetch automake
if: ${{ steps.paths.outputs.automake_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests automake run: python3 build/fbcode_builder/getdeps.py fetch --no-tests automake
- name: Fetch libtool - name: Fetch libtool
if: ${{ steps.paths.outputs.libtool_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libtool run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libtool
- name: Fetch gperf - name: Fetch gperf
if: ${{ steps.paths.outputs.gperf_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gperf run: python3 build/fbcode_builder/getdeps.py fetch --no-tests gperf
- name: Fetch libsodium - name: Fetch libsodium
if: ${{ steps.paths.outputs.libsodium_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libsodium run: python3 build/fbcode_builder/getdeps.py fetch --no-tests libsodium
- name: Fetch xz - name: Fetch xz
if: ${{ steps.paths.outputs.xz_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests xz run: python3 build/fbcode_builder/getdeps.py fetch --no-tests xz
- name: Fetch folly - name: Fetch folly
if: ${{ steps.paths.outputs.folly_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests folly run: python3 build/fbcode_builder/getdeps.py fetch --no-tests folly
- name: Fetch fizz - name: Fetch fizz
if: ${{ steps.paths.outputs.fizz_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fizz run: python3 build/fbcode_builder/getdeps.py fetch --no-tests fizz
- name: Fetch mvfst - name: Fetch mvfst
if: ${{ steps.paths.outputs.mvfst_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests mvfst run: python3 build/fbcode_builder/getdeps.py fetch --no-tests mvfst
- name: Fetch wangle - name: Fetch wangle
if: ${{ steps.paths.outputs.wangle_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py fetch --no-tests wangle run: python3 build/fbcode_builder/getdeps.py fetch --no-tests wangle
- name: Build ninja - name: Build ninja
if: ${{ steps.paths.outputs.ninja_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests ninja run: python3 build/fbcode_builder/getdeps.py build --no-tests ninja
- name: Build cmake - name: Build cmake
if: ${{ steps.paths.outputs.cmake_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests cmake run: python3 build/fbcode_builder/getdeps.py build --no-tests cmake
- name: Build zlib - name: Build zlib
if: ${{ steps.paths.outputs.zlib_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests zlib run: python3 build/fbcode_builder/getdeps.py build --no-tests zlib
- name: Build zstd - name: Build zstd
if: ${{ steps.paths.outputs.zstd_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests zstd run: python3 build/fbcode_builder/getdeps.py build --no-tests zstd
- name: Build boost - name: Build boost
if: ${{ steps.paths.outputs.boost_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests boost run: python3 build/fbcode_builder/getdeps.py build --no-tests boost
- name: Build double-conversion - name: Build double-conversion
if: ${{ steps.paths.outputs.double-conversion_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests double-conversion run: python3 build/fbcode_builder/getdeps.py build --no-tests double-conversion
- name: Build fast_float - name: Build fast_float
if: ${{ steps.paths.outputs.fast_float_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests fast_float run: python3 build/fbcode_builder/getdeps.py build --no-tests fast_float
- name: Build fmt - name: Build fmt
if: ${{ steps.paths.outputs.fmt_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests fmt run: python3 build/fbcode_builder/getdeps.py build --no-tests fmt
- name: Build gflags - name: Build gflags
if: ${{ steps.paths.outputs.gflags_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests gflags run: python3 build/fbcode_builder/getdeps.py build --no-tests gflags
- name: Build glog - name: Build glog
if: ${{ steps.paths.outputs.glog_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests glog run: python3 build/fbcode_builder/getdeps.py build --no-tests glog
- name: Build googletest - name: Build googletest
if: ${{ steps.paths.outputs.googletest_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests googletest run: python3 build/fbcode_builder/getdeps.py build --no-tests googletest
- name: Build libdwarf - name: Build libdwarf
if: ${{ steps.paths.outputs.libdwarf_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests libdwarf run: python3 build/fbcode_builder/getdeps.py build --no-tests libdwarf
- name: Build lz4 - name: Build lz4
if: ${{ steps.paths.outputs.lz4_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests lz4 run: python3 build/fbcode_builder/getdeps.py build --no-tests lz4
- name: Build openssl - name: Build openssl
if: ${{ steps.paths.outputs.openssl_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests openssl run: python3 build/fbcode_builder/getdeps.py build --no-tests openssl
- name: Build snappy - name: Build snappy
if: ${{ steps.paths.outputs.snappy_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests snappy run: python3 build/fbcode_builder/getdeps.py build --no-tests snappy
- name: Build libevent - name: Build libevent
if: ${{ steps.paths.outputs.libevent_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests libevent run: python3 build/fbcode_builder/getdeps.py build --no-tests libevent
- name: Build liboqs - name: Build liboqs
if: ${{ steps.paths.outputs.liboqs_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests liboqs run: python3 build/fbcode_builder/getdeps.py build --no-tests liboqs
- name: Build autoconf - name: Build autoconf
if: ${{ steps.paths.outputs.autoconf_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests autoconf run: python3 build/fbcode_builder/getdeps.py build --no-tests autoconf
- name: Build automake - name: Build automake
if: ${{ steps.paths.outputs.automake_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests automake run: python3 build/fbcode_builder/getdeps.py build --no-tests automake
- name: Build libtool - name: Build libtool
if: ${{ steps.paths.outputs.libtool_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests libtool run: python3 build/fbcode_builder/getdeps.py build --no-tests libtool
- name: Build gperf - name: Build gperf
if: ${{ steps.paths.outputs.gperf_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests gperf run: python3 build/fbcode_builder/getdeps.py build --no-tests gperf
- name: Build libsodium - name: Build libsodium
if: ${{ steps.paths.outputs.libsodium_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests libsodium run: python3 build/fbcode_builder/getdeps.py build --no-tests libsodium
- name: Build xz - name: Build xz
if: ${{ steps.paths.outputs.xz_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests xz run: python3 build/fbcode_builder/getdeps.py build --no-tests xz
- name: Build folly - name: Build folly
if: ${{ steps.paths.outputs.folly_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests folly run: python3 build/fbcode_builder/getdeps.py build --no-tests folly
- name: Build fizz - name: Build fizz
if: ${{ steps.paths.outputs.fizz_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests fizz run: python3 build/fbcode_builder/getdeps.py build --no-tests fizz
- name: Build mvfst - name: Build mvfst
if: ${{ steps.paths.outputs.mvfst_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests mvfst run: python3 build/fbcode_builder/getdeps.py build --no-tests mvfst
- name: Build wangle - name: Build wangle
if: ${{ steps.paths.outputs.wangle_SOURCE }}
run: python3 build/fbcode_builder/getdeps.py build --no-tests wangle run: python3 build/fbcode_builder/getdeps.py build --no-tests wangle
- name: Build proxygen - name: Build proxygen
run: python3 build/fbcode_builder/getdeps.py build --src-dir=. proxygen --project-install-prefix proxygen:/usr/local run: python3 build/fbcode_builder/getdeps.py build --src-dir=. proxygen --project-install-prefix proxygen:/usr/local

View File

@@ -552,6 +552,33 @@ class ShowInstDirCmd(ProjectCmdBase):
) )
@cmd("query-paths", "print the paths for tooling to use")
class QueryPathsCmd(ProjectCmdBase):
def run_project_cmd(self, args, loader, manifest):
if args.recursive:
manifests = loader.manifests_in_dependency_order()
else:
manifests = [manifest]
for m in manifests:
fetcher = loader.create_fetcher(m)
if isinstance(fetcher, SystemPackageFetcher):
# We are guaranteed that if the fetcher is set to
# SystemPackageFetcher then this item is completely
# satisfied by the appropriate system packages
continue
src_dir = fetcher.get_src_dir()
print(f"{m.name}_SOURCE={src_dir}")
def setup_project_cmd_parser(self, parser):
parser.add_argument(
"--recursive",
help="print the transitive deps also",
action="store_true",
default=False,
)
@cmd("show-source-dir", "print the source dir for a given project") @cmd("show-source-dir", "print the source dir for a given project")
class ShowSourceDirCmd(ProjectCmdBase): class ShowSourceDirCmd(ProjectCmdBase):
def run_project_cmd(self, args, loader, manifest): def run_project_cmd(self, args, loader, manifest):
@@ -1001,6 +1028,10 @@ class GenerateGitHubActionsCmd(ProjectCmdBase):
manifest_ctx.set("test", "on") manifest_ctx.set("test", "on")
run_on = self.get_run_on(args) run_on = self.get_run_on(args)
tests_arg = "--no-tests "
if run_tests:
tests_arg = ""
# Some projects don't do anything "useful" as a leaf project, only # Some projects don't do anything "useful" as a leaf project, only
# as a dep for a leaf project. Check for those here; we don't want # as a dep for a leaf project. Check for those here; we don't want
# to waste the effort scheduling them on CI. # to waste the effort scheduling them on CI.
@@ -1086,12 +1117,14 @@ jobs:
) )
out.write(" shell: cmd\n") out.write(" shell: cmd\n")
# The git installation may not like long filenames, so tell it
# that we want it to use them!
out.write(" - name: Fix Git config\n") out.write(" - name: Fix Git config\n")
out.write(" run: git config --system core.longpaths true\n") out.write(" run: >\n")
out.write(" - name: Disable autocrlf\n") out.write(" git config --system core.longpaths true &&\n")
out.write(" run: git config --system core.autocrlf false\n") out.write(" git config --system core.autocrlf false &&\n")
# cxx crate needs symlinks enabled
out.write(" git config --system core.symlinks true\n")
# && is not supported on default windows powershell, so use cmd
out.write(" shell: cmd\n")
out.write(" - uses: actions/checkout@v4\n") out.write(" - uses: actions/checkout@v4\n")
@@ -1127,17 +1160,12 @@ jobs:
if build_opts.is_darwin(): if build_opts.is_darwin():
# brew is installed as regular user # brew is installed as regular user
sudo_arg = "" sudo_arg = ""
tests_arg = "--no-tests "
if run_tests: system_deps_cmd = f"{sudo_arg}{getdepscmd}{allow_sys_arg} install-system-deps {tests_arg}--recursive {manifest.name}"
tests_arg = ""
out.write(
f" run: {sudo_arg}python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps {tests_arg}--recursive {manifest.name}\n"
)
if build_opts.is_linux() or build_opts.is_freebsd(): if build_opts.is_linux() or build_opts.is_freebsd():
out.write(" - name: Install packaging system deps\n") system_deps_cmd += f" && {sudo_arg}{getdepscmd}{allow_sys_arg} install-system-deps {tests_arg}--recursive patchelf"
out.write( out.write(f" run: {system_deps_cmd}\n")
f" run: {sudo_arg}python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps {tests_arg}--recursive patchelf\n"
)
required_locales = manifest.get( required_locales = manifest.get(
"github.actions", "required_locales", ctx=manifest_ctx "github.actions", "required_locales", ctx=manifest_ctx
) )
@@ -1152,6 +1180,18 @@ jobs:
out.write(f" - name: Ensure {loc} locale present\n") out.write(f" - name: Ensure {loc} locale present\n")
out.write(f" run: {sudo_arg}locale-gen {loc}\n") out.write(f" run: {sudo_arg}locale-gen {loc}\n")
out.write(" - id: paths\n")
out.write(" name: Query paths\n")
if build_opts.is_windows():
out.write(
f" run: {getdepscmd}{allow_sys_arg} query-paths {tests_arg}--recursive --src-dir=. {manifest.name} >> $env:GITHUB_OUTPUT\n"
)
out.write(" shell: pwsh\n")
else:
out.write(
f' run: {getdepscmd}{allow_sys_arg} query-paths {tests_arg}--recursive --src-dir=. {manifest.name} >> "$GITHUB_OUTPUT"\n'
)
projects = loader.manifests_in_dependency_order() projects = loader.manifests_in_dependency_order()
main_repo_url = manifest.get_repo_url(manifest_ctx) main_repo_url = manifest.get_repo_url(manifest_ctx)
@@ -1178,22 +1218,29 @@ jobs:
ctx = loader.ctx_gen.get_context(m.name) ctx = loader.ctx_gen.get_context(m.name)
if m.get_repo_url(ctx) != main_repo_url: if m.get_repo_url(ctx) != main_repo_url:
out.write(" - name: Fetch %s\n" % m.name) out.write(" - name: Fetch %s\n" % m.name)
out.write(
f" if: ${{{{ steps.paths.outputs.{m.name}_SOURCE }}}}\n"
)
out.write( out.write(
f" run: {getdepscmd}{allow_sys_arg} fetch --no-tests {m.name}\n" f" run: {getdepscmd}{allow_sys_arg} fetch --no-tests {m.name}\n"
) )
for m in projects: for m in projects:
if m != manifest: if m == manifest or m.name == "rust":
if m.name == "rust":
continue continue
else:
src_dir_arg = "" src_dir_arg = ""
ctx = loader.ctx_gen.get_context(m.name) ctx = loader.ctx_gen.get_context(m.name)
if main_repo_url and m.get_repo_url(ctx) == main_repo_url: if main_repo_url and m.get_repo_url(ctx) == main_repo_url:
# Its in the same repo, so src-dir is also . # Its in the same repo, so src-dir is also .
src_dir_arg = "--src-dir=. " src_dir_arg = "--src-dir=. "
has_same_repo_dep = True has_same_repo_dep = True
out.write(" - name: Build %s\n" % m.name) out.write(" - name: Build %s\n" % m.name)
if not src_dir_arg:
# only run the step if needed
out.write(
f" if: ${{{{ steps.paths.outputs.{m.name}_SOURCE }}}}\n"
)
out.write( out.write(
f" run: {getdepscmd}{allow_sys_arg} build {build_type_arg}{src_dir_arg}{free_up_disk}--no-tests {m.name}\n" f" run: {getdepscmd}{allow_sys_arg} build {build_type_arg}{src_dir_arg}{free_up_disk}--no-tests {m.name}\n"
) )
@@ -1213,12 +1260,8 @@ jobs:
if has_same_repo_dep: if has_same_repo_dep:
no_deps_arg = "--no-deps " no_deps_arg = "--no-deps "
no_tests_arg = ""
if not run_tests:
no_tests_arg = "--no-tests "
out.write( out.write(
f" run: {getdepscmd}{allow_sys_arg} build {build_type_arg}{no_tests_arg}{no_deps_arg}--src-dir=. {manifest.name} {project_prefix}\n" f" run: {getdepscmd}{allow_sys_arg} build {build_type_arg}{tests_arg}{no_deps_arg}--src-dir=. {manifest.name} {project_prefix}\n"
) )
out.write(" - name: Copy artifacts\n") out.write(" - name: Copy artifacts\n")

View File

@@ -244,7 +244,9 @@ class GitFetcher(Fetcher):
if not m: if not m:
raise Exception("Failed to parse rev from %s" % hash_file) raise Exception("Failed to parse rev from %s" % hash_file)
rev = m.group(1) rev = m.group(1)
print("Using pinned rev %s for %s" % (rev, repo_url)) print(
"Using pinned rev %s for %s" % (rev, repo_url), file=sys.stderr
)
self.rev = rev or "main" self.rev = rev or "main"
self.origin_repo = repo_url self.origin_repo = repo_url