From f4718a4420cc10c1004a6a82b851166024b0683a Mon Sep 17 00:00:00 2001 From: Don Stewart Date: Thu, 18 Jul 2024 21:31:22 -0700 Subject: [PATCH] Build folly OSS CI on arm64/linux too (#2260) Summary: Pull Request resolved: https://github.com/facebook/folly/pull/2260 Check things build on the GitHub-provided arm64/ubuntu 22 VMs. Seeking to avoid downstream arm64 breakages like D59635179 https://github.blog/2024-06-03-arm64-on-github-actions-powering-faster-more-efficient-build-systems/ Differential Revision: D59894441 --- .github/workflows/getdeps_linux.yml | 124 ++++++++++++++++++++++++++++ 1 file changed, 124 insertions(+) diff --git a/.github/workflows/getdeps_linux.yml b/.github/workflows/getdeps_linux.yml index 5bcd0c00c7a..b77369bcc84 100644 --- a/.github/workflows/getdeps_linux.yml +++ b/.github/workflows/getdeps_linux.yml @@ -126,3 +126,127 @@ jobs: run: python3 build/fbcode_builder/getdeps.py --allow-system-packages test --src-dir=. folly --project-install-prefix folly:/usr/local - name: Show disk space at end run: df -h + + # use github provided arm64 runner + build-arm64-clang: + runs-on: 4-core-ubuntu-arm + steps: + - uses: actions/checkout@v4 + - name: Show disk space at start + run: df -h + - name: Free up disk space + run: sudo rm -rf /usr/local/lib/android + - name: Show disk space after freeing up + run: df -h + - name: Update system package info + run: sudo apt-get update + - name: Install C++ compiler + run: | + export VER=15 + sudo apt-get install -y clang-$VER + echo "CC=/usr/bin/clang-$VER" >> "$GITHUB_ENV" + echo "CXX=/usr/bin/clang++-$VER" >> "$GITHUB_ENV" + sudo update-alternatives --install /usr/bin/cc cc "/usr/bin/clang-$VER" 10 + sudo update-alternatives --install /usr/bin/c++ c++ "/usr/bin/clang++-$VER" 10 + - name: Install core libraries + run: sudo apt-get install libssl-dev + - name: Install system deps + run: sudo python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive folly + - name: Install packaging system deps + run: sudo python3 build/fbcode_builder/getdeps.py --allow-system-packages install-system-deps --recursive patchelf + - name: Fetch boost + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests boost + - name: Fetch ninja + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests ninja + - name: Fetch cmake + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests cmake + - name: Fetch double-conversion + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests double-conversion + - name: Fetch fmt + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests fmt + - name: Fetch gflags + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests gflags + - name: Fetch glog + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests glog + - name: Fetch googletest + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests googletest + - name: Fetch libdwarf + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libdwarf + - name: Fetch libevent + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libevent + - name: Fetch zlib + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests zlib + - name: Fetch lz4 + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests lz4 + - name: Fetch snappy + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests snappy + - name: Fetch zstd + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests zstd + - name: Fetch autoconf + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests autoconf + - name: Fetch automake + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests automake + - name: Fetch libtool + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libtool + - name: Fetch libiberty + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libiberty + - name: Fetch libsodium + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libsodium + - name: Fetch libunwind + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests libunwind + - name: Fetch xz + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fetch --no-tests xz + - name: Build boost + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests boost + - name: Build ninja + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests ninja + - name: Build cmake + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests cmake + - name: Build double-conversion + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests double-conversion + - name: Build fmt + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests fmt + - name: Build gflags + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests gflags + - name: Build glog + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests glog + - name: Build googletest + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests googletest + - name: Build libdwarf + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests libdwarf + - name: Build libevent + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests libevent + - name: Build zlib + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests zlib + - name: Build lz4 + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests lz4 + - name: Build snappy + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests snappy + - name: Build zstd + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests zstd + - name: Build autoconf + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests autoconf + - name: Build automake + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests automake + - name: Build libtool + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests libtool + - name: Build libiberty + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests libiberty + - name: Build libsodium + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests libsodium + - name: Build libunwind + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests libunwind + - name: Build xz + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --free-up-disk --no-tests xz + - name: Build folly + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages build --src-dir=. folly --project-install-prefix folly:/usr/local + - name: Copy artifacts + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages fixup-dyn-deps --strip --src-dir=. folly _artifacts/linux --project-install-prefix folly:/usr/local --final-install-prefix /usr/local + - uses: actions/upload-artifact@v2 + with: + name: folly + path: _artifacts + - name: Test folly + run: python3 build/fbcode_builder/getdeps.py --allow-system-packages test --src-dir=. folly --project-install-prefix folly:/usr/local + - name: Show disk space at end + run: df -h