From 862b5967f7ba0ae35f8295152e8f3e9e71090f11 Mon Sep 17 00:00:00 2001 From: Rick Newton-Rogers Date: Wed, 22 Oct 2025 08:46:20 +0100 Subject: [PATCH 1/4] prune swift versions in generation step --- .github/workflows/benchmarks.yml | 6 ++ .github/workflows/cxx_interop.yml | 6 ++ .github/workflows/release_builds.yml | 6 ++ .github/workflows/unit_tests.yml | 6 ++ scripts/generate_matrix.sh | 136 ++++++++++++++++++++++++--- 5 files changed, 148 insertions(+), 12 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 4430743cac..a89131eb36 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -76,6 +76,11 @@ on: description: "Environment variables for Linux jobs as JSON (e.g., '{\"DEBUG\":\"1\",\"LOG_LEVEL\":\"info\"}')." default: "{}" + minimum_swift_version: + type: string + description: "Minimum Swift version to include in the matrix. Leave empty for auto-detection from Package.swift, specify a version like '6.0' to override, or set to 'none' to disable filtering." + default: "" + jobs: construct-matrix: name: Construct Benchmarks matrix @@ -101,6 +106,7 @@ jobs: env: MATRIX_LINUX_COMMAND: "curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} bash" MATRIX_LINUX_SETUP_COMMAND: "swift --version && apt-get update -y -q && apt-get install -y -q curl libjemalloc-dev && git config --global --add safe.directory /$(basename ${{ github.workspace }})" + MATRIX_MIN_SWIFT_VERSION: ${{ inputs.minimum_swift_version }} MATRIX_LINUX_5_9_ENABLED: ${{ inputs.linux_5_9_enabled }} MATRIX_LINUX_5_10_ENABLED: ${{ inputs.linux_5_10_enabled }} MATRIX_LINUX_6_0_ENABLED: ${{ inputs.linux_6_0_enabled }} diff --git a/.github/workflows/cxx_interop.yml b/.github/workflows/cxx_interop.yml index 285284b58b..bdce10750e 100644 --- a/.github/workflows/cxx_interop.yml +++ b/.github/workflows/cxx_interop.yml @@ -73,6 +73,11 @@ on: description: "Environment variables for Windows jobs as JSON (e.g., '{\"DEBUG\":\"1\",\"LOG_LEVEL\":\"info\"}')." default: "{}" + minimum_swift_version: + type: string + description: "Minimum Swift version to include in the matrix. Leave empty for auto-detection from Package.swift, specify a version like '6.0' to override, or set to 'none' to disable filtering." + default: "" + jobs: construct-matrix: name: Construct Cxx interop matrix @@ -104,6 +109,7 @@ jobs: env: MATRIX_LINUX_COMMAND: "curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check-cxx-interop-compatibility.sh | bash" MATRIX_LINUX_SETUP_COMMAND: "swift --version && apt-get update -y -q && apt-get install -y -q curl jq" + MATRIX_MIN_SWIFT_VERSION: ${{ inputs.minimum_swift_version }} MATRIX_LINUX_5_9_ENABLED: ${{ inputs.linux_5_9_enabled }} MATRIX_LINUX_5_10_ENABLED: ${{ inputs.linux_5_10_enabled }} MATRIX_LINUX_6_0_ENABLED: ${{ inputs.linux_6_0_enabled }} diff --git a/.github/workflows/release_builds.yml b/.github/workflows/release_builds.yml index 989da7bdac..ff445cdb29 100644 --- a/.github/workflows/release_builds.yml +++ b/.github/workflows/release_builds.yml @@ -105,6 +105,11 @@ on: description: "Environment variables for Windows jobs as JSON (e.g., '{\"DEBUG\":\"1\",\"LOG_LEVEL\":\"info\"}')." default: "{}" + minimum_swift_version: + type: string + description: "Minimum Swift version to include in the matrix. Leave empty for auto-detection from Package.swift, specify a version like '6.0' to override, or set to 'none' to disable filtering." + default: "" + jobs: construct-matrix: name: Construct release build matrix @@ -136,6 +141,7 @@ jobs: env: MATRIX_LINUX_SETUP_COMMAND: "swift --version" MATRIX_LINUX_COMMAND: "swift build -c release" + MATRIX_MIN_SWIFT_VERSION: ${{ inputs.minimum_swift_version }} MATRIX_LINUX_5_10_ENABLED: ${{ inputs.linux_5_10_enabled }} MATRIX_LINUX_5_10_COMMAND_ARGUMENTS: ${{ inputs.linux_5_10_arguments_override }} MATRIX_LINUX_6_0_ENABLED: ${{ inputs.linux_6_0_enabled }} diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index e0b4b67f54..3e97c81231 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -145,6 +145,11 @@ on: description: "Environment variables for Windows jobs as JSON (e.g., '{\"DEBUG\":\"1\",\"LOG_LEVEL\":\"info\"}')." default: "{}" + minimum_swift_version: + type: string + description: "Minimum Swift version to include in the matrix. Leave empty for auto-detection from Package.swift, specify a version like '6.0' to override, or set to 'none' to disable filtering." + default: "" + jobs: construct-matrix: name: Construct unit test matrix @@ -178,6 +183,7 @@ jobs: env: MATRIX_LINUX_SETUP_COMMAND: "swift --version" MATRIX_LINUX_COMMAND: "swift test" + MATRIX_MIN_SWIFT_VERSION: ${{ inputs.minimum_swift_version }} MATRIX_LINUX_5_9_ENABLED: ${{ inputs.linux_5_9_enabled }} MATRIX_LINUX_5_9_COMMAND_ARGUMENTS: ${{ inputs.linux_5_9_arguments_override }} MATRIX_LINUX_5_10_ENABLED: ${{ inputs.linux_5_10_enabled }} diff --git a/scripts/generate_matrix.sh b/scripts/generate_matrix.sh index 23fffd0f38..a6f963797a 100755 --- a/scripts/generate_matrix.sh +++ b/scripts/generate_matrix.sh @@ -14,6 +14,118 @@ ##===----------------------------------------------------------------------===## set -x +# Extract swift-tools-version from a manifest file +get_tools_version() { + local manifest="$1" + if [[ ! -f "$manifest" ]]; then + echo "" + return + fi + + # Parse the first line: // swift-tools-version:X.Y or // swift-tools-version: X.Y + local tools_version + tools_version=$(head -n 1 "$manifest" | sed -n 's#^// *swift-tools-version: *\([0-9.]*\).*#\1#p') + echo "$tools_version" +} + +# Compare versions using SemVer: returns 0 if v1 >= v2, 1 otherwise +version_gte() { + local v1="$1" + local v2="$2" + + # Parse v1 as major.minor.patch + IFS='.' read -r v1_major v1_minor v1_patch <<< "$v1" + v1_minor=${v1_minor:-0} + v1_patch=${v1_patch:-0} + + # Parse v2 as major.minor.patch + IFS='.' read -r v2_major v2_minor v2_patch <<< "$v2" + v2_minor=${v2_minor:-0} + v2_patch=${v2_patch:-0} + + # Compare major + if [[ $v1_major -gt $v2_major ]]; then return 0; fi + if [[ $v1_major -lt $v2_major ]]; then return 1; fi + + # Major equal, compare minor + if [[ $v1_minor -gt $v2_minor ]]; then return 0; fi + if [[ $v1_minor -lt $v2_minor ]]; then return 1; fi + + # Major and minor equal, compare patch + if [[ $v1_patch -ge $v2_patch ]]; then return 0; fi + return 1 +} + +# Find minimum Swift version across all manifests +if [[ -z "${MATRIX_MIN_SWIFT_VERSION:-}" ]]; then + min_version="" + + # Check default Package.swift + default_version=$(get_tools_version "Package.swift") + if [[ -n "$default_version" ]]; then + min_version="$default_version" + echo "Found Package.swift with tools-version: $default_version" >&2 + fi + + # Check all version-specific manifests + for manifest in Package@swift-*.swift; do + if [[ ! -f "$manifest" ]]; then + continue + fi + + version=$(get_tools_version "$manifest") + if [[ -z "$version" ]]; then + continue + fi + + echo "Found $manifest with tools-version: $version" >&2 + + # If this version is less than current minimum, update minimum + if [[ -z "$min_version" ]] || ! version_gte "$version" "$min_version"; then + min_version="$version" + fi + done + + if [[ -n "$min_version" ]]; then + MATRIX_MIN_SWIFT_VERSION="$min_version" + echo "Minimum Swift tools version: $MATRIX_MIN_SWIFT_VERSION" >&2 + else + echo "Warning: Could not find any Swift tools version in Package manifests" >&2 + fi +fi + +# Check if a Swift version should be included in the matrix +# Nightlies are always included +# If MATRIX_MIN_SWIFT_VERSION is "none", all versions are included +# If MATRIX_MIN_SWIFT_VERSION is not set, it's auto-detected from Package manifests +# If MATRIX_MIN_SWIFT_VERSION is set to a version, that version is used as the minimum +should_include_version() { + local version="$1" + + # If minimum version check is disabled, include everything + if [[ "${MATRIX_MIN_SWIFT_VERSION:-}" == "none" ]]; then + return 0 + fi + + # If no minimum version specified, include everything + if [[ -z "${MATRIX_MIN_SWIFT_VERSION:-}" ]]; then + return 0 + fi + + # Nightly builds always included + if [[ "$version" =~ ^nightly- ]]; then + return 0 + fi + + # Check if version >= minimum + if version_gte "$version" "$MATRIX_MIN_SWIFT_VERSION"; then + return 0 + else + echo "Skipping Swift $version (< minimum $MATRIX_MIN_SWIFT_VERSION)" >&2 + return 1 + fi +} + # Parameters linux_command="$MATRIX_LINUX_COMMAND" # required if any Linux pipeline is enabled linux_setup_command="$MATRIX_LINUX_SETUP_COMMAND" @@ -89,7 +201,7 @@ if [[ \ fi -if [[ "$linux_5_9_enabled" == "true" ]]; then +if [[ "$linux_5_9_enabled" == "true" ]] && should_include_version "5.9"; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$linux_setup_command" \ --arg command "$linux_command" \ @@ -100,7 +212,7 @@ if [[ "$linux_5_9_enabled" == "true" ]]; then '.config[.config| length] |= . + { "name": "5.9", "image": $container_image, "swift_version": "5.9", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') fi -if [[ "$linux_5_10_enabled" == "true" ]]; then +if [[ "$linux_5_10_enabled" == "true" ]] && should_include_version "5.10"; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$linux_setup_command" \ --arg command "$linux_command" \ @@ -111,7 +223,7 @@ if [[ "$linux_5_10_enabled" == "true" ]]; then '.config[.config| length] |= . + { "name": "5.10", "image": $container_image, "swift_version": "5.10", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') fi -if [[ "$linux_6_0_enabled" == "true" ]]; then +if [[ "$linux_6_0_enabled" == "true" ]] && should_include_version "6.0"; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$linux_setup_command" \ --arg command "$linux_command" \ @@ -122,7 +234,7 @@ if [[ "$linux_6_0_enabled" == "true" ]]; then '.config[.config| length] |= . + { "name": "6.0", "image": $container_image, "swift_version": "6.0", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') fi -if [[ "$linux_6_1_enabled" == "true" ]]; then +if [[ "$linux_6_1_enabled" == "true" ]] && should_include_version "6.1"; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$linux_setup_command" \ --arg command "$linux_command" \ @@ -133,7 +245,7 @@ if [[ "$linux_6_1_enabled" == "true" ]]; then '.config[.config| length] |= . + { "name": "6.1", "image": $container_image, "swift_version": "6.1", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') fi -if [[ "$linux_6_2_enabled" == "true" ]]; then +if [[ "$linux_6_2_enabled" == "true" ]] && should_include_version "6.2"; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$linux_setup_command" \ --arg command "$linux_command" \ @@ -144,7 +256,7 @@ if [[ "$linux_6_2_enabled" == "true" ]]; then '.config[.config| length] |= . + { "name": "6.2", "image": $container_image, "swift_version": "6.2", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') fi -if [[ "$linux_nightly_next_enabled" == "true" ]]; then +if [[ "$linux_nightly_next_enabled" == "true" ]] && should_include_version "nightly-next"; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$linux_setup_command" \ --arg command "$linux_command" \ @@ -155,7 +267,7 @@ if [[ "$linux_nightly_next_enabled" == "true" ]]; then '.config[.config| length] |= . + { "name": "nightly-next", "image": $container_image, "swift_version": "nightly-next", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') fi -if [[ "$linux_nightly_main_enabled" == "true" ]]; then +if [[ "$linux_nightly_main_enabled" == "true" ]] && should_include_version "nightly-main"; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$linux_setup_command" \ --arg command "$linux_command" \ @@ -178,7 +290,7 @@ if [[ \ fi fi -if [[ "$windows_6_0_enabled" == "true" ]]; then +if [[ "$windows_6_0_enabled" == "true" ]] && should_include_version "6.0"; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$windows_setup_command" \ --arg command "$windows_command" \ @@ -189,7 +301,7 @@ if [[ "$windows_6_0_enabled" == "true" ]]; then '.config[.config| length] |= . + { "name": "6.0", "image": $container_image, "swift_version": "6.0", "platform": "Windows", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars }') fi -if [[ "$windows_6_1_enabled" == "true" ]]; then +if [[ "$windows_6_1_enabled" == "true" ]] && should_include_version "6.1"; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$windows_setup_command" \ --arg command "$windows_command" \ @@ -200,7 +312,7 @@ if [[ "$windows_6_1_enabled" == "true" ]]; then '.config[.config| length] |= . + { "name": "6.1", "image": $container_image, "swift_version": "6.1", "platform": "Windows", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars }') fi -if [[ "$windows_6_2_enabled" == "true" ]]; then +if [[ "$windows_6_2_enabled" == "true" ]] && should_include_version "6.2"; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$windows_setup_command" \ --arg command "$windows_command" \ @@ -211,7 +323,7 @@ if [[ "$windows_6_2_enabled" == "true" ]]; then '.config[.config| length] |= . + { "name": "6.2", "image": $container_image, "swift_version": "6.2", "platform": "Windows", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars }') fi -if [[ "$windows_nightly_next_enabled" == "true" ]]; then +if [[ "$windows_nightly_next_enabled" == "true" ]] && should_include_version "nightly-next"; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$windows_setup_command" \ --arg command "$windows_command" \ @@ -222,7 +334,7 @@ if [[ "$windows_nightly_next_enabled" == "true" ]]; then '.config[.config| length] |= . + { "name": "nightly-next", "image": $container_image, "swift_version": "nightly-next", "platform": "Windows", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars }') fi -if [[ "$windows_nightly_main_enabled" == "true" ]]; then +if [[ "$windows_nightly_main_enabled" == "true" ]] && should_include_version "nightly-main"; then matrix=$(echo "$matrix" | jq -c \ --arg setup_command "$windows_setup_command" \ --arg command "$windows_command" \ From 8b96e5139697e5e627b3962f9d439fc4f9f6945a Mon Sep 17 00:00:00 2001 From: Rick Newton-Rogers Date: Wed, 22 Oct 2025 09:15:11 +0100 Subject: [PATCH 2/4] refactoring generaate matrix script --- scripts/generate_matrix.sh | 346 ++++++++++++++++--------------------- 1 file changed, 145 insertions(+), 201 deletions(-) diff --git a/scripts/generate_matrix.sh b/scripts/generate_matrix.sh index a6f963797a..4ea294d668 100755 --- a/scripts/generate_matrix.sh +++ b/scripts/generate_matrix.sh @@ -12,7 +12,74 @@ ## SPDX-License-Identifier: Apache-2.0 ## ##===----------------------------------------------------------------------===## -set -x + +set -uo pipefail + +log() { printf -- "** %s\n" "$*" >&2; } +error() { printf -- "** ERROR: %s\n" "$*" >&2; } +fatal() { error "$@"; exit 1; } + +# Binary dependencies +JQ_BIN="${JQ_BIN:-$(which jq 2> /dev/null)}"; test -n "$JQ_BIN" || fatal "JQ_BIN unset and no jq on PATH" +SED_BIN="${SED_BIN:-$(which sed 2> /dev/null)}"; test -n "$SED_BIN" || fatal "SED_BIN unset and no sed on PATH" +HEAD_BIN="${HEAD_BIN:-$(which head 2> /dev/null)}"; test -n "$HEAD_BIN" || fatal "HEAD_BIN unset and no head on PATH" + + +# Parameters +linux_command="${MATRIX_LINUX_COMMAND:-}" # required if any Linux pipeline is enabled +linux_setup_command="${MATRIX_LINUX_SETUP_COMMAND:-}" +linux_5_9_enabled="${MATRIX_LINUX_5_9_ENABLED:=false}" +linux_5_9_command_arguments="${MATRIX_LINUX_5_9_COMMAND_ARGUMENTS:-}" +linux_5_10_enabled="${MATRIX_LINUX_5_10_ENABLED:=true}" +linux_5_10_command_arguments="${MATRIX_LINUX_5_10_COMMAND_ARGUMENTS:-}" +linux_6_0_enabled="${MATRIX_LINUX_6_0_ENABLED:=true}" +linux_6_1_enabled="${MATRIX_LINUX_6_1_ENABLED:=true}" +linux_6_2_enabled="${MATRIX_LINUX_6_2_ENABLED:=true}" +linux_6_0_command_arguments="${MATRIX_LINUX_6_0_COMMAND_ARGUMENTS:-}" +linux_6_1_command_arguments="${MATRIX_LINUX_6_1_COMMAND_ARGUMENTS:-}" +linux_6_2_command_arguments="${MATRIX_LINUX_6_2_COMMAND_ARGUMENTS:-}" +linux_nightly_next_enabled="${MATRIX_LINUX_NIGHTLY_NEXT_ENABLED:=${MATRIX_LINUX_NIGHTLY_6_1_ENABLED:=true}}" +linux_nightly_next_command_arguments="${MATRIX_LINUX_NIGHTLY_NEXT_COMMAND_ARGUMENTS:=${MATRIX_LINUX_NIGHTLY_6_1_COMMAND_ARGUMENTS:-}}" +linux_nightly_main_enabled="${MATRIX_LINUX_NIGHTLY_MAIN_ENABLED:=true}" +linux_nightly_main_command_arguments="${MATRIX_LINUX_NIGHTLY_MAIN_COMMAND_ARGUMENTS:-}" + +windows_command="${MATRIX_WINDOWS_COMMAND:-}" # required if any Windows pipeline is enabled +windows_setup_command="${MATRIX_WINDOWS_SETUP_COMMAND:-}" +windows_6_0_enabled="${MATRIX_WINDOWS_6_0_ENABLED:=false}" +windows_6_1_enabled="${MATRIX_WINDOWS_6_1_ENABLED:=false}" +windows_6_2_enabled="${MATRIX_WINDOWS_6_2_ENABLED:=false}" +windows_6_0_command_arguments="${MATRIX_WINDOWS_6_0_COMMAND_ARGUMENTS:-}" +windows_6_1_command_arguments="${MATRIX_WINDOWS_6_1_COMMAND_ARGUMENTS:-}" +windows_6_2_command_arguments="${MATRIX_WINDOWS_6_2_COMMAND_ARGUMENTS:-}" +windows_nightly_next_enabled="${MATRIX_WINDOWS_NIGHTLY_NEXT_ENABLED:=${MATRIX_WINDOWS_NIGHTLY_6_1_ENABLED:=false}}" +windows_nightly_next_command_arguments="${MATRIX_WINDOWS_NIGHTLY_NEXT_COMMAND_ARGUMENTS:=${MATRIX_WINDOWS_NIGHTLY_6_1_COMMAND_ARGUMENTS:-}}" +windows_nightly_main_enabled="${MATRIX_WINDOWS_NIGHTLY_MAIN_ENABLED:=false}" +windows_nightly_main_command_arguments="${MATRIX_WINDOWS_NIGHTLY_MAIN_COMMAND_ARGUMENTS:-}" + +# Get pre-parsed environment variables JSON +linux_env_vars_json="${MATRIX_LINUX_ENV_VARS_JSON:-"{}"}" +windows_env_vars_json="${MATRIX_WINDOWS_ENV_VARS_JSON:-"{}"}" + +# Defaults +linux_runner="ubuntu-latest" +linux_5_9_container_image="swift:5.9-jammy" +linux_5_10_container_image="swift:5.10-jammy" +linux_6_0_container_image="swift:6.0-jammy" +linux_6_1_container_image="swift:6.1-jammy" +linux_6_2_container_image="swift:6.2-noble" +linux_nightly_next_container_image="swiftlang/swift:nightly-6.2-jammy" +linux_nightly_main_container_image="swiftlang/swift:nightly-main-jammy" + +windows_6_0_runner="windows-2022" +windows_6_0_container_image="swift:6.0-windowsservercore-ltsc2022" +windows_6_1_runner="windows-2022" +windows_6_1_container_image="swift:6.1-windowsservercore-ltsc2022" +windows_6_2_runner="windows-2022" +windows_6_2_container_image="swift:6.2-windowsservercore-ltsc2022" +windows_nightly_next_runner="windows-2022" +windows_nightly_next_container_image="swiftlang/swift:nightly-6.2-windowsservercore-ltsc2022" +windows_nightly_main_runner="windows-2022" +windows_nightly_main_container_image="swiftlang/swift:nightly-main-windowsservercore-ltsc2022" # Extract swift-tools-version from a manifest file get_tools_version() { @@ -24,7 +91,7 @@ get_tools_version() { # Parse the first line: // swift-tools-version:X.Y or // swift-tools-version: X.Y local tools_version - tools_version=$(head -n 1 "$manifest" | sed -n 's#^// *swift-tools-version: *\([0-9.]*\).*#\1#p') + tools_version=$("$HEAD_BIN" -n 1 "$manifest" | "$SED_BIN" -n 's#^// *swift-tools-version: *\([0-9.]*\).*#\1#p') echo "$tools_version" } @@ -56,15 +123,18 @@ version_gte() { return 1 } -# Find minimum Swift version across all manifests -if [[ -z "${MATRIX_MIN_SWIFT_VERSION:-}" ]]; then - min_version="" +# Find minimum Swift version across all Package manifests +# Checks Package.swift and all Package@swift-*.swift files +# Returns the minimum tools version found across all manifests +find_minimum_swift_version() { + local min_version="" # Check default Package.swift + local default_version default_version=$(get_tools_version "Package.swift") if [[ -n "$default_version" ]]; then min_version="$default_version" - echo "Found Package.swift with tools-version: $default_version" >&2 + log "Found Package.swift with tools-version: $default_version" fi # Check all version-specific manifests @@ -73,26 +143,27 @@ if [[ -z "${MATRIX_MIN_SWIFT_VERSION:-}" ]]; then continue fi + local version version=$(get_tools_version "$manifest") if [[ -z "$version" ]]; then continue fi - echo "Found $manifest with tools-version: $version" >&2 + log "Found $manifest with tools-version: $version" # If this version is less than current minimum, update minimum - if [[ -z "$min_version" ]] || ! version_gte "$version" "$min_version"; then + if [[ -z "$min_version" ]] || version_gte "$min_version" "$version"; then min_version="$version" fi done if [[ -n "$min_version" ]]; then - MATRIX_MIN_SWIFT_VERSION="$min_version" - echo "Minimum Swift tools version: $MATRIX_MIN_SWIFT_VERSION" >&2 + echo "$min_version" else - echo "Warning: Could not find any Swift tools version in Package manifests" >&2 + log "Warning: Could not find any Swift tools version in Package manifests" + echo "" fi -fi +} # Check if a Swift version should be included in the matrix # Nightlies are always included @@ -121,70 +192,59 @@ should_include_version() { if version_gte "$version" "$MATRIX_MIN_SWIFT_VERSION"; then return 0 else - echo "Skipping Swift $version (< minimum $MATRIX_MIN_SWIFT_VERSION)" >&2 + log "Skipping Swift $version (< minimum $MATRIX_MIN_SWIFT_VERSION)" return 1 fi } -# Parameters -linux_command="$MATRIX_LINUX_COMMAND" # required if any Linux pipeline is enabled -linux_setup_command="$MATRIX_LINUX_SETUP_COMMAND" -linux_5_9_enabled="${MATRIX_LINUX_5_9_ENABLED:=false}" -linux_5_9_command_arguments="$MATRIX_LINUX_5_9_COMMAND_ARGUMENTS" -linux_5_10_enabled="${MATRIX_LINUX_5_10_ENABLED:=true}" -linux_5_10_command_arguments="$MATRIX_LINUX_5_10_COMMAND_ARGUMENTS" -linux_6_0_enabled="${MATRIX_LINUX_6_0_ENABLED:=true}" -linux_6_1_enabled="${MATRIX_LINUX_6_1_ENABLED:=true}" -linux_6_2_enabled="${MATRIX_LINUX_6_2_ENABLED:=true}" -linux_6_0_command_arguments="$MATRIX_LINUX_6_0_COMMAND_ARGUMENTS" -linux_6_1_command_arguments="$MATRIX_LINUX_6_1_COMMAND_ARGUMENTS" -linux_6_2_command_arguments="$MATRIX_LINUX_6_2_COMMAND_ARGUMENTS" -linux_nightly_next_enabled="${MATRIX_LINUX_NIGHTLY_NEXT_ENABLED:=${MATRIX_LINUX_NIGHTLY_6_1_ENABLED:=true}}" -linux_nightly_next_command_arguments="${MATRIX_LINUX_NIGHTLY_NEXT_COMMAND_ARGUMENTS:=${MATRIX_LINUX_NIGHTLY_6_1_COMMAND_ARGUMENTS}}" -linux_nightly_main_enabled="${MATRIX_LINUX_NIGHTLY_MAIN_ENABLED:=true}" -linux_nightly_main_command_arguments="$MATRIX_LINUX_NIGHTLY_MAIN_COMMAND_ARGUMENTS" - -windows_command="$MATRIX_WINDOWS_COMMAND" # required if any Windows pipeline is enabled -windows_setup_command="$MATRIX_WINDOWS_SETUP_COMMAND" -windows_6_0_enabled="${MATRIX_WINDOWS_6_0_ENABLED:=false}" -windows_6_1_enabled="${MATRIX_WINDOWS_6_1_ENABLED:=false}" -windows_6_2_enabled="${MATRIX_WINDOWS_6_2_ENABLED:=false}" -windows_6_0_command_arguments="$MATRIX_WINDOWS_6_0_COMMAND_ARGUMENTS" -windows_6_1_command_arguments="$MATRIX_WINDOWS_6_1_COMMAND_ARGUMENTS" -windows_6_2_command_arguments="$MATRIX_WINDOWS_6_1_COMMAND_ARGUMENTS" -windows_nightly_next_enabled="${MATRIX_WINDOWS_NIGHTLY_NEXT_ENABLED:=${MATRIX_WINDOWS_NIGHTLY_6_1_ENABLED:=false}}" -windows_nightly_next_command_arguments="${MATRIX_WINDOWS_NIGHTLY_NEXT_COMMAND_ARGUMENTS:=${MATRIX_WINDOWS_NIGHTLY_6_1_COMMAND_ARGUMENTS}}" -windows_nightly_main_enabled="${MATRIX_WINDOWS_NIGHTLY_MAIN_ENABLED:=false}" -windows_nightly_main_command_arguments="$MATRIX_WINDOWS_NIGHTLY_MAIN_COMMAND_ARGUMENTS" - -# Defaults -linux_runner="ubuntu-latest" -linux_5_9_container_image="swift:5.9-jammy" -linux_5_10_container_image="swift:5.10-jammy" -linux_6_0_container_image="swift:6.0-jammy" -linux_6_1_container_image="swift:6.1-jammy" -linux_6_2_container_image="swift:6.2-noble" -linux_nightly_next_container_image="swiftlang/swift:nightly-6.2-jammy" -linux_nightly_main_container_image="swiftlang/swift:nightly-main-jammy" - -windows_6_0_runner="windows-2022" -windows_6_0_container_image="swift:6.0-windowsservercore-ltsc2022" -windows_6_1_runner="windows-2022" -windows_6_1_container_image="swift:6.1-windowsservercore-ltsc2022" -windows_6_2_runner="windows-2022" -windows_6_2_container_image="swift:6.2-windowsservercore-ltsc2022" -windows_nightly_next_runner="windows-2022" -windows_nightly_next_container_image="swiftlang/swift:nightly-6.2-windowsservercore-ltsc2022" -windows_nightly_main_runner="windows-2022" -windows_nightly_main_container_image="swiftlang/swift:nightly-main-windowsservercore-ltsc2022" - -# Get pre-parsed environment variables JSON -linux_env_vars_json="${MATRIX_LINUX_ENV_VARS_JSON:-"{}"}" -windows_env_vars_json="${MATRIX_WINDOWS_ENV_VARS_JSON:-"{}"}" +# Add a matrix entry for a specific Swift version and platform +# Parameters: +# $1: platform ("Linux" or "Windows") +# $2: version name (e.g., "5.9", "6.0", "nightly-main") +# $3: enabled flag ("true" or "false") +# $4: setup_command +# $5: command +# $6: command_arguments +# $7: container_image +# $8: runner +# $9: env_vars_json +add_matrix_entry() { + local platform="$1" + local version="$2" + local enabled="$3" + local setup_command="$4" + local command="$5" + local command_arguments="$6" + local container_image="$7" + local runner="$8" + local env_vars_json="$9" + + if [[ "$enabled" == "true" ]] && should_include_version "$version"; then + # shellcheck disable=SC2016 # Our use of JQ_BIN means that shellcheck can't tell this is a `jq` invocation + matrix=$(echo "$matrix" | "$JQ_BIN" -c \ + --arg setup_command "$setup_command" \ + --arg command "$command" \ + --arg command_arguments "$command_arguments" \ + --arg container_image "$container_image" \ + --arg runner "$runner" \ + --arg platform "$platform" \ + --arg version "$version" \ + --argjson env_vars "$env_vars_json" \ + '.config[.config| length] |= . + { "name": $version, "image": $container_image, "swift_version": $version, "platform": $platform, "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') + fi +} # Create matrix from inputs matrix='{"config": []}' +# Auto-detect minimum Swift version if not explicitly set +if [[ -z "${MATRIX_MIN_SWIFT_VERSION:-}" ]]; then + MATRIX_MIN_SWIFT_VERSION=$(find_minimum_swift_version) + if [[ -n "$MATRIX_MIN_SWIFT_VERSION" ]]; then + log "Minimum Swift tools version: $MATRIX_MIN_SWIFT_VERSION" + fi +fi + ## Linux if [[ \ "$linux_5_9_enabled" == "true" || \ @@ -196,87 +256,18 @@ if [[ \ "$linux_nightly_main_enabled" == "true" \ ]]; then if [[ -z "$linux_command" ]]; then - echo "No linux command defined"; exit 1 + fatal "No linux command defined" fi fi - -if [[ "$linux_5_9_enabled" == "true" ]] && should_include_version "5.9"; then - matrix=$(echo "$matrix" | jq -c \ - --arg setup_command "$linux_setup_command" \ - --arg command "$linux_command" \ - --arg command_arguments "$linux_5_9_command_arguments" \ - --arg container_image "$linux_5_9_container_image" \ - --arg runner "$linux_runner" \ - --argjson env_vars "$linux_env_vars_json" \ - '.config[.config| length] |= . + { "name": "5.9", "image": $container_image, "swift_version": "5.9", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') -fi - -if [[ "$linux_5_10_enabled" == "true" ]] && should_include_version "5.10"; then - matrix=$(echo "$matrix" | jq -c \ - --arg setup_command "$linux_setup_command" \ - --arg command "$linux_command" \ - --arg command_arguments "$linux_5_10_command_arguments" \ - --arg container_image "$linux_5_10_container_image" \ - --arg runner "$linux_runner" \ - --argjson env_vars "$linux_env_vars_json" \ - '.config[.config| length] |= . + { "name": "5.10", "image": $container_image, "swift_version": "5.10", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') -fi - -if [[ "$linux_6_0_enabled" == "true" ]] && should_include_version "6.0"; then - matrix=$(echo "$matrix" | jq -c \ - --arg setup_command "$linux_setup_command" \ - --arg command "$linux_command" \ - --arg command_arguments "$linux_6_0_command_arguments" \ - --arg container_image "$linux_6_0_container_image" \ - --arg runner "$linux_runner" \ - --argjson env_vars "$linux_env_vars_json" \ - '.config[.config| length] |= . + { "name": "6.0", "image": $container_image, "swift_version": "6.0", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') -fi - -if [[ "$linux_6_1_enabled" == "true" ]] && should_include_version "6.1"; then - matrix=$(echo "$matrix" | jq -c \ - --arg setup_command "$linux_setup_command" \ - --arg command "$linux_command" \ - --arg command_arguments "$linux_6_1_command_arguments" \ - --arg container_image "$linux_6_1_container_image" \ - --arg runner "$linux_runner" \ - --argjson env_vars "$linux_env_vars_json" \ - '.config[.config| length] |= . + { "name": "6.1", "image": $container_image, "swift_version": "6.1", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') -fi - -if [[ "$linux_6_2_enabled" == "true" ]] && should_include_version "6.2"; then - matrix=$(echo "$matrix" | jq -c \ - --arg setup_command "$linux_setup_command" \ - --arg command "$linux_command" \ - --arg command_arguments "$linux_6_2_command_arguments" \ - --arg container_image "$linux_6_2_container_image" \ - --arg runner "$linux_runner" \ - --argjson env_vars "$linux_env_vars_json" \ - '.config[.config| length] |= . + { "name": "6.2", "image": $container_image, "swift_version": "6.2", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') -fi - -if [[ "$linux_nightly_next_enabled" == "true" ]] && should_include_version "nightly-next"; then - matrix=$(echo "$matrix" | jq -c \ - --arg setup_command "$linux_setup_command" \ - --arg command "$linux_command" \ - --arg command_arguments "$linux_nightly_next_command_arguments" \ - --arg container_image "$linux_nightly_next_container_image" \ - --arg runner "$linux_runner" \ - --argjson env_vars "$linux_env_vars_json" \ - '.config[.config| length] |= . + { "name": "nightly-next", "image": $container_image, "swift_version": "nightly-next", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') -fi - -if [[ "$linux_nightly_main_enabled" == "true" ]] && should_include_version "nightly-main"; then - matrix=$(echo "$matrix" | jq -c \ - --arg setup_command "$linux_setup_command" \ - --arg command "$linux_command" \ - --arg command_arguments "$linux_nightly_main_command_arguments" \ - --arg container_image "$linux_nightly_main_container_image" \ - --arg runner "$linux_runner" \ - --argjson env_vars "$linux_env_vars_json" \ - '.config[.config| length] |= . + { "name": "nightly-main", "image": $container_image, "swift_version": "nightly-main", "platform": "Linux", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars}') -fi +# Platform Version Enabled Setup Command Arguments Image Runner Env +add_matrix_entry "Linux" "5.9" "$linux_5_9_enabled" "$linux_setup_command" "$linux_command" "$linux_5_9_command_arguments" "$linux_5_9_container_image" "$linux_runner" "$linux_env_vars_json" +add_matrix_entry "Linux" "5.10" "$linux_5_10_enabled" "$linux_setup_command" "$linux_command" "$linux_5_10_command_arguments" "$linux_5_10_container_image" "$linux_runner" "$linux_env_vars_json" +add_matrix_entry "Linux" "6.0" "$linux_6_0_enabled" "$linux_setup_command" "$linux_command" "$linux_6_0_command_arguments" "$linux_6_0_container_image" "$linux_runner" "$linux_env_vars_json" +add_matrix_entry "Linux" "6.1" "$linux_6_1_enabled" "$linux_setup_command" "$linux_command" "$linux_6_1_command_arguments" "$linux_6_1_container_image" "$linux_runner" "$linux_env_vars_json" +add_matrix_entry "Linux" "6.2" "$linux_6_2_enabled" "$linux_setup_command" "$linux_command" "$linux_6_2_command_arguments" "$linux_6_2_container_image" "$linux_runner" "$linux_env_vars_json" +add_matrix_entry "Linux" "nightly-next" "$linux_nightly_next_enabled" "$linux_setup_command" "$linux_command" "$linux_nightly_next_command_arguments" "$linux_nightly_next_container_image" "$linux_runner" "$linux_env_vars_json" +add_matrix_entry "Linux" "nightly-main" "$linux_nightly_main_enabled" "$linux_setup_command" "$linux_command" "$linux_nightly_main_command_arguments" "$linux_nightly_main_container_image" "$linux_runner" "$linux_env_vars_json" ## Windows if [[ \ @@ -286,63 +277,16 @@ if [[ \ "$windows_nightly_main_enabled" == "true" \ ]]; then if [[ -z "$windows_command" ]]; then - echo "No windows command defined"; exit 1 + fatal "No windows command defined" fi fi -if [[ "$windows_6_0_enabled" == "true" ]] && should_include_version "6.0"; then - matrix=$(echo "$matrix" | jq -c \ - --arg setup_command "$windows_setup_command" \ - --arg command "$windows_command" \ - --arg command_arguments "$windows_6_0_command_arguments" \ - --arg container_image "$windows_6_0_container_image" \ - --arg runner "$windows_6_0_runner" \ - --argjson env_vars "$windows_env_vars_json" \ - '.config[.config| length] |= . + { "name": "6.0", "image": $container_image, "swift_version": "6.0", "platform": "Windows", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars }') -fi - -if [[ "$windows_6_1_enabled" == "true" ]] && should_include_version "6.1"; then - matrix=$(echo "$matrix" | jq -c \ - --arg setup_command "$windows_setup_command" \ - --arg command "$windows_command" \ - --arg command_arguments "$windows_6_1_command_arguments" \ - --arg container_image "$windows_6_1_container_image" \ - --arg runner "$windows_6_1_runner" \ - --argjson env_vars "$windows_env_vars_json" \ - '.config[.config| length] |= . + { "name": "6.1", "image": $container_image, "swift_version": "6.1", "platform": "Windows", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars }') -fi - -if [[ "$windows_6_2_enabled" == "true" ]] && should_include_version "6.2"; then - matrix=$(echo "$matrix" | jq -c \ - --arg setup_command "$windows_setup_command" \ - --arg command "$windows_command" \ - --arg command_arguments "$windows_6_2_command_arguments" \ - --arg container_image "$windows_6_2_container_image" \ - --arg runner "$windows_6_2_runner" \ - --argjson env_vars "$windows_env_vars_json" \ - '.config[.config| length] |= . + { "name": "6.2", "image": $container_image, "swift_version": "6.2", "platform": "Windows", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars }') -fi +# Platform Version Enabled Setup Command Arguments Image Runner Env +add_matrix_entry "Windows" "6.0" "$windows_6_0_enabled" "$windows_setup_command" "$windows_command" "$windows_6_0_command_arguments" "$windows_6_0_container_image" "$windows_6_0_runner" "$windows_env_vars_json" +add_matrix_entry "Windows" "6.1" "$windows_6_1_enabled" "$windows_setup_command" "$windows_command" "$windows_6_1_command_arguments" "$windows_6_1_container_image" "$windows_6_1_runner" "$windows_env_vars_json" +add_matrix_entry "Windows" "6.2" "$windows_6_2_enabled" "$windows_setup_command" "$windows_command" "$windows_6_2_command_arguments" "$windows_6_2_container_image" "$windows_6_2_runner" "$windows_env_vars_json" +add_matrix_entry "Windows" "nightly-next" "$windows_nightly_next_enabled" "$windows_setup_command" "$windows_command" "$windows_nightly_next_command_arguments" "$windows_nightly_next_container_image" "$windows_nightly_next_runner" "$windows_env_vars_json" +add_matrix_entry "Windows" "nightly-main" "$windows_nightly_main_enabled" "$windows_setup_command" "$windows_command" "$windows_nightly_main_command_arguments" "$windows_nightly_main_container_image" "$windows_nightly_main_runner" "$windows_env_vars_json" -if [[ "$windows_nightly_next_enabled" == "true" ]] && should_include_version "nightly-next"; then - matrix=$(echo "$matrix" | jq -c \ - --arg setup_command "$windows_setup_command" \ - --arg command "$windows_command" \ - --arg command_arguments "$windows_nightly_next_command_arguments" \ - --arg container_image "$windows_nightly_next_container_image" \ - --arg runner "$windows_nightly_next_runner" \ - --argjson env_vars "$windows_env_vars_json" \ - '.config[.config| length] |= . + { "name": "nightly-next", "image": $container_image, "swift_version": "nightly-next", "platform": "Windows", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars }') -fi - -if [[ "$windows_nightly_main_enabled" == "true" ]] && should_include_version "nightly-main"; then - matrix=$(echo "$matrix" | jq -c \ - --arg setup_command "$windows_setup_command" \ - --arg command "$windows_command" \ - --arg command_arguments "$windows_nightly_main_command_arguments" \ - --arg container_image "$windows_nightly_main_container_image" \ - --arg runner "$windows_nightly_main_runner" \ - --argjson env_vars "$windows_env_vars_json" \ - '.config[.config| length] |= . + { "name": "nightly-main", "image": $container_image, "swift_version": "nightly-main", "platform": "Windows", "command": $command, "command_arguments": $command_arguments, "setup_command": $setup_command, "runner": $runner, "env": $env_vars }') -fi -echo "$matrix" | jq -c +echo "$matrix" | "$JQ_BIN" -c From a508077b65b1ee5e16cc17aac860ebc09b88c569 Mon Sep 17 00:00:00 2001 From: Rick Newton-Rogers Date: Tue, 21 Oct 2025 14:35:27 +0100 Subject: [PATCH 3/4] test shim --- .github/workflows/benchmarks.yml | 6 +++--- .github/workflows/cmake_tests.yml | 4 ++-- .github/workflows/cxx_interop.yml | 6 +++--- .github/workflows/main.yml | 18 +++++++++--------- .github/workflows/pull_request.yml | 18 +++++++++--------- .github/workflows/release_builds.yml | 4 ++-- .github/workflows/static_sdk.yml | 6 +++--- .github/workflows/swift_load_test_matrix.yml | 2 +- .github/workflows/swift_matrix.yml | 6 +++--- .github/workflows/unit_tests.yml | 4 ++-- 10 files changed, 37 insertions(+), 37 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index a89131eb36..0a39309734 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -102,9 +102,9 @@ jobs: exit 1 fi - echo "benchmarks-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" + echo "benchmarks-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" env: - MATRIX_LINUX_COMMAND: "curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} bash" + MATRIX_LINUX_COMMAND: "curl -s https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} bash" MATRIX_LINUX_SETUP_COMMAND: "swift --version && apt-get update -y -q && apt-get install -y -q curl libjemalloc-dev && git config --global --add safe.directory /$(basename ${{ github.workspace }})" MATRIX_MIN_SWIFT_VERSION: ${{ inputs.minimum_swift_version }} MATRIX_LINUX_5_9_ENABLED: ${{ inputs.linux_5_9_enabled }} @@ -119,7 +119,7 @@ jobs: name: Benchmarks needs: construct-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions with: name: "Benchmarks" matrix_string: '${{ needs.construct-matrix.outputs.benchmarks-matrix }}' diff --git a/.github/workflows/cmake_tests.yml b/.github/workflows/cmake_tests.yml index 7a0b80de4e..ad6e7852d6 100644 --- a/.github/workflows/cmake_tests.yml +++ b/.github/workflows/cmake_tests.yml @@ -43,11 +43,11 @@ jobs: which curl jq || apt -q update which curl || apt -yq install curl which jq || apt -yq install jq - curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/update-cmake-lists.sh | CONFIG_JSON='${{ inputs.update_cmake_lists_config }}' FAIL_ON_CHANGES=true bash + curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/update-cmake-lists.sh | CONFIG_JSON='${{ inputs.update_cmake_lists_config }}' FAIL_ON_CHANGES=true bash - name: CMake build run: | which curl cmake ninja || apt -q update which curl || apt -yq install curl which cmake || apt -yq install cmake which ninja || apt -yq install ninja-build - curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/cmake-build.sh | TARGET_DIRECTORY="${{ inputs.cmake_build_target_directory }}" CMAKE_VERSION="${{ inputs.cmake_version }}" bash + curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/cmake-build.sh | TARGET_DIRECTORY="${{ inputs.cmake_build_target_directory }}" CMAKE_VERSION="${{ inputs.cmake_version }}" bash diff --git a/.github/workflows/cxx_interop.yml b/.github/workflows/cxx_interop.yml index bdce10750e..c6f49a7711 100644 --- a/.github/workflows/cxx_interop.yml +++ b/.github/workflows/cxx_interop.yml @@ -105,9 +105,9 @@ jobs: exit 1 fi - echo "cxx-interop-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" MATRIX_WINDOWS_ENV_VARS_JSON="${windows_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" + echo "cxx-interop-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" MATRIX_WINDOWS_ENV_VARS_JSON="${windows_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" env: - MATRIX_LINUX_COMMAND: "curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check-cxx-interop-compatibility.sh | bash" + MATRIX_LINUX_COMMAND: "curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/check-cxx-interop-compatibility.sh | bash" MATRIX_LINUX_SETUP_COMMAND: "swift --version && apt-get update -y -q && apt-get install -y -q curl jq" MATRIX_MIN_SWIFT_VERSION: ${{ inputs.minimum_swift_version }} MATRIX_LINUX_5_9_ENABLED: ${{ inputs.linux_5_9_enabled }} @@ -122,7 +122,7 @@ jobs: name: Cxx interop needs: construct-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions with: name: "Cxx interop" matrix_string: '${{ needs.construct-matrix.outputs.cxx-interop-matrix }}' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 62726689b6..9fd721745f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,7 +13,7 @@ jobs: unit-tests: name: Unit tests # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/unit_tests.yml@main + uses: apple/swift-nio/.github/workflows/unit_tests.yml@skip_unsupported_swift_versions with: linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" @@ -25,12 +25,12 @@ jobs: cxx-interop: name: Cxx interop # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/cxx_interop.yml@main + uses: apple/swift-nio/.github/workflows/cxx_interop.yml@skip_unsupported_swift_versions benchmarks: name: Benchmarks # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/benchmarks.yml@main + uses: apple/swift-nio/.github/workflows/benchmarks.yml@skip_unsupported_swift_versions with: benchmark_package_path: "Benchmarks" @@ -45,7 +45,7 @@ jobs: with: persist-credentials: false - id: generate-matrix - run: echo "integration-test-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | bash)" >> "$GITHUB_OUTPUT" + run: echo "integration-test-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/generate_matrix.sh | bash)" >> "$GITHUB_OUTPUT" env: MATRIX_LINUX_SETUP_COMMAND: "apt-get update -y -q && apt-get install -y -q lsof dnsutils netcat-openbsd net-tools curl jq" MATRIX_LINUX_COMMAND: "./scripts/integration_tests.sh" @@ -54,7 +54,7 @@ jobs: name: Integration tests needs: construct-integration-test-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions with: name: "Integration tests" matrix_string: '${{ needs.construct-integration-test-matrix.outputs.integration-test-matrix }}' @@ -62,17 +62,17 @@ jobs: static-sdk: name: Static Linux Swift SDK # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/static_sdk.yml@main + uses: apple/swift-nio/.github/workflows/static_sdk.yml@skip_unsupported_swift_versions wasm-sdk: name: WebAssembly Swift SDK # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/wasm_sdk.yml@main + uses: apple/swift-nio/.github/workflows/wasm_sdk.yml@skip_unsupported_swift_versions macos-tests: name: macOS tests # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/macos_tests.yml@main + uses: apple/swift-nio/.github/workflows/macos_tests.yml@skip_unsupported_swift_versions with: runner_pool: nightly build_scheme: swift-nio-Package @@ -86,4 +86,4 @@ jobs: release-builds: name: Release builds - uses: apple/swift-nio/.github/workflows/release_builds.yml@main + uses: apple/swift-nio/.github/workflows/release_builds.yml@skip_unsupported_swift_versions diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 0d493e5bd9..0f4e1b63e7 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -19,7 +19,7 @@ jobs: unit-tests: name: Unit tests # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/unit_tests.yml@main + uses: apple/swift-nio/.github/workflows/unit_tests.yml@skip_unsupported_swift_versions with: linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" @@ -31,14 +31,14 @@ jobs: benchmarks: name: Benchmarks # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/benchmarks.yml@main + uses: apple/swift-nio/.github/workflows/benchmarks.yml@skip_unsupported_swift_versions with: benchmark_package_path: "Benchmarks" cxx-interop: name: Cxx interop # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/cxx_interop.yml@main + uses: apple/swift-nio/.github/workflows/cxx_interop.yml@skip_unsupported_swift_versions construct-integration-test-matrix: name: Construct integration test matrix @@ -51,7 +51,7 @@ jobs: with: persist-credentials: false - id: generate-matrix - run: echo "integration-test-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | bash)" >> "$GITHUB_OUTPUT" + run: echo "integration-test-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/generate_matrix.sh | bash)" >> "$GITHUB_OUTPUT" env: MATRIX_LINUX_SETUP_COMMAND: "apt-get update -y -q && apt-get install -y -q lsof dnsutils netcat-openbsd net-tools curl jq" MATRIX_LINUX_COMMAND: "./scripts/integration_tests.sh" @@ -60,7 +60,7 @@ jobs: name: Integration tests needs: construct-integration-test-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions with: name: "Integration tests" matrix_string: '${{ needs.construct-integration-test-matrix.outputs.integration-test-matrix }}' @@ -86,7 +86,7 @@ jobs: macos-tests: name: macOS tests # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/macos_tests.yml@main + uses: apple/swift-nio/.github/workflows/macos_tests.yml@skip_unsupported_swift_versions with: runner_pool: general build_scheme: swift-nio-Package @@ -96,13 +96,13 @@ jobs: static-sdk: name: Static Linux Swift SDK # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/static_sdk.yml@main + uses: apple/swift-nio/.github/workflows/static_sdk.yml@skip_unsupported_swift_versions wasm-sdk: name: WebAssembly Swift SDK # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/wasm_sdk.yml@main + uses: apple/swift-nio/.github/workflows/wasm_sdk.yml@skip_unsupported_swift_versions release-builds: name: Release builds - uses: apple/swift-nio/.github/workflows/release_builds.yml@main + uses: apple/swift-nio/.github/workflows/release_builds.yml@skip_unsupported_swift_versions diff --git a/.github/workflows/release_builds.yml b/.github/workflows/release_builds.yml index ff445cdb29..b452ecc329 100644 --- a/.github/workflows/release_builds.yml +++ b/.github/workflows/release_builds.yml @@ -137,7 +137,7 @@ jobs: exit 1 fi - echo "release-build-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" MATRIX_WINDOWS_ENV_VARS_JSON="${windows_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" + echo "release-build-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" MATRIX_WINDOWS_ENV_VARS_JSON="${windows_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" env: MATRIX_LINUX_SETUP_COMMAND: "swift --version" MATRIX_LINUX_COMMAND: "swift build -c release" @@ -170,7 +170,7 @@ jobs: name: Release builds needs: construct-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions with: name: "Release builds" matrix_string: '${{ needs.construct-matrix.outputs.release-build-matrix }}' diff --git a/.github/workflows/static_sdk.yml b/.github/workflows/static_sdk.yml index 5ffd4870b6..3c5562699a 100644 --- a/.github/workflows/static_sdk.yml +++ b/.github/workflows/static_sdk.yml @@ -47,7 +47,7 @@ jobs: "platform":"Linux", "runner":"ubuntu-latest", "image":"ubuntu:jammy", - "setup_command":"apt update -q && apt install -y -q curl jq tar && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/install_swift_prerequisites.sh | bash && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/install_static_sdk.sh | INSTALL_SWIFT_STATIC_SDK_VERSION=latest INSTALL_SWIFT_STATIC_SDK_ARCH=x86_64 bash && hash -r", + "setup_command":"apt update -q && apt install -y -q curl jq tar && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/install_swift_prerequisites.sh | bash && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/install_static_sdk.sh | INSTALL_SWIFT_STATIC_SDK_VERSION=latest INSTALL_SWIFT_STATIC_SDK_ARCH=x86_64 bash && hash -r", "command":"swift build", "command_arguments":"${{ inputs.command_arguments }}", "env":'"$env_vars_json"' @@ -58,7 +58,7 @@ jobs: "platform":"Linux", "runner":"ubuntu-latest", "image":"ubuntu:jammy", - "setup_command":"apt update -q && apt install -y -q curl jq tar && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/install_swift_prerequisites.sh | bash && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/install_static_sdk.sh | INSTALL_SWIFT_STATIC_SDK_BRANCH=main INSTALL_SWIFT_STATIC_SDK_ARCH=x86_64 bash && hash -r", + "setup_command":"apt update -q && apt install -y -q curl jq tar && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/install_swift_prerequisites.sh | bash && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/install_static_sdk.sh | INSTALL_SWIFT_STATIC_SDK_BRANCH=main INSTALL_SWIFT_STATIC_SDK_ARCH=x86_64 bash && hash -r", "command":"swift build", "command_arguments":"${{ inputs.command_arguments }}", "env":'"$env_vars_json"' @@ -71,7 +71,7 @@ jobs: name: Static SDK needs: construct-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions with: name: "Static SDK" matrix_string: '${{ needs.construct-matrix.outputs.static-sdk-matrix }}' diff --git a/.github/workflows/swift_load_test_matrix.yml b/.github/workflows/swift_load_test_matrix.yml index bb3339b132..a2d69f9dbe 100644 --- a/.github/workflows/swift_load_test_matrix.yml +++ b/.github/workflows/swift_load_test_matrix.yml @@ -38,7 +38,7 @@ jobs: name: Execute matrix needs: load-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions with: name: ${{ inputs.name }} matrix_string: '${{ needs.load-matrix.outputs.swift-matrix }}' diff --git a/.github/workflows/swift_matrix.yml b/.github/workflows/swift_matrix.yml index 31c5320048..10d95a275e 100644 --- a/.github/workflows/swift_matrix.yml +++ b/.github/workflows/swift_matrix.yml @@ -168,7 +168,7 @@ jobs: COMMAND_OVERRIDE_NIGHTLY_MAIN: ${{ inputs.matrix_linux_nightly_main_command_override }} run: | apt-get -qq update && apt-get -qq -y install curl - curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check-matrix-job.sh | bash + curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/check-matrix-job.sh | bash windows: name: Windows (${{ matrix.swift.swift_version }}) @@ -192,7 +192,7 @@ jobs: persist-credentials: false - name: Donwload matrix script if: ${{ matrix.swift.enabled }} - run: curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check-matrix-job.ps1 -o __check-matrix-job.ps1 + run: curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/check-matrix-job.ps1 -o __check-matrix-job.ps1 - name: Run matrix job if: ${{ matrix.swift.enabled }} run: | @@ -224,7 +224,7 @@ jobs: submodules: true - name: Donwload matrix script if: ${{ matrix.swift.enabled }} - run: curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check-matrix-job.ps1 -o __check-matrix-job.ps1 + run: curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/check-matrix-job.ps1 -o __check-matrix-job.ps1 - name: Run matrix job if: ${{ matrix.swift.enabled }} run: | diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 3e97c81231..272b492cb4 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -179,7 +179,7 @@ jobs: fi # Generate matrix - echo "unit-test-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" MATRIX_WINDOWS_ENV_VARS_JSON="${windows_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" + echo "unit-test-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" MATRIX_WINDOWS_ENV_VARS_JSON="${windows_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" env: MATRIX_LINUX_SETUP_COMMAND: "swift --version" MATRIX_LINUX_COMMAND: "swift test" @@ -214,7 +214,7 @@ jobs: name: Unit tests needs: construct-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions with: name: "Unit tests" matrix_string: '${{ needs.construct-matrix.outputs.unit-test-matrix }}' From 902ece1cba1404a3c0fbdb0b17a554bf76efff87 Mon Sep 17 00:00:00 2001 From: Rick Newton-Rogers Date: Wed, 22 Oct 2025 10:21:21 +0100 Subject: [PATCH 4/4] Revert "test shim" This reverts commit a508077b65b1ee5e16cc17aac860ebc09b88c569. --- .github/workflows/benchmarks.yml | 6 +++--- .github/workflows/cmake_tests.yml | 4 ++-- .github/workflows/cxx_interop.yml | 6 +++--- .github/workflows/main.yml | 18 +++++++++--------- .github/workflows/pull_request.yml | 18 +++++++++--------- .github/workflows/release_builds.yml | 4 ++-- .github/workflows/static_sdk.yml | 6 +++--- .github/workflows/swift_load_test_matrix.yml | 2 +- .github/workflows/swift_matrix.yml | 6 +++--- .github/workflows/unit_tests.yml | 4 ++-- 10 files changed, 37 insertions(+), 37 deletions(-) diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index 0a39309734..a89131eb36 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -102,9 +102,9 @@ jobs: exit 1 fi - echo "benchmarks-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" + echo "benchmarks-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" env: - MATRIX_LINUX_COMMAND: "curl -s https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} bash" + MATRIX_LINUX_COMMAND: "curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} bash" MATRIX_LINUX_SETUP_COMMAND: "swift --version && apt-get update -y -q && apt-get install -y -q curl libjemalloc-dev && git config --global --add safe.directory /$(basename ${{ github.workspace }})" MATRIX_MIN_SWIFT_VERSION: ${{ inputs.minimum_swift_version }} MATRIX_LINUX_5_9_ENABLED: ${{ inputs.linux_5_9_enabled }} @@ -119,7 +119,7 @@ jobs: name: Benchmarks needs: construct-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main with: name: "Benchmarks" matrix_string: '${{ needs.construct-matrix.outputs.benchmarks-matrix }}' diff --git a/.github/workflows/cmake_tests.yml b/.github/workflows/cmake_tests.yml index ad6e7852d6..7a0b80de4e 100644 --- a/.github/workflows/cmake_tests.yml +++ b/.github/workflows/cmake_tests.yml @@ -43,11 +43,11 @@ jobs: which curl jq || apt -q update which curl || apt -yq install curl which jq || apt -yq install jq - curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/update-cmake-lists.sh | CONFIG_JSON='${{ inputs.update_cmake_lists_config }}' FAIL_ON_CHANGES=true bash + curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/update-cmake-lists.sh | CONFIG_JSON='${{ inputs.update_cmake_lists_config }}' FAIL_ON_CHANGES=true bash - name: CMake build run: | which curl cmake ninja || apt -q update which curl || apt -yq install curl which cmake || apt -yq install cmake which ninja || apt -yq install ninja-build - curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/cmake-build.sh | TARGET_DIRECTORY="${{ inputs.cmake_build_target_directory }}" CMAKE_VERSION="${{ inputs.cmake_version }}" bash + curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/cmake-build.sh | TARGET_DIRECTORY="${{ inputs.cmake_build_target_directory }}" CMAKE_VERSION="${{ inputs.cmake_version }}" bash diff --git a/.github/workflows/cxx_interop.yml b/.github/workflows/cxx_interop.yml index c6f49a7711..bdce10750e 100644 --- a/.github/workflows/cxx_interop.yml +++ b/.github/workflows/cxx_interop.yml @@ -105,9 +105,9 @@ jobs: exit 1 fi - echo "cxx-interop-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" MATRIX_WINDOWS_ENV_VARS_JSON="${windows_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" + echo "cxx-interop-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" MATRIX_WINDOWS_ENV_VARS_JSON="${windows_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" env: - MATRIX_LINUX_COMMAND: "curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/check-cxx-interop-compatibility.sh | bash" + MATRIX_LINUX_COMMAND: "curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check-cxx-interop-compatibility.sh | bash" MATRIX_LINUX_SETUP_COMMAND: "swift --version && apt-get update -y -q && apt-get install -y -q curl jq" MATRIX_MIN_SWIFT_VERSION: ${{ inputs.minimum_swift_version }} MATRIX_LINUX_5_9_ENABLED: ${{ inputs.linux_5_9_enabled }} @@ -122,7 +122,7 @@ jobs: name: Cxx interop needs: construct-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main with: name: "Cxx interop" matrix_string: '${{ needs.construct-matrix.outputs.cxx-interop-matrix }}' diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 9fd721745f..62726689b6 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -13,7 +13,7 @@ jobs: unit-tests: name: Unit tests # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/unit_tests.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/unit_tests.yml@main with: linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" @@ -25,12 +25,12 @@ jobs: cxx-interop: name: Cxx interop # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/cxx_interop.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/cxx_interop.yml@main benchmarks: name: Benchmarks # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/benchmarks.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/benchmarks.yml@main with: benchmark_package_path: "Benchmarks" @@ -45,7 +45,7 @@ jobs: with: persist-credentials: false - id: generate-matrix - run: echo "integration-test-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/generate_matrix.sh | bash)" >> "$GITHUB_OUTPUT" + run: echo "integration-test-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | bash)" >> "$GITHUB_OUTPUT" env: MATRIX_LINUX_SETUP_COMMAND: "apt-get update -y -q && apt-get install -y -q lsof dnsutils netcat-openbsd net-tools curl jq" MATRIX_LINUX_COMMAND: "./scripts/integration_tests.sh" @@ -54,7 +54,7 @@ jobs: name: Integration tests needs: construct-integration-test-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main with: name: "Integration tests" matrix_string: '${{ needs.construct-integration-test-matrix.outputs.integration-test-matrix }}' @@ -62,17 +62,17 @@ jobs: static-sdk: name: Static Linux Swift SDK # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/static_sdk.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/static_sdk.yml@main wasm-sdk: name: WebAssembly Swift SDK # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/wasm_sdk.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/wasm_sdk.yml@main macos-tests: name: macOS tests # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/macos_tests.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/macos_tests.yml@main with: runner_pool: nightly build_scheme: swift-nio-Package @@ -86,4 +86,4 @@ jobs: release-builds: name: Release builds - uses: apple/swift-nio/.github/workflows/release_builds.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/release_builds.yml@main diff --git a/.github/workflows/pull_request.yml b/.github/workflows/pull_request.yml index 0f4e1b63e7..0d493e5bd9 100644 --- a/.github/workflows/pull_request.yml +++ b/.github/workflows/pull_request.yml @@ -19,7 +19,7 @@ jobs: unit-tests: name: Unit tests # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/unit_tests.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/unit_tests.yml@main with: linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error" @@ -31,14 +31,14 @@ jobs: benchmarks: name: Benchmarks # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/benchmarks.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/benchmarks.yml@main with: benchmark_package_path: "Benchmarks" cxx-interop: name: Cxx interop # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/cxx_interop.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/cxx_interop.yml@main construct-integration-test-matrix: name: Construct integration test matrix @@ -51,7 +51,7 @@ jobs: with: persist-credentials: false - id: generate-matrix - run: echo "integration-test-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/generate_matrix.sh | bash)" >> "$GITHUB_OUTPUT" + run: echo "integration-test-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | bash)" >> "$GITHUB_OUTPUT" env: MATRIX_LINUX_SETUP_COMMAND: "apt-get update -y -q && apt-get install -y -q lsof dnsutils netcat-openbsd net-tools curl jq" MATRIX_LINUX_COMMAND: "./scripts/integration_tests.sh" @@ -60,7 +60,7 @@ jobs: name: Integration tests needs: construct-integration-test-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main with: name: "Integration tests" matrix_string: '${{ needs.construct-integration-test-matrix.outputs.integration-test-matrix }}' @@ -86,7 +86,7 @@ jobs: macos-tests: name: macOS tests # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/macos_tests.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/macos_tests.yml@main with: runner_pool: general build_scheme: swift-nio-Package @@ -96,13 +96,13 @@ jobs: static-sdk: name: Static Linux Swift SDK # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/static_sdk.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/static_sdk.yml@main wasm-sdk: name: WebAssembly Swift SDK # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/wasm_sdk.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/wasm_sdk.yml@main release-builds: name: Release builds - uses: apple/swift-nio/.github/workflows/release_builds.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/release_builds.yml@main diff --git a/.github/workflows/release_builds.yml b/.github/workflows/release_builds.yml index b452ecc329..ff445cdb29 100644 --- a/.github/workflows/release_builds.yml +++ b/.github/workflows/release_builds.yml @@ -137,7 +137,7 @@ jobs: exit 1 fi - echo "release-build-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" MATRIX_WINDOWS_ENV_VARS_JSON="${windows_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" + echo "release-build-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" MATRIX_WINDOWS_ENV_VARS_JSON="${windows_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" env: MATRIX_LINUX_SETUP_COMMAND: "swift --version" MATRIX_LINUX_COMMAND: "swift build -c release" @@ -170,7 +170,7 @@ jobs: name: Release builds needs: construct-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main with: name: "Release builds" matrix_string: '${{ needs.construct-matrix.outputs.release-build-matrix }}' diff --git a/.github/workflows/static_sdk.yml b/.github/workflows/static_sdk.yml index 3c5562699a..5ffd4870b6 100644 --- a/.github/workflows/static_sdk.yml +++ b/.github/workflows/static_sdk.yml @@ -47,7 +47,7 @@ jobs: "platform":"Linux", "runner":"ubuntu-latest", "image":"ubuntu:jammy", - "setup_command":"apt update -q && apt install -y -q curl jq tar && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/install_swift_prerequisites.sh | bash && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/install_static_sdk.sh | INSTALL_SWIFT_STATIC_SDK_VERSION=latest INSTALL_SWIFT_STATIC_SDK_ARCH=x86_64 bash && hash -r", + "setup_command":"apt update -q && apt install -y -q curl jq tar && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/install_swift_prerequisites.sh | bash && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/install_static_sdk.sh | INSTALL_SWIFT_STATIC_SDK_VERSION=latest INSTALL_SWIFT_STATIC_SDK_ARCH=x86_64 bash && hash -r", "command":"swift build", "command_arguments":"${{ inputs.command_arguments }}", "env":'"$env_vars_json"' @@ -58,7 +58,7 @@ jobs: "platform":"Linux", "runner":"ubuntu-latest", "image":"ubuntu:jammy", - "setup_command":"apt update -q && apt install -y -q curl jq tar && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/install_swift_prerequisites.sh | bash && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/install_static_sdk.sh | INSTALL_SWIFT_STATIC_SDK_BRANCH=main INSTALL_SWIFT_STATIC_SDK_ARCH=x86_64 bash && hash -r", + "setup_command":"apt update -q && apt install -y -q curl jq tar && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/install_swift_prerequisites.sh | bash && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/install_static_sdk.sh | INSTALL_SWIFT_STATIC_SDK_BRANCH=main INSTALL_SWIFT_STATIC_SDK_ARCH=x86_64 bash && hash -r", "command":"swift build", "command_arguments":"${{ inputs.command_arguments }}", "env":'"$env_vars_json"' @@ -71,7 +71,7 @@ jobs: name: Static SDK needs: construct-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main with: name: "Static SDK" matrix_string: '${{ needs.construct-matrix.outputs.static-sdk-matrix }}' diff --git a/.github/workflows/swift_load_test_matrix.yml b/.github/workflows/swift_load_test_matrix.yml index a2d69f9dbe..bb3339b132 100644 --- a/.github/workflows/swift_load_test_matrix.yml +++ b/.github/workflows/swift_load_test_matrix.yml @@ -38,7 +38,7 @@ jobs: name: Execute matrix needs: load-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main with: name: ${{ inputs.name }} matrix_string: '${{ needs.load-matrix.outputs.swift-matrix }}' diff --git a/.github/workflows/swift_matrix.yml b/.github/workflows/swift_matrix.yml index 10d95a275e..31c5320048 100644 --- a/.github/workflows/swift_matrix.yml +++ b/.github/workflows/swift_matrix.yml @@ -168,7 +168,7 @@ jobs: COMMAND_OVERRIDE_NIGHTLY_MAIN: ${{ inputs.matrix_linux_nightly_main_command_override }} run: | apt-get -qq update && apt-get -qq -y install curl - curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/check-matrix-job.sh | bash + curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check-matrix-job.sh | bash windows: name: Windows (${{ matrix.swift.swift_version }}) @@ -192,7 +192,7 @@ jobs: persist-credentials: false - name: Donwload matrix script if: ${{ matrix.swift.enabled }} - run: curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/check-matrix-job.ps1 -o __check-matrix-job.ps1 + run: curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check-matrix-job.ps1 -o __check-matrix-job.ps1 - name: Run matrix job if: ${{ matrix.swift.enabled }} run: | @@ -224,7 +224,7 @@ jobs: submodules: true - name: Donwload matrix script if: ${{ matrix.swift.enabled }} - run: curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/check-matrix-job.ps1 -o __check-matrix-job.ps1 + run: curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check-matrix-job.ps1 -o __check-matrix-job.ps1 - name: Run matrix job if: ${{ matrix.swift.enabled }} run: | diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index 272b492cb4..3e97c81231 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -179,7 +179,7 @@ jobs: fi # Generate matrix - echo "unit-test-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/skip_unsupported_swift_versions/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" MATRIX_WINDOWS_ENV_VARS_JSON="${windows_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" + echo "unit-test-matrix=$(curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/generate_matrix.sh | MATRIX_LINUX_ENV_VARS_JSON="${linux_env_vars_json}" MATRIX_WINDOWS_ENV_VARS_JSON="${windows_env_vars_json}" bash)" >> "$GITHUB_OUTPUT" env: MATRIX_LINUX_SETUP_COMMAND: "swift --version" MATRIX_LINUX_COMMAND: "swift test" @@ -214,7 +214,7 @@ jobs: name: Unit tests needs: construct-matrix # Workaround https://github.com/nektos/act/issues/1875 - uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@skip_unsupported_swift_versions + uses: apple/swift-nio/.github/workflows/swift_test_matrix.yml@main with: name: "Unit tests" matrix_string: '${{ needs.construct-matrix.outputs.unit-test-matrix }}'