diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 77e9b2d00a..05e26e1b79 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -133,8 +133,15 @@ jobs: macos: permissions: contents: write - name: macOS x64 - runs-on: macos-latest + name: macOS ${{matrix.cfg.arch}} (${{matrix.cfg.cpp-version}}) + runs-on: ${{matrix.cfg.os}} + strategy: + fail-fast: false # Don't fail everything if one fails. We want to test each OS/Compiler individually + matrix: + # arm64 is a self-hosted runner on a Mac M2 Mini, ran inside a virtual machine by Archie Jaskowicz. + cfg: + - { arch: 'x64', concurrency: 3, os: ubuntu-20.04, cpp-version: clang++-10, cmake-flags: '', cpack: 'no' } + - { arch: 'arm64', concurrency: 2, os: [self-hosted, ARM64, macOS], cpp-version: clang++-15, cmake-flags: '', cpack: 'no' } steps: - name: Harden Runner uses: step-security/harden-runner@1b05615854632b887b69ae1be8cbefe72d3ae423 # v2.6.0 @@ -145,7 +152,7 @@ jobs: uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 - name: Install homebrew packages - run: brew install cmake make libsodium opus openssl + run: brew install cmake make libsodium opus openssl pkg-config - name: Generate CMake run: mkdir build && cd build && cmake -DDPP_NO_VCPKG=ON -DCMAKE_BUILD_TYPE=Release -DDPP_CORO=ON -DAVX_TYPE=AVX0 .. @@ -153,7 +160,7 @@ jobs: DONT_RUN_VCPKG: true - name: Build Project - run: cd build && make -j3 + run: cd build && make -j${{ matrix.cfg.concurrency }} env: DONT_RUN_VCPKG: true