diff --git a/.github/workflows/android_swift_sdk.yml b/.github/workflows/android_swift_sdk.yml index bd7de0648b..4cc8209bbd 100644 --- a/.github/workflows/android_swift_sdk.yml +++ b/.github/workflows/android_swift_sdk.yml @@ -29,7 +29,7 @@ jobs: - id: generate-matrix run: | # Validate and use JSON environment variables directly - env_vars_json='${{ inputs.env_vars }}' + env_vars_json='${INPUTS_ENV_VARS}' # Validate JSON format if ! echo "$env_vars_json" | jq empty 2>/dev/null; then @@ -49,12 +49,15 @@ jobs: "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_swift_sdk.sh | INSTALL_SWIFT_BRANCH=main INSTALL_SWIFT_ARCH=x86_64 INSTALL_SWIFT_SDK=android-sdk bash && curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/install_android_ndk.sh | bash && hash -r", "command":"curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/swift-build-with-android-sdk.sh | bash -s --", - "command_arguments":"${{ inputs.additional_command_arguments }}", + "command_arguments":"${INPUTS_ADDITIONAL_COMMAND_ARGUMENTS}", "env":'"$env_vars_json"' } ] }' | jq -c) EOM + env: + INPUTS_ENV_VARS: ${{ inputs.env_vars }} + INPUTS_ADDITIONAL_COMMAND_ARGUMENTS: ${{ inputs.additional_command_arguments }} android-swift-sdk: name: Android Swift SDK diff --git a/.github/workflows/benchmarks.yml b/.github/workflows/benchmarks.yml index bc5639d289..a4937e0ccc 100644 --- a/.github/workflows/benchmarks.yml +++ b/.github/workflows/benchmarks.yml @@ -95,7 +95,7 @@ jobs: - id: generate-matrix run: | # Validate JSON environment variables - linux_env_vars_json='${{ inputs.linux_env_vars }}' + linux_env_vars_json='${MATRIX_LINUX_ENV_VARS}' if ! echo "$linux_env_vars_json" | jq empty 2>/dev/null; then echo "Error: linux_env_vars is not valid JSON" @@ -114,6 +114,7 @@ jobs: MATRIX_LINUX_6_2_ENABLED: ${{ inputs.linux_6_2_enabled }} MATRIX_LINUX_NIGHTLY_NEXT_ENABLED: ${{ inputs.linux_nightly_6_1_enabled && inputs.linux_nightly_next_enabled }} MATRIX_LINUX_NIGHTLY_MAIN_ENABLED: ${{ inputs.linux_nightly_main_enabled }} + MATRIX_LINUX_ENV_VARS: ${{ inputs.linux_env_vars }} benchmarks-linux: name: Benchmarks diff --git a/.github/workflows/cmake_tests.yml b/.github/workflows/cmake_tests.yml index c2ad837408..96de04b429 100644 --- a/.github/workflows/cmake_tests.yml +++ b/.github/workflows/cmake_tests.yml @@ -43,11 +43,17 @@ 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/main/scripts/update-cmake-lists.sh | bash + env: + FAIL_ON_CHANGES: true + CONFIG_JSON: ${{ inputs.update_cmake_lists_config }} - 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/main/scripts/cmake-build.sh | bash + env: + TARGET_DIRECTORY: ${{ inputs.cmake_build_target_directory }} + CMAKE_VERSION: ${{ inputs.cmake_version }} diff --git a/.github/workflows/cxx_interop.yml b/.github/workflows/cxx_interop.yml index 2540a9fb39..1deddb6735 100644 --- a/.github/workflows/cxx_interop.yml +++ b/.github/workflows/cxx_interop.yml @@ -92,8 +92,8 @@ jobs: - id: generate-matrix run: | # Validate JSON environment variables - linux_env_vars_json='${{ inputs.linux_env_vars }}' - windows_env_vars_json='${{ inputs.windows_env_vars }}' + linux_env_vars_json='${MATRIX_LINUX_ENV_VARS}' + windows_env_vars_json='${MATRIX_WINDOWS_ENV_VARS}' if ! echo "$linux_env_vars_json" | jq empty 2>/dev/null; then echo "Error: linux_env_vars is not valid JSON" @@ -117,6 +117,8 @@ jobs: MATRIX_LINUX_6_2_ENABLED: ${{ inputs.linux_6_2_enabled }} MATRIX_LINUX_NIGHTLY_NEXT_ENABLED: ${{ inputs.linux_nightly_6_1_enabled && inputs.linux_nightly_next_enabled }} MATRIX_LINUX_NIGHTLY_MAIN_ENABLED: ${{ inputs.linux_nightly_main_enabled }} + MATRIX_LINUX_ENV_VARS: ${{ inputs.linux_env_vars }} + MATRIX_WINDOWS_ENV_VARS: ${{ inputs.windows_env_vars }} cxx-interop: name: Cxx interop diff --git a/.github/workflows/macos_benchmarks.yml b/.github/workflows/macos_benchmarks.yml index 8dec112d58..1fe4c5a633 100644 --- a/.github/workflows/macos_benchmarks.yml +++ b/.github/workflows/macos_benchmarks.yml @@ -70,7 +70,7 @@ jobs: - id: generate-matrix run: | # Validate JSON environment variables - macos_env_vars_json='${{ inputs.macos_env_vars }}' + macos_env_vars_json='${MATRIX_MACOS_ENV_VARS}' if ! echo "$macos_env_vars_json" | jq empty 2>/dev/null; then echo "Error: macos_env_vars is not valid JSON" @@ -130,6 +130,7 @@ jobs: MACOS_XCODE_26_0_ENABLED: ${{ inputs.macos_xcode_26_0_enabled }} MACOS_XCODE_26_1_ENABLED: ${{ inputs.macos_xcode_26_1_enabled }} MACOS_XCODE_LATEST_BETA_ENABLED: ${{ inputs.macos_xcode_latest_beta_enabled }} + MATRIX_MACOS_ENV_VARS: ${{ inputs.macos_env_vars }} benchmarks-macos: name: ${{ matrix.config.name }} @@ -156,7 +157,8 @@ jobs: echo '${{ toJSON(matrix.config.env) }}' | jq -r 'to_entries[] | "exporting \(.key)=\(.value)"' - name: Run benchmarks script run: | - curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | BENCHMARK_PACKAGE_PATH=${{ inputs.benchmark_package_path }} bash -s -- --disable-sandbox --allow-writing-to-package-directory + curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check_benchmark_thresholds.sh | bash -s -- --disable-sandbox --allow-writing-to-package-directory env: DEVELOPER_DIR: "/Applications/${{ matrix.config.xcode_app }}" SWIFT_VERSION: "Xcode ${{ matrix.config.xcode_version }}" + BENCHMARK_PACKAGE_PATH: ${{ inputs.benchmark_package_path }} diff --git a/.github/workflows/macos_tests.yml b/.github/workflows/macos_tests.yml index c8868359f6..11571f870e 100644 --- a/.github/workflows/macos_tests.yml +++ b/.github/workflows/macos_tests.yml @@ -231,7 +231,7 @@ jobs: - id: generate-matrix run: | # Validate and use JSON environment variables directly - env_vars_json='${{ inputs.env_vars }}' + env_vars_json='${MATRIX_ENV_VARS}' # Validate JSON format if ! echo "$env_vars_json" | jq empty 2>/dev/null; then @@ -421,6 +421,7 @@ jobs: MATRIX_MACOS_LATEST_BETA_BUILD_ARGUMENTS_OVERRIDE: ${{ inputs.xcode_latest_beta_build_arguments_override }} MATRIX_MACOS_LATEST_BETA_TEST_ARGUMENTS_OVERRIDE: ${{ inputs.xcode_latest_beta_test_arguments_override }} MATRIX_MACOS_LATEST_BETA_SETUP_COMMAND: ${{ inputs.xcode_latest_beta_setup_command }} + MATRIX_ENV_VARS: ${{ inputs.env_vars }} darwin-job: name: ${{ matrix.config.name }} @@ -449,19 +450,25 @@ jobs: /usr/bin/xcodebuild -version - name: Setup command if: ${{ matrix.config.setup_command != '' }} - run: bash -c "${{ matrix.config.setup_command }}" + run: bash -c "${MATRIX_CONFIG_SETUP_COMMAND}" + env: + MATRIX_CONFIG_SETUP_COMMAND: ${{ matrix.config.setup_command }} - name: Swift build run: | - if [ -n "${{ matrix.config.build_arguments_override }}" ]; then - swift build ${{ matrix.config.build_arguments_override }} + if [ -n "${MATRIX_CONFIG_BUILD_ARGUMENTS_OVERRIDE}" ]; then + swift build ${MATRIX_CONFIG_BUILD_ARGUMENTS_OVERRIDE} else swift build --build-tests fi + env: + MATRIX_CONFIG_BUILD_ARGUMENTS_OVERRIDE: ${{ matrix.config.build_arguments_override }} - name: Swift test if: 'inputs.swift_test_enabled' + env: + MATRIX_CONFIG_TEST_ARGUMENTS_OVERRIDE: ${{ matrix.config.test_arguments_override }} run: | - if [ -n "${{ matrix.config.test_arguments_override }}" ]; then - swift test ${{ matrix.config.test_arguments_override }} + if [ -n "${MATRIX_CONFIG_TEST_ARGUMENTS_OVERRIDE}" ]; then + swift test ${MATRIX_CONFIG_TEST_ARGUMENTS_OVERRIDE} else swift test fi diff --git a/.github/workflows/release_builds.yml b/.github/workflows/release_builds.yml index bdb5f28bda..9945d8f2f7 100644 --- a/.github/workflows/release_builds.yml +++ b/.github/workflows/release_builds.yml @@ -124,8 +124,8 @@ jobs: - id: generate-matrix run: | # Validate JSON environment variables - linux_env_vars_json='${{ inputs.linux_env_vars }}' - windows_env_vars_json='${{ inputs.windows_env_vars }}' + linux_env_vars_json='${MATRIX_LINUX_ENV_VARS}' + windows_env_vars_json='${MATRIX_WINDOWS_ENV_VARS}' if ! echo "$linux_env_vars_json" | jq empty 2>/dev/null; then echo "Error: linux_env_vars is not valid JSON" @@ -154,6 +154,7 @@ jobs: MATRIX_LINUX_NIGHTLY_NEXT_COMMAND_ARGUMENTS: ${{ inputs.linux_nightly_next_arguments_override }} MATRIX_LINUX_NIGHTLY_MAIN_ENABLED: ${{ inputs.linux_nightly_main_enabled }} MATRIX_LINUX_NIGHTLY_MAIN_COMMAND_ARGUMENTS: ${{ inputs.linux_nightly_main_arguments_override }} + MATRIX_LINUX_ENV_VARS: ${{ inputs.linux_env_vars }} MATRIX_WINDOWS_COMMAND: "swift build -c release" MATRIX_WINDOWS_6_0_ENABLED: ${{ inputs.windows_6_0_enabled }} MATRIX_WINDOWS_6_0_COMMAND_ARGUMENTS: ${{ inputs.windows_6_0_arguments_override }} @@ -165,6 +166,7 @@ jobs: MATRIX_WINDOWS_NIGHTLY_NEXT_COMMAND_ARGUMENTS: ${{ inputs.windows_nightly_next_arguments_override }} MATRIX_WINDOWS_NIGHTLY_MAIN_ENABLED: ${{ inputs.windows_nightly_main_enabled }} MATRIX_WINDOWS_NIGHTLY_MAIN_COMMAND_ARGUMENTS: ${{ inputs.windows_nightly_main_arguments_override }} + MATRIX_WINDOWS_ENV_VARS: ${{ inputs.windows_env_vars }} release-builds: name: Release builds diff --git a/.github/workflows/static_sdk.yml b/.github/workflows/static_sdk.yml index 38e2e244b4..a27cb5f116 100644 --- a/.github/workflows/static_sdk.yml +++ b/.github/workflows/static_sdk.yml @@ -29,7 +29,7 @@ jobs: - id: generate-matrix run: | # Validate and use JSON environment variables directly - env_vars_json='${{ inputs.env_vars }}' + env_vars_json='${INPUTS_ENV_VARS}' # Validate JSON format if ! echo "$env_vars_json" | jq empty 2>/dev/null; then @@ -49,7 +49,7 @@ jobs: "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_swift_sdk.sh | INSTALL_SWIFT_VERSION=latest INSTALL_SWIFT_ARCH=x86_64 bash && hash -r", "command":"swift build", - "command_arguments":"--swift-sdks-path /tmp/swiftsdks ${{ inputs.command_arguments }}", + "command_arguments":"--swift-sdks-path /tmp/swiftsdks ${INPUTS_COMMAND_ARGUMENTS}", "env":'"$env_vars_json"' }, { @@ -60,12 +60,15 @@ jobs: "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_swift_sdk.sh | INSTALL_SWIFT_BRANCH=main INSTALL_SWIFT_ARCH=x86_64 bash && hash -r", "command":"swift build", - "command_arguments":"--swift-sdks-path /tmp/swiftsdks ${{ inputs.command_arguments }}", + "command_arguments":"--swift-sdks-path /tmp/swiftsdks ${INPUTS_COMMAND_ARGUMENTS}", "env":'"$env_vars_json"' } ] }' | jq -c) EOM + env: + INPUTS_ENV_VARS: ${{ inputs.env_vars }} + INPUTS_COMMAND_ARGUMENTS: ${{ inputs.command_arguments }} static-sdk: name: Static SDK diff --git a/.github/workflows/swift_load_test_matrix.yml b/.github/workflows/swift_load_test_matrix.yml index e06d0c6bdf..14835ad8c6 100644 --- a/.github/workflows/swift_load_test_matrix.yml +++ b/.github/workflows/swift_load_test_matrix.yml @@ -31,7 +31,9 @@ jobs: run: git config --global --add safe.directory ${GITHUB_WORKSPACE} - id: load-matrix run: | - printf "swift-matrix=%s" "$(jq -ec '.' ${{ inputs.matrix_path }})" >> "$GITHUB_OUTPUT" + printf "swift-matrix=%s" "$(jq -ec '.' ${INPUTS_MATRIX_PATH})" >> "$GITHUB_OUTPUT" + env: + INPUTS_MATRIX_PATH: ${{ inputs.matrix_path }} execute-matrix: diff --git a/.github/workflows/swift_matrix.yml b/.github/workflows/swift_matrix.yml index da3a96e9cb..0a81cb7093 100644 --- a/.github/workflows/swift_matrix.yml +++ b/.github/workflows/swift_matrix.yml @@ -196,7 +196,10 @@ jobs: - name: Run matrix job if: ${{ matrix.swift.enabled }} run: | - docker run --env SWIFT_VERSION="${{ matrix.swift.swift_version }}" --env COMMAND="${{ inputs.matrix_windows_command }}" --env COMMAND_OVERRIDE_6_0="${{ inputs.matrix_windows_6_0_command_override }}" -v ${{ github.workspace }}:C:\source ${{ matrix.swift.image }} cmd /s /c "swift --version & cd C:\source\ & powershell -File __check-matrix-job.ps1" + docker run --env SWIFT_VERSION="${{ matrix.swift.swift_version }}" --env COMMAND="$env:INPUTS_MATRIX_WINDOWS_COMMAND" --env COMMAND_OVERRIDE_6_0="$env:INPUTS_MATRIX_WINDOWS_6_0_COMMAND_OVERRIDE" -v ${{ github.workspace }}:C:\source ${{ matrix.swift.image }} cmd /s /c "swift --version & cd C:\source\ & powershell -File __check-matrix-job.ps1" + env: + INPUTS_MATRIX_WINDOWS_COMMAND: ${{ inputs.matrix_windows_command }} + INPUTS_MATRIX_WINDOWS_6_0_COMMAND_OVERRIDE: ${{ inputs.matrix_windows_6_0_command_override }} windows-nightly: name: Windows (${{ matrix.swift.swift_version }}) @@ -228,4 +231,9 @@ jobs: - name: Run matrix job if: ${{ matrix.swift.enabled }} run: | - docker run --env SWIFT_VERSION="${{ matrix.swift.swift_version }}" --env COMMAND="${{ inputs.matrix_windows_command }}" --env COMMAND_OVERRIDE_NIGHTLY_6_1="${{ inputs.matrix_windows_nightly_6_1_command_override }}" --env COMMAND_OVERRIDE_NIGHTLY_MAIN="${{ inputs.matrix_windows_nightly_main_command_override }}" -v ${{ github.workspace }}:C:\source ${{ matrix.swift.image }} cmd /s /c "swift --version & cd C:\source\ & powershell -File __check-matrix-job.ps1" + docker run --env SWIFT_VERSION="${{ matrix.swift.swift_version }}" --env COMMAND="$env:INPUTS_MATRIX_WINDOWS_COMMAND" --env COMMAND_OVERRIDE_NIGHTLY_6_1="$env:INPUTS_MATRIX_WINDOWS_NIGHTLY_6_1_COMMAND_OVERRIDE" --env COMMAND_OVERRIDE_NIGHTLY_MAIN="$env:INPUTS_MATRIX_WINDOWS_NIGHTLY_MAIN_COMMAND_OVERRIDE" -v ${{ github.workspace }}:C:\source ${{ matrix.swift.image }} cmd /s /c "swift --version & cd C:\source\ & powershell -File __check-matrix-job.ps1" + + env: + INPUTS_MATRIX_WINDOWS_COMMAND: ${{ inputs.matrix_windows_command }} + INPUTS_MATRIX_WINDOWS_NIGHTLY_6_1_COMMAND_OVERRIDE: ${{ inputs.matrix_windows_nightly_6_1_command_override }} + INPUTS_MATRIX_WINDOWS_NIGHTLY_MAIN_COMMAND_OVERRIDE: ${{ inputs.matrix_windows_nightly_main_command_override }} diff --git a/.github/workflows/unit_tests.yml b/.github/workflows/unit_tests.yml index c82442b356..e6c66f0c4a 100644 --- a/.github/workflows/unit_tests.yml +++ b/.github/workflows/unit_tests.yml @@ -164,8 +164,8 @@ jobs: - id: generate-matrix run: | # Validate and use JSON environment variables directly - linux_env_vars_json='${{ inputs.linux_env_vars }}' - windows_env_vars_json='${{ inputs.windows_env_vars }}' + linux_env_vars_json='${MATRIX_LINUX_ENV_VARS}' + windows_env_vars_json='${MATRIX_WINDOWS_ENV_VARS}' # Validate JSON format if ! echo "$linux_env_vars_json" | jq empty 2>/dev/null; then @@ -198,6 +198,7 @@ jobs: MATRIX_LINUX_NIGHTLY_NEXT_COMMAND_ARGUMENTS: ${{ inputs.linux_nightly_6_1_arguments_override }} ${{ inputs.linux_nightly_next_arguments_override }} MATRIX_LINUX_NIGHTLY_MAIN_ENABLED: ${{ inputs.linux_nightly_main_enabled }} MATRIX_LINUX_NIGHTLY_MAIN_COMMAND_ARGUMENTS: ${{ inputs.linux_nightly_main_arguments_override }} + MATRIX_LINUX_ENV_VARS: ${{ inputs.linux_env_vars }} MATRIX_WINDOWS_COMMAND: "swift test" MATRIX_WINDOWS_6_0_ENABLED: ${{ inputs.windows_6_0_enabled }} MATRIX_WINDOWS_6_0_COMMAND_ARGUMENTS: ${{ inputs.windows_6_0_arguments_override }} @@ -209,6 +210,7 @@ jobs: MATRIX_WINDOWS_NIGHTLY_NEXT_COMMAND_ARGUMENTS: ${{ inputs.windows_nightly_6_1_arguments_override }} ${{ inputs.windows_nightly_next_arguments_override }} MATRIX_WINDOWS_NIGHTLY_MAIN_ENABLED: ${{ inputs.windows_nightly_main_enabled }} MATRIX_WINDOWS_NIGHTLY_MAIN_COMMAND_ARGUMENTS: ${{ inputs.windows_nightly_main_arguments_override }} + MATRIX_WINDOWS_ENV_VARS: ${{ inputs.windows_env_vars }} unit-tests: name: Unit tests diff --git a/.github/workflows/wasm_swift_sdk.yml b/.github/workflows/wasm_swift_sdk.yml index f4932ecc43..156b9b3b3b 100644 --- a/.github/workflows/wasm_swift_sdk.yml +++ b/.github/workflows/wasm_swift_sdk.yml @@ -29,7 +29,7 @@ jobs: - id: generate-matrix run: | # Validate and use JSON environment variables directly - env_vars_json='${{ inputs.env_vars }}' + env_vars_json='${INPUTS_ENV_VARS}' # Validate JSON format if ! echo "$env_vars_json" | jq empty 2>/dev/null; then @@ -49,12 +49,15 @@ jobs: "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_swift_sdk.sh | INSTALL_SWIFT_BRANCH=main INSTALL_SWIFT_ARCH=x86_64 INSTALL_SWIFT_SDK=wasm-sdk bash && hash -r", "command":"curl -s --retry 3 https://raw.githubusercontent.com/apple/swift-nio/main/scripts/swift-build-with-wasm-sdk.sh | bash -s --", - "command_arguments":"${{ inputs.additional_command_arguments }}", + "command_arguments":"${INPUTS_ADDITIONAL_COMMAND_ARGUMENTS}", "env":'"$env_vars_json"' } ] }' | jq -c) EOM + env: + INPUTS_ENV_VARS: ${{ inputs.env_vars }} + INPUTS_ADDITIONAL_COMMAND_ARGUMENTS: ${{ inputs.additional_command_arguments }} wasm-swift-sdk: name: WebAssembly Swift SDK