name: MacOS tests permissions: contents: read on: [workflow_call, workflow_dispatch] jobs: macos: strategy: fail-fast: false matrix: os: - macos-14 - macos-15 CMAKE_ARGS: - -DOQS_ENABLE_SIG_SLH_DSA=OFF -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_ENABLE_SIG_STFL_LMS=ON - -DCMAKE_C_COMPILER=gcc-14 - -DOQS_USE_OPENSSL=OFF - -DBUILD_SHARED_LIBS=ON -DOQS_DIST_BUILD=OFF libjade-build: - -DOQS_LIBJADE_BUILD=OFF # Restrict -DOQS_LIBJADE_BUILD=ON build to algs provided by # libjade to minimise repeated tests - -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD="${{ vars.LIBJADE_ALG_LIST }}" exclude: # macos-14 and macos-15 run on aarch64, libjade targets x86 # Skip testing libjade on macos-14 - os: macos-14 libjade-build: -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD="${{ vars.LIBJADE_ALG_LIST }}" - os: macos-15 libjade-build: -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD="${{ vars.LIBJADE_ALG_LIST }}" # No point in testing stateful sigs with minimal libjade build - libjade-build: -DOQS_LIBJADE_BUILD=ON -DOQS_MINIMAL_BUILD="${{ vars.LIBJADE_ALG_LIST }}" CMAKE_ARGS: -DOQS_ENABLE_SIG_SLH_DSA=OFF -DOQS_HAZARDOUS_EXPERIMENTAL_ENABLE_SIG_STFL_KEY_SIG_GEN=ON -DOQS_ENABLE_SIG_STFL_XMSS=ON -DOQS_ENABLE_SIG_STFL_LMS=ON # Failing configuration on Github actions; see https://github.com/open-quantum-safe/liboqs/pull/2148 - os: macos-15 CMAKE_ARGS: -DCMAKE_C_COMPILER=gcc-14 libjade-build: -DOQS_LIBJADE_BUILD=OFF runs-on: ${{ matrix.os }} timeout-minutes: 85 # max + 3*std over the last thousands of successful runs steps: - name: Install Python uses: actions/setup-python@82c7e631bb3cdc910f68e0081d67478d79c6982d # pin@v5 with: python-version: '3.12' - name: Checkout code uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # pin@v4 - name: Install dependencies run: env HOMEBREW_NO_AUTO_UPDATE=1 brew install ninja && pip3 install --require-hashes --break-system-packages -r .github/workflows/requirements.txt - name: Get system information run: sysctl -a | grep machdep.cpu - name: Configure run: mkdir -p build && cd build && source ~/.bashrc && cmake -GNinja -DOQS_STRICT_WARNINGS=ON ${{ matrix.CMAKE_ARGS }} ${{ matrix.libjade-build }} .. && cmake -LA -N .. - name: Build run: ninja working-directory: build - name: Run tests run: mkdir -p tmp && python3 -m pytest --verbose --ignore=tests/test_code_conventions.py --ignore=tests/test_kat_all.py timeout-minutes: 60