Skip to content

Commit d4baf5e

Browse files
committed
Add and enable Swift 6.1 workflows
Motivation: Swift 6.1 has been released, we should add it to our CI coverage. Modifications: * Update `appe/swift-nio/scripts/generate_matrix.sh` * Update reusable adopters of `swift_test_matrix.yml` * Update end-user adopter workflows of `swift_test_matrix.yml` * Copy over test flags from Swift 6.0 jobs Result: NIO tests against Swift 6.1 in CI and downstream repositories can opt-in.
1 parent d0fb818 commit d4baf5e

6 files changed

Lines changed: 80 additions & 3 deletions

File tree

.github/workflows/benchmarks.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,10 @@ on:
2222
type: boolean
2323
description: "Boolean to enable the Linux 6.0 Swift version matrix job. Defaults to true."
2424
default: true
25+
linux_6_1_enabled:
26+
type: boolean
27+
description: "Boolean to enable the Linux 6.1 Swift version matrix job. Defaults to true."
28+
default: true
2529
linux_nightly_6_0_enabled:
2630
type: boolean
2731
description: "⚠️ Deprecated, we no longer run against 6.0 nightly."
@@ -43,6 +47,10 @@ on:
4347
type: boolean
4448
description: "Boolean to enable the Windows 6.0 Swift version matrix job. Currently has no effect!" # TODO: implement Windows benchmarking
4549
default: false
50+
windows_6_1_enabled:
51+
type: boolean
52+
description: "Boolean to enable the Windows 6.1 Swift version matrix job. Currently has no effect!" # TODO: implement Windows benchmarking
53+
default: false
4654
windows_nightly_6_0_enabled:
4755
type: boolean
4856
description: "⚠️ Deprecated, we no longer run against 6.0 nightly." # TODO: implement Windows benchmarking
@@ -71,6 +79,7 @@ jobs:
7179
MATRIX_LINUX_5_9_ENABLED: ${{ inputs.linux_5_9_enabled }}
7280
MATRIX_LINUX_5_10_ENABLED: ${{ inputs.linux_5_10_enabled }}
7381
MATRIX_LINUX_6_0_ENABLED: ${{ inputs.linux_6_0_enabled }}
82+
MATRIX_LINUX_6_1_ENABLED: ${{ inputs.linux_6_1_enabled }}
7483
MATRIX_LINUX_NIGHTLY_NEXT_ENABLED: ${{ inputs.linux_nightly_6_1_enabled && inputs.linux_nightly_next_enabled }}
7584
MATRIX_LINUX_NIGHTLY_MAIN_ENABLED: ${{ inputs.linux_nightly_main_enabled }}
7685

.github/workflows/cxx_interop.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,10 @@ on:
1515
type: boolean
1616
description: "Boolean to enable the Linux 6.0 Swift version matrix job. Defaults to true."
1717
default: true
18+
linux_6_1_enabled:
19+
type: boolean
20+
description: "Boolean to enable the Linux 6.1 Swift version matrix job. Defaults to true."
21+
default: true
1822
linux_nightly_6_0_enabled:
1923
type: boolean
2024
description: "⚠️ Deprecated, we no longer run against 6.0 nightly."
@@ -36,6 +40,10 @@ on:
3640
type: boolean
3741
description: "Boolean to enable the Windows 6.0 Swift version matrix job. Defaults to false. Currently has no effect!" # TODO: implement Windows Cxx compat checking
3842
default: false
43+
windows_6_1_enabled:
44+
type: boolean
45+
description: "Boolean to enable the Windows 6.1 Swift version matrix job. Defaults to false. Currently has no effect!" # TODO: implement Windows Cxx compat checking
46+
default: false
3947
windows_nightly_6_0_enabled:
4048
type: boolean
4149
description: "⚠️ Deprecated, we no longer run against 6.0 nightly." # TODO: implement Windows Cxx compat checking
@@ -64,6 +72,7 @@ jobs:
6472
MATRIX_LINUX_5_9_ENABLED: ${{ inputs.linux_5_9_enabled }}
6573
MATRIX_LINUX_5_10_ENABLED: ${{ inputs.linux_5_10_enabled }}
6674
MATRIX_LINUX_6_0_ENABLED: ${{ inputs.linux_6_0_enabled }}
75+
MATRIX_LINUX_6_1_ENABLED: ${{ inputs.linux_6_1_enabled }}
6776
MATRIX_LINUX_NIGHTLY_NEXT_ENABLED: ${{ inputs.linux_nightly_6_1_enabled && inputs.linux_nightly_next_enabled }}
6877
MATRIX_LINUX_NIGHTLY_MAIN_ENABLED: ${{ inputs.linux_nightly_main_enabled }}
6978

.github/workflows/main.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ jobs:
1515
linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
1616
linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
1717
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
18+
linux_6_1_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
1819
linux_nightly_6_1_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
1920
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"
2021

.github/workflows/pull_request.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ jobs:
1919
linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
2020
linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
2121
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
22+
linux_6_1_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
2223
linux_nightly_6_1_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
2324
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"
2425

.github/workflows/unit_tests.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,14 @@ on:
2727
type: string
2828
description: "The arguments passed to swift test in the Linux 6.0 Swift version matrix job."
2929
default: ""
30+
linux_6_1_enabled:
31+
type: boolean
32+
description: "Boolean to enable the Linux 6.1 Swift version matrix job. Defaults to true."
33+
default: true
34+
linux_6_1_arguments_override:
35+
type: string
36+
description: "The arguments passed to swift test in the Linux 6.1 Swift version matrix job."
37+
default: ""
3038
linux_nightly_6_0_enabled:
3139
type: boolean
3240
description: "⚠️ Deprecated, we no longer run against 6.0 nightly."
@@ -68,6 +76,14 @@ on:
6876
type: string
6977
description: "The arguments passed to swift test in the Windows 6.0 Swift version matrix job."
7078
default: ""
79+
windows_6_1_enabled:
80+
type: boolean
81+
description: "Boolean to enable the Windows 6.1 Swift version matrix job. Defaults to false."
82+
default: false
83+
windows_6_1_arguments_override:
84+
type: string
85+
description: "The arguments passed to swift test in the Windows 6.1 Swift version matrix job."
86+
default: ""
7187
windows_nightly_6_0_enabled:
7288
type: boolean
7389
description: "⚠️ Deprecated, we no longer run against 6.0 nightly."
@@ -122,13 +138,17 @@ jobs:
122138
MATRIX_LINUX_5_10_COMMAND_ARGUMENTS: ${{ inputs.linux_5_10_arguments_override }}
123139
MATRIX_LINUX_6_0_ENABLED: ${{ inputs.linux_6_0_enabled }}
124140
MATRIX_LINUX_6_0_COMMAND_ARGUMENTS: ${{ inputs.linux_6_0_arguments_override }}
141+
MATRIX_LINUX_6_1_ENABLED: ${{ inputs.linux_6_1_enabled }}
142+
MATRIX_LINUX_6_1_COMMAND_ARGUMENTS: ${{ inputs.linux_6_1_arguments_override }}
125143
MATRIX_LINUX_NIGHTLY_NEXT_ENABLED: ${{ inputs.linux_nightly_6_1_enabled && inputs.linux_nightly_next_enabled }}
126144
MATRIX_LINUX_NIGHTLY_NEXT_COMMAND_ARGUMENTS: ${{ inputs.linux_nightly_6_1_arguments_override }} ${{ inputs.linux_nightly_next_arguments_override }}
127145
MATRIX_LINUX_NIGHTLY_MAIN_ENABLED: ${{ inputs.linux_nightly_main_enabled }}
128146
MATRIX_LINUX_NIGHTLY_MAIN_COMMAND_ARGUMENTS: ${{ inputs.linux_nightly_main_arguments_override }}
129147
MATRIX_WINDOWS_COMMAND: "swift test"
130148
MATRIX_WINDOWS_6_0_ENABLED: ${{ inputs.windows_6_0_enabled }}
131149
MATRIX_WINDOWS_6_0_COMMAND_ARGUMENTS: ${{ inputs.windows_6_0_arguments_override }}
150+
MATRIX_WINDOWS_6_1_ENABLED: ${{ inputs.windows_6_1_enabled }}
151+
MATRIX_WINDOWS_6_1_COMMAND_ARGUMENTS: ${{ inputs.windows_6_1_arguments_override }}
132152
MATRIX_WINDOWS_NIGHTLY_NEXT_ENABLED: ${{ inputs.windows_nightly_6_1_enabled && inputs.windows_nightly_next_enabled }}
133153
MATRIX_WINDOWS_NIGHTLY_NEXT_COMMAND_ARGUMENTS: ${{ inputs.windows_nightly_6_1_arguments_override }} ${{ inputs.windows_nightly_next_arguments_override }}
134154
MATRIX_WINDOWS_NIGHTLY_MAIN_ENABLED: ${{ inputs.windows_nightly_main_enabled }}

scripts/generate_matrix.sh

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@ linux_5_9_command_arguments="$MATRIX_LINUX_5_9_COMMAND_ARGUMENTS"
2121
linux_5_10_enabled="${MATRIX_LINUX_5_10_ENABLED:=true}"
2222
linux_5_10_command_arguments="$MATRIX_LINUX_5_10_COMMAND_ARGUMENTS"
2323
linux_6_0_enabled="${MATRIX_LINUX_6_0_ENABLED:=true}"
24+
linux_6_1_enabled="${MATRIX_LINUX_6_1_ENABLED:=true}"
2425
linux_6_0_command_arguments="$MATRIX_LINUX_6_0_COMMAND_ARGUMENTS"
26+
linux_6_1_command_arguments="$MATRIX_LINUX_6_1_COMMAND_ARGUMENTS"
2527
linux_nightly_next_enabled="${MATRIX_LINUX_NIGHTLY_NEXT_ENABLED:=${MATRIX_LINUX_NIGHTLY_6_1_ENABLED:=true}}"
2628
linux_nightly_next_command_arguments="${MATRIX_LINUX_NIGHTLY_NEXT_COMMAND_ARGUMENTS:=${MATRIX_LINUX_NIGHTLY_6_1_COMMAND_ARGUMENTS}}"
2729
linux_nightly_main_enabled="${MATRIX_LINUX_NIGHTLY_MAIN_ENABLED:=true}"
@@ -30,7 +32,9 @@ linux_nightly_main_command_arguments="$MATRIX_LINUX_NIGHTLY_MAIN_COMMAND_ARGUMEN
3032
windows_command="$MATRIX_WINDOWS_COMMAND" # required if any Windows pipeline is enabled
3133
windows_setup_command="$MATRIX_WINDOWS_SETUP_COMMAND"
3234
windows_6_0_enabled="${MATRIX_WINDOWS_6_0_ENABLED:=false}"
35+
windows_6_1_enabled="${MATRIX_WINDOWS_6_1_ENABLED:=false}"
3336
windows_6_0_command_arguments="$MATRIX_WINDOWS_6_0_COMMAND_ARGUMENTS"
37+
windows_6_1_command_arguments="$MATRIX_WINDOWS_6_1_COMMAND_ARGUMENTS"
3438
windows_nightly_next_enabled="${MATRIX_WINDOWS_NIGHTLY_NEXT_ENABLED:=${MATRIX_WINDOWS_NIGHTLY_6_1_ENABLED:=false}}"
3539
windows_nightly_next_command_arguments="${MATRIX_WINDOWS_NIGHTLY_NEXT_COMMAND_ARGUMENTS:=${MATRIX_WINDOWS_NIGHTLY_6_1_COMMAND_ARGUMENTS}}"
3640
windows_nightly_main_enabled="${MATRIX_WINDOWS_NIGHTLY_MAIN_ENABLED:=false}"
@@ -41,11 +45,14 @@ linux_runner="ubuntu-latest"
4145
linux_5_9_container_image="swift:5.9-jammy"
4246
linux_5_10_container_image="swift:5.10-jammy"
4347
linux_6_0_container_image="swift:6.0-jammy"
48+
linux_6_1_container_image="swift:6.1-jammy"
4449
linux_nightly_next_container_image="swiftlang/swift:nightly-6.1-jammy"
4550
linux_nightly_main_container_image="swiftlang/swift:nightly-main-jammy"
4651

4752
windows_6_0_runner="windows-2022"
4853
windows_6_0_container_image="swift:6.0-windowsservercore-ltsc2022"
54+
windows_6_1_runner="windows-2022"
55+
windows_6_1_container_image="swift:6.1-windowsservercore-ltsc2022"
4956
windows_nightly_next_runner="windows-2019"
5057
windows_nightly_next_container_image="swiftlang/swift:nightly-6.1-windowsservercore-1809"
5158
windows_nightly_main_runner="windows-2019"
@@ -55,8 +62,14 @@ windows_nightly_main_container_image="swiftlang/swift:nightly-main-windowsserver
5562
matrix='{"config": []}'
5663

5764
## Linux
58-
if [[ "$linux_5_9_enabled" == "true" || "$linux_5_10_enabled" == "true" || "$linux_6_0_enabled" == "true" || \
59-
"$linux_nightly_next_enabled" == "true" || "$linux_nightly_main_enabled" == "true" ]]; then
65+
if [[ \
66+
"$linux_5_9_enabled" == "true" || \
67+
"$linux_5_10_enabled" == "true" || \
68+
"$linux_6_0_enabled" == "true" || \
69+
"$linux_6_1_enabled" == "true" || \
70+
"$linux_nightly_next_enabled" == "true" || \
71+
"$linux_nightly_main_enabled" == "true" \
72+
]]; then
6073
if [[ -z "$linux_command" ]]; then
6174
echo "No linux command defined"; exit 1
6275
fi
@@ -93,6 +106,16 @@ if [[ "$linux_6_0_enabled" == "true" ]]; then
93106
'.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}')
94107
fi
95108

109+
if [[ "$linux_6_1_enabled" == "true" ]]; then
110+
matrix=$(echo "$matrix" | jq -c \
111+
--arg setup_command "$linux_setup_command" \
112+
--arg command "$linux_command" \
113+
--arg command_arguments "$linux_6_1_command_arguments" \
114+
--arg container_image "$linux_6_1_container_image" \
115+
--arg runner "$linux_runner" \
116+
'.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}')
117+
fi
118+
96119
if [[ "$linux_nightly_next_enabled" == "true" ]]; then
97120
matrix=$(echo "$matrix" | jq -c \
98121
--arg setup_command "$linux_setup_command" \
@@ -114,7 +137,11 @@ if [[ "$linux_nightly_main_enabled" == "true" ]]; then
114137
fi
115138

116139
## Windows
117-
if [[ "$windows_6_0_enabled" == "true" || "$windows_nightly_next_enabled" == "true" || "$windows_nightly_main_enabled" == "true" ]]; then
140+
if [[ \
141+
"$windows_6_0_enabled" == "true" || \
142+
"$windows_nightly_next_enabled" == "true" || \
143+
"$windows_nightly_main_enabled" == "true" \
144+
]]; then
118145
if [[ -z "$windows_command" ]]; then
119146
echo "No windows command defined"; exit 1
120147
fi
@@ -130,6 +157,16 @@ if [[ "$windows_6_0_enabled" == "true" ]]; then
130157
'.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 }')
131158
fi
132159

160+
if [[ "$windows_6_1_enabled" == "true" ]]; then
161+
matrix=$(echo "$matrix" | jq -c \
162+
--arg setup_command "$windows_setup_command" \
163+
--arg command "$windows_command" \
164+
--arg command_arguments "$windows_6_1_command_arguments" \
165+
--arg container_image "$windows_6_1_container_image" \
166+
--arg runner "$windows_6_1_runner" \
167+
'.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 }')
168+
fi
169+
133170
if [[ "$windows_nightly_next_enabled" == "true" ]]; then
134171
matrix=$(echo "$matrix" | jq -c \
135172
--arg setup_command "$windows_setup_command" \

0 commit comments

Comments
 (0)