Skip to content

Commit c16420c

Browse files
authored
[CI] Migrate to Swift 6.0 and drop 5.8 (#2920)
# Motivation Our support strategy includes the last three released Swift versions. After the recent release of Swift 6 this means we now support 5.9, 5.10 and 6.0. # Modification This PR updates our CI configuration and scripts to align with our supported Swift versions. # Result Up to date CI coverage.
1 parent f7dc3f5 commit c16420c

9 files changed

+44
-44
lines changed

.github/workflows/benchmarks.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,6 @@ on:
1010
swift_package_arguments:
1111
type: string
1212
description: "Arguments to the switch package command invocation e.g. `--disable-sandbox`"
13-
linux_5_8_enabled:
14-
type: boolean
15-
description: "Boolean to enable the Linux 5.8 Swift version matrix job. Defaults to true."
16-
default: true
1713
linux_5_9_enabled:
1814
type: boolean
1915
description: "Boolean to enable the Linux 5.9 Swift version matrix job. Defaults to true."
@@ -22,6 +18,10 @@ on:
2218
type: boolean
2319
description: "Boolean to enable the Linux 5.10 Swift version matrix job. Defaults to true."
2420
default: true
21+
linux_6_0_enabled:
22+
type: boolean
23+
description: "Boolean to enable the Linux 6.0 Swift version matrix job. Defaults to true."
24+
default: true
2525
linux_nightly_6_0_enabled:
2626
type: boolean
2727
description: "Boolean to enable the Linux nightly 6.0 Swift version matrix job. Defaults to true."
@@ -39,8 +39,8 @@ jobs:
3939
with:
4040
name: "Benchmarks"
4141
matrix_linux_command: "apt-get update -y -q && apt-get install -y -q libjemalloc-dev && swift package --package-path ${{ inputs.benchmark_package_path }} ${{ inputs.swift_package_arguments }} benchmark baseline check --check-absolute-path ${{ inputs.benchmark_package_path }}/Thresholds/${SWIFT_VERSION}/"
42-
matrix_linux_5_8_enabled: ${{ inputs.linux_5_8_enabled }}
4342
matrix_linux_5_9_enabled: ${{ inputs.linux_5_9_enabled }}
4443
matrix_linux_5_10_enabled: ${{ inputs.linux_5_10_enabled }}
44+
matrix_linux_6_0_enabled: ${{ inputs.linux_6_0_enabled }}
4545
matrix_linux_nightly_6_0_enabled: ${{ inputs.linux_nightly_6_0_enabled }}
4646
matrix_linux_nightly_main_enabled: ${{ inputs.linux_nightly_main_enabled }}

.github/workflows/cxx_interop.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,6 @@ name: Cxx interop
33
on:
44
workflow_call:
55
inputs:
6-
linux_5_8_enabled:
7-
type: boolean
8-
description: "Boolean to enable the Linux 5.8 Swift version matrix job. Defaults to true."
9-
default: true
106
linux_5_9_enabled:
117
type: boolean
128
description: "Boolean to enable the Linux 5.9 Swift version matrix job. Defaults to true."
@@ -15,6 +11,10 @@ on:
1511
type: boolean
1612
description: "Boolean to enable the Linux 5.10 Swift version matrix job. Defaults to true."
1713
default: true
14+
linux_6_0_enabled:
15+
type: boolean
16+
description: "Boolean to enable the Linux 6.0 Swift version matrix job. Defaults to true."
17+
default: true
1818
linux_nightly_6_0_enabled:
1919
type: boolean
2020
description: "Boolean to enable the Linux nightly 6.0 Swift version matrix job. Defaults to true."
@@ -32,8 +32,8 @@ jobs:
3232
with:
3333
name: "Cxx interop"
3434
matrix_linux_command: "apt-get update -y -q && apt-get install -y -q jq && curl -s https://raw.githubusercontent.com/apple/swift-nio/main/scripts/check-cxx-interop-compatibility.sh | bash"
35-
matrix_linux_5_8_enabled: ${{ inputs.linux_5_8_enabled }}
3635
matrix_linux_5_9_enabled: ${{ inputs.linux_5_9_enabled }}
3736
matrix_linux_5_10_enabled: ${{ inputs.linux_5_10_enabled }}
37+
matrix_linux_6_0_enabled: ${{ inputs.linux_6_0_enabled }}
3838
matrix_linux_nightly_6_0_enabled: ${{ inputs.linux_nightly_6_0_enabled }}
3939
matrix_linux_nightly_main_enabled: ${{ inputs.linux_nightly_main_enabled }}

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ jobs:
1010
# Workaround https://github.com/nektos/act/issues/1875
1111
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
1212
with:
13-
linux_5_8_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
1413
linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
1514
linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
15+
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
1616
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error"
1717
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"
1818

.github/workflows/pull_request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@ jobs:
1818
# Workaround https://github.com/nektos/act/issues/1875
1919
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
2020
with:
21-
linux_5_8_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
2221
linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
2322
linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
23+
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
2424
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error"
2525
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"
2626

.github/workflows/scheduled.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,9 @@ jobs:
1010
# Workaround https://github.com/nektos/act/issues/1875
1111
uses: apple/swift-nio/.github/workflows/unit_tests.yml@main
1212
with:
13-
linux_5_8_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
1413
linux_5_9_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
1514
linux_5_10_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
15+
linux_6_0_arguments_override: "-Xswiftc -warnings-as-errors --explicit-target-dependency-import-check error"
1616
linux_nightly_6_0_arguments_override: "--explicit-target-dependency-import-check error"
1717
linux_nightly_main_arguments_override: "--explicit-target-dependency-import-check error"
1818

.github/workflows/swift_6_language_mode.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jobs:
1313
name: Swift 6 language mode
1414
runs-on: ubuntu-latest
1515
container:
16-
image: swiftlang/swift:nightly-6.0-jammy
16+
image: swift:6.0-jammy
1717
steps:
1818
- name: Checkout repository
1919
uses: actions/checkout@v4

.github/workflows/swift_matrix.yml

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -11,17 +11,6 @@ on:
1111
type: string
1212
description: "The command of the current Swift version linux matrix job to execute."
1313
required: true
14-
matrix_linux_5_8_enabled:
15-
type: boolean
16-
description: "Boolean to enable the 5.8 Swift version matrix job. Defaults to true."
17-
default: true
18-
matrix_linux_5_8_container_image:
19-
type: string
20-
description: "Container image for the 5.8 Swift version matrix job. Defaults to matching Swift Ubuntu image."
21-
default: "swift:5.8-jammy"
22-
matrix_linux_5_8_command_override:
23-
type: string
24-
description: "The command of the 5.8 Swift version linux matrix job to execute."
2514
matrix_linux_5_9_enabled:
2615
type: boolean
2716
description: "Boolean to enable the 5.9 Swift version matrix job. Defaults to true."
@@ -44,6 +33,17 @@ on:
4433
matrix_linux_5_10_command_override:
4534
type: string
4635
description: "The command of the 5.10 Swift version linux matrix job to execute."
36+
matrix_linux_6_0_enabled:
37+
type: boolean
38+
description: "Boolean to enable the 6.0 Swift version matrix job. Defaults to true."
39+
default: true
40+
matrix_linux_6_0_container_image:
41+
type: string
42+
description: "Container image for the 6.0 Swift version matrix job. Defaults to matching Swift Ubuntu image."
43+
default: "swift:6.0-jammy"
44+
matrix_linux_6_0_command_override:
45+
type: string
46+
description: "The command of the 6.0 Swift version linux matrix job to execute."
4747
matrix_linux_nightly_6_0_enabled:
4848
type: boolean
4949
description: "Boolean to enable the nightly 6.0 Swift version matrix job. Defaults to true."
@@ -81,15 +81,15 @@ jobs:
8181
matrix:
8282
# We are specifying only the major and minor of the docker images to automatically pick up the latest patch release
8383
swift:
84-
- image: ${{ inputs.matrix_linux_5_8_container_image }}
85-
swift_version: "5.8"
86-
enabled: ${{ inputs.matrix_linux_5_8_enabled }}
8784
- image: ${{ inputs.matrix_linux_5_9_container_image }}
8885
swift_version: "5.9"
8986
enabled: ${{ inputs.matrix_linux_5_9_enabled }}
9087
- image: ${{ inputs.matrix_linux_5_10_container_image }}
9188
swift_version: "5.10"
9289
enabled: ${{ inputs.matrix_linux_5_10_enabled }}
90+
- image: ${{ inputs.matrix_linux_6_0_container_image }}
91+
swift_version: "6.0"
92+
enabled: ${{ inputs.matrix_linux_6_0_enabled }}
9393
- image: ${{ inputs.matrix_linux_nightly_6_0_container_image }}
9494
swift_version: "nightly-6.0"
9595
enabled: ${{ inputs.matrix_linux_nightly_6_0_enabled }}
@@ -113,9 +113,9 @@ jobs:
113113
env:
114114
SWIFT_VERSION: ${{ matrix.swift.swift_version }}
115115
COMMAND: ${{ inputs.matrix_linux_command }}
116-
COMMAND_OVERRIDE_5_8: ${{ inputs.matrix_linux_5_8_command_override }}
117116
COMMAND_OVERRIDE_5_9: ${{ inputs.matrix_linux_5_9_command_override }}
118117
COMMAND_OVERRIDE_5_10: ${{ inputs.matrix_linux_5_10_command_override }}
118+
COMMAND_OVERRIDE_6_0: ${{ inputs.matrix_linux_6_0_command_override }}
119119
COMMAND_OVERRIDE_NIGHTLY_6_0: ${{ inputs.matrix_linux_nightly_6_0_command_override }}
120120
COMMAND_OVERRIDE_NIGHTLY_MAIN: ${{ inputs.matrix_linux_nightly_main_command_override }}
121121
run: |

.github/workflows/unit_tests.yml

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,6 @@ name: Unit tests
33
on:
44
workflow_call:
55
inputs:
6-
linux_5_8_enabled:
7-
type: boolean
8-
description: "Boolean to enable the Linux 5.8 Swift version matrix job. Defaults to true."
9-
default: true
10-
linux_5_8_arguments_override:
11-
type: string
12-
description: "The arguments passed to swift test in the Linux 5.8 Swift version matrix job."
13-
default: ""
146
linux_5_9_enabled:
157
type: boolean
168
description: "Boolean to enable the Linux 5.9 Swift version matrix job. Defaults to true."
@@ -27,6 +19,14 @@ on:
2719
type: string
2820
description: "The arguments passed to swift test in the Linux 5.10 Swift version matrix job."
2921
default: ""
22+
linux_6_0_enabled:
23+
type: boolean
24+
description: "Boolean to enable the Linux 6.0 Swift version matrix job. Defaults to true."
25+
default: true
26+
linux_6_0_arguments_override:
27+
type: string
28+
description: "The arguments passed to swift test in the Linux 6.0 Swift version matrix job."
29+
default: ""
3030
linux_nightly_6_0_enabled:
3131
type: boolean
3232
description: "Boolean to enable the Linux nightly 6.0 Swift version matrix job. Defaults to true."
@@ -52,12 +52,12 @@ jobs:
5252
with:
5353
name: "Unit tests"
5454
matrix_linux_command: "swift test"
55-
matrix_linux_5_8_enabled: ${{ inputs.linux_5_8_enabled }}
56-
matrix_linux_5_8_command_override: "swift test ${{ inputs.linux_5_8_arguments_override }}"
5755
matrix_linux_5_9_enabled: ${{ inputs.linux_5_9_enabled }}
5856
matrix_linux_5_9_command_override: "swift test ${{ inputs.linux_5_9_arguments_override }}"
5957
matrix_linux_5_10_enabled: ${{ inputs.linux_5_10_enabled }}
6058
matrix_linux_5_10_command_override: "swift test ${{ inputs.linux_5_10_arguments_override }}"
59+
matrix_linux_6_0_enabled: ${{ inputs.linux_6_0_enabled }}
60+
matrix_linux_6_0_command_override: "swift test ${{ inputs.linux_6_0_arguments_override }}"
6161
matrix_linux_nightly_6_0_enabled: ${{ inputs.linux_nightly_6_0_enabled }}
6262
matrix_linux_nightly_6_0_command_override: "swift test ${{ inputs.linux_nightly_6_0_arguments_override }}"
6363
matrix_linux_nightly_main_enabled: ${{ inputs.linux_nightly_main_enabled }}

scripts/check-matrix-job.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -22,21 +22,21 @@ test -n "${SWIFT_VERSION:-}" || fatal "SWIFT_VERSION unset"
2222
test -n "${COMMAND:-}" || fatal "COMMAND unset"
2323
swift_version="$SWIFT_VERSION"
2424
command="$COMMAND"
25-
command_5_8="$COMMAND_OVERRIDE_5_8"
2625
command_5_9="$COMMAND_OVERRIDE_5_9"
2726
command_5_10="$COMMAND_OVERRIDE_5_10"
27+
command_6_0="$COMMAND_OVERRIDE_6_0"
2828
command_nightly_6_0="$COMMAND_OVERRIDE_NIGHTLY_6_0"
2929
command_nightly_main="$COMMAND_OVERRIDE_NIGHTLY_MAIN"
3030

31-
if [[ "$swift_version" == "5.8" ]] && [[ -n "$command_5_8" ]]; then
32-
log "Running 5.8 command override"
33-
eval "$command_5_8"
34-
elif [[ "$swift_version" == "5.9" ]] && [[ -n "$command_5_9" ]]; then
31+
if [[ "$swift_version" == "5.9" ]] && [[ -n "$command_5_9" ]]; then
3532
log "Running 5.9 command override"
3633
eval "$command_5_9"
3734
elif [[ "$swift_version" == "5.10" ]] && [[ -n "$command_5_10" ]]; then
3835
log "Running 5.10 command override"
3936
eval "$command_5_10"
37+
elif [[ "$swift_version" == "6.0" ]] && [[ -n "$command_6_0" ]]; then
38+
log "Running 6.0 command override"
39+
eval "$command_6_0"
4040
elif [[ "$swift_version" == "nightly-6.0" ]] && [[ -n "$command_nightly_6_0" ]]; then
4141
log "Running nightly 6.0 command override"
4242
eval "$command_nightly_6_0"

0 commit comments

Comments
 (0)