Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 28 additions & 9 deletions .github/workflows/macos_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,11 @@ on:
description: "Boolean to enable the Xcode test targeting visionOS. Defaults to false."
default: false

runner_pool:
type: string
description: "The runner pool which will be requested."
default: "nightly"

jobs:
construct-matrix:
name: Construct Darwin matrix
Expand All @@ -111,6 +116,7 @@ jobs:
run: |
cat >> "$GITHUB_OUTPUT" << EOM
darwin-matrix=$(
runner_pool="${MATRIX_RUNNER_POOL:="nightly"}"
xcode_15_4_enabled="${MATRIX_MACOS_15_4_ENABLED:=true}"
xcode_15_4_build_arguments_override="${MATRIX_MACOS_15_4_BUILD_ARGUMENTS_OVERRIDE:=""}"
xcode_15_4_test_arguments_override="${MATRIX_MACOS_15_4_TEST_ARGUMENTS_OVERRIDE:=""}"
Expand All @@ -128,29 +134,42 @@ jobs:
matrix='{"config": []}'

if [[ "$xcode_15_4_enabled" == "true" ]]; then
matrix=$(echo "$matrix" | jq -c \
'.config[.config| length] |= . + { "name": "Xcode 15.4", "xcode_version": "15.4", "build_arguments_override": "${xcode_15_4_build_arguments_override}", "test_arguments_override": "${xcode_15_4_test_arguments_override}", "os": "sequoia", "arch": "ARM64"}')
matrix=$(echo "$matrix" | jq -c \
--arg build_arguments_override "$xcode_15_4_build_arguments_override" \
--arg test_arguments_override "$xcode_15_4_test_arguments_override" \
--arg runner_pool "$runner_pool" \
'.config[.config| length] |= . + { "name": "Xcode 15.4", "xcode_version": "15.4", "build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
fi

if [[ "$xcode_16_0_enabled" == "true" ]]; then
matrix=$(echo "$matrix" | jq -c \
'.config[.config| length] |= . + { "name": "Xcode 16.0", "xcode_version": "16.0", "build_arguments_override": "${xcode_16_0_build_arguments_override}", "test_arguments_override": "${xcode_16_0_test_arguments_override}", "os": "sequoia", "arch": "ARM64"}')
matrix=$(echo "$matrix" | jq -c \
--arg build_arguments_override "$xcode_16_0_build_arguments_override" \
--arg test_arguments_override "$xcode_16_0_test_arguments_override" \
--arg runner_pool "$runner_pool" \
'.config[.config| length] |= . + { "name": "Xcode 16.0", "xcode_version": "16.0", "build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
fi

if [[ "$xcode_16_1_enabled" == "true" ]]; then
matrix=$(echo "$matrix" | jq -c \
'.config[.config| length] |= . + { "name": "Xcode 16.1", "xcode_version": "16.1", "build_arguments_override": "${xcode_16_1_build_arguments_override}", "test_arguments_override": "${xcode_16_1_test_arguments_override}", "os": "sequoia", "arch": "ARM64"}')
matrix=$(echo "$matrix" | jq -c \
--arg build_arguments_override "$xcode_16_1_build_arguments_override" \
--arg test_arguments_override "$xcode_16_1_test_arguments_override" \
--arg runner_pool "$runner_pool" \
'.config[.config| length] |= . + { "name": "Xcode 16.1", "xcode_version": "16.1", "build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
fi

if [[ "$xcode_16_2_enabled" == "true" ]]; then
matrix=$(echo "$matrix" | jq -c \
'.config[.config| length] |= . + { "name": "Xcode 16.2", "xcode_version": "16.2", "build_arguments_override": "${xcode_16_2_build_arguments_override}", "test_arguments_override": "${xcode_16_2_test_arguments_override}", "os": "sequoia", "arch": "ARM64"}')
matrix=$(echo "$matrix" | jq -c \
--arg build_arguments_override "$xcode_16_2_build_arguments_override" \
--arg test_arguments_override "$xcode_16_2_test_arguments_override" \
--arg runner_pool "$runner_pool" \
'.config[.config| length] |= . + { "name": "Xcode 16.2", "xcode_version": "16.2", "build_arguments_override": $build_arguments_override, "test_arguments_override": $test_arguments_override, "os": "sequoia", "arch": "ARM64", "pool": $runner_pool }')
fi

echo "$matrix" | jq -c
)"
EOM
env:
MATRIX_RUNNER_POOL: ${{ inputs.runner_pool }}
MATRIX_MACOS_15_4_ENABLED: ${{ inputs.xcode_15_4_enabled }}
MATRIX_MACOS_15_4_BUILD_ARGUMENTS_OVERRIDE: ${{ inputs.xcode_15_4_build_arguments_override }}
MATRIX_MACOS_15_4_TEST_ARGUMENTS_OVERRIDE: ${{ inputs.xcode_15_4_test_arguments_override }}
Expand All @@ -167,7 +186,7 @@ jobs:
darwin-job:
name: ${{ matrix.config.name }}
needs: construct-matrix
runs-on: [self-hosted, macos, "${{ matrix.config.os }}", "${{ matrix.config.arch }}"]
runs-on: [self-hosted, macos, "${{ matrix.config.os }}", "${{ matrix.config.arch }}", "${{ matrix.config.pool }}"]
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.construct-matrix.outputs.darwin-matrix) }}
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -65,6 +65,7 @@ jobs:
# Workaround https://github.com/nektos/act/issues/1875
uses: apple/swift-nio/.github/workflows/macos_tests.yml@main
with:
runner_pool: nightly
build_scheme: swift-nio-Package
macos_xcode_test_enabled: false # Disabled because of an issue
ios_xcode_test_enabled: true
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/pull_request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -82,6 +82,7 @@ jobs:
# Workaround https://github.com/nektos/act/issues/1875
uses: apple/swift-nio/.github/workflows/macos_tests.yml@main
with:
runner_pool: general
build_scheme: swift-nio-Package

static-sdk:
Expand Down