diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 8cd7b05fc..b34a06af9 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -6,6 +6,12 @@ on: branches: ["main"] pull_request: branches: ["main"] + workflow_dispatch: + inputs: + run_macos: + description: "Run macOS CI jobs (slow runners, opt-in)" + type: boolean + default: false name: CI @@ -361,9 +367,13 @@ jobs: --package diskann-quantization \ -- --skip compile_tests + # macOS is opt-in since it is slow to provision. + # It is excluded from the default push/PR matrix, and only included for manually + # dispatched runs when `run_macos: true` is set. test-workspace: needs: basics name: test workspace + if: ${{ matrix.os != 'macos-latest' || (github.event_name == 'workflow_dispatch' && inputs.run_macos) }} runs-on: ${{ matrix.os }} strategy: matrix: @@ -371,7 +381,7 @@ jobs: - windows-latest - ubuntu-latest - ubuntu-24.04-arm - - macos-latest + - macos-latest # skipped unless manually triggered steps: - uses: actions/checkout@v4 @@ -397,13 +407,14 @@ jobs: test-workspace-features: needs: basics name: test workspace (all features) + if: ${{ matrix.os != 'macos-latest' || (github.event_name == 'workflow_dispatch' && inputs.run_macos) }} runs-on: ${{ matrix.os }} strategy: matrix: os: - windows-latest - ubuntu-latest - - macos-latest + - macos-latest # skipped unless manually triggered steps: - uses: actions/checkout@v4