diff --git a/.github/workflows/autobuild.yaml b/.github/workflows/autobuild.yaml index 02a7e85..394104e 100644 --- a/.github/workflows/autobuild.yaml +++ b/.github/workflows/autobuild.yaml @@ -146,8 +146,10 @@ jobs: fail-fast: false matrix: config: - - name: windows + - name: windows-x64 os: windows-2022 + runner: windows-2022 + arch: x86_64 preinstall: choco install ninja nasm vcvars: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat cflags: /O2 /DNDEBUG @@ -161,21 +163,80 @@ jobs: grpc_cmake: >- "-DgRPC_MSVC_STATIC_RUNTIME=ON" binary_extension: ".exe" - - name: mac + - name: windows-arm64 + os: windows-2022 + runner: windows-2022 + arch: aarch64 + preinstall: choco install ninja nasm + vcvars: C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvarsarm64.bat + cflags: /O2 /DNDEBUG + cmake: >- + "-DCMAKE_C_COMPILER=cl" + "-DCMAKE_CXX_COMPILER=cl" + "-DLLVM_ENABLE_ZLIB=OFF" + "-DCMAKE_MSVC_RUNTIME_LIBRARY=MultiThreaded" + "-DLLVM_ENABLE_PDB=ON" + "-DLLVM_PARALLEL_LINK_JOBS=1" + "-DCMAKE_GENERATOR_PLATFORM=ARM64" + grpc_cmake: >- + "-DgRPC_MSVC_STATIC_RUNTIME=ON" + binary_extension: ".exe" + - name: mac-x64 os: macos-13 + runner: macos-13 + arch: x86_64 preinstall: brew install ninja zlib p7zip cflags: -O3 -gline-tables-only -DNDEBUG cmake: >- "-DCMAKE_C_COMPILER=clang" "-DCMAKE_CXX_COMPILER=clang++" "-DLLVM_ENABLE_ZLIB=FORCE_ON" - "-DCMAKE_OSX_ARCHITECTURES=x86_64;arm64" + "-DCMAKE_OSX_ARCHITECTURES=x86_64" "-DCMAKE_OSX_DEPLOYMENT_TARGET=10.13" - # BoringSSL doesn't support universal binaries when building with ASM. grpc_cmake: >- "-DOPENSSL_NO_ASM=ON" - - name: linux + - name: mac-arm64 + os: macos-13 + runner: macos-13 + arch: aarch64 + preinstall: brew install ninja zlib p7zip + cflags: -O3 -gline-tables-only -DNDEBUG + cmake: >- + "-DCMAKE_C_COMPILER=clang" + "-DCMAKE_CXX_COMPILER=clang++" + "-DLLVM_ENABLE_ZLIB=FORCE_ON" + "-DCMAKE_OSX_ARCHITECTURES=arm64" + "-DCMAKE_OSX_DEPLOYMENT_TARGET=11.0" + grpc_cmake: >- + "-DOPENSSL_NO_ASM=ON" + - name: linux-x64 os: ubuntu-latest + runner: ubuntu-latest + arch: x86_64 + container: ubuntu:20.04 + preinstall: >- + apt-get update && + apt-get install -y ninja-build libz-dev libc-ares-dev wget clang-10 + software-properties-common p7zip-full curl && + add-apt-repository ppa:git-core/ppa && + wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | apt-key add - && + apt-add-repository 'deb https://apt.kitware.com/ubuntu/ bionic main' && + apt-get update && + apt-get install -y git cmake python3.8 python3.8-dev + cflags: -O3 -gline-tables-only -DNDEBUG -include $GITHUB_WORKSPACE/.github/workflows/lib_compat.h + cmake: >- + "-DCMAKE_C_COMPILER=clang-10" + "-DCMAKE_CXX_COMPILER=clang++-10" + "-DCMAKE_EXE_LINKER_FLAGS_RELEASE=-static-libgcc -Wl,--compress-debug-sections=zlib" + "-DLLVM_STATIC_LINK_CXX_STDLIB=ON" + "-DLLVM_ENABLE_ZLIB=FORCE_ON" + "-DCMAKE_PROJECT_INCLUDE=$GITHUB_WORKSPACE/.github/workflows/linux-static-deps.cmake" + grpc_cmake: >- + "-DgRPC_CARES_PROVIDER=package" + - name: linux-arm64 + os: ubuntu-latest + runner: ubuntu-24.04-arm64 + arch: aarch64 container: ubuntu:20.04 preinstall: >- apt-get update && @@ -198,7 +259,7 @@ jobs: # libraries. All other gRPC dependencies can be built from sources. grpc_cmake: >- "-DgRPC_CARES_PROVIDER=package" - runs-on: ${{ matrix.config.os }} + runs-on: ${{ matrix.config.runner }} container: ${{ matrix.config.container }} steps: - name: Clone scripts