Skip to content

Commit 3293b4f

Browse files
committed
ci: require Swift 6.1+ and move CI/release runners to macOS 15
1 parent aca9f43 commit 3293b4f

2 files changed

Lines changed: 20 additions & 8 deletions

File tree

.github/workflows/ci.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ env:
1313
jobs:
1414
build:
1515
name: Build (macOS)
16-
runs-on: macos-14
16+
runs-on: macos-15
1717

1818
steps:
1919
- name: Checkout
@@ -30,13 +30,19 @@ jobs:
3030
sudo xcode-select -s "$XCODE_PATH/Contents/Developer"
3131
xcodebuild -version
3232
33-
- name: Verify Swift 6 toolchain
33+
- name: Verify Swift 6.1+ toolchain
3434
shell: bash
3535
run: |
3636
set -euo pipefail
3737
swift --version
38-
if ! swift --version | grep -E "Swift version 6\\." >/dev/null; then
39-
echo "Swift 6.x is required for CI." >&2
38+
VERSION_TUPLE="$(swift --version | sed -n 's/.*Swift version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1 \2/p' | head -n 1)"
39+
if [[ -z "${VERSION_TUPLE:-}" ]]; then
40+
echo "Unable to parse Swift version." >&2
41+
exit 1
42+
fi
43+
read -r SWIFT_MAJOR SWIFT_MINOR <<< "$VERSION_TUPLE"
44+
if (( SWIFT_MAJOR < 6 || (SWIFT_MAJOR == 6 && SWIFT_MINOR < 1) )); then
45+
echo "Swift 6.1+ is required for CI." >&2
4046
exit 1
4147
fi
4248

.github/workflows/release-macos.yml

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ env:
1414

1515
jobs:
1616
build-and-release:
17-
runs-on: macos-14
17+
runs-on: macos-15
1818

1919
env:
2020
APP_NAME: MuniConvert
@@ -43,13 +43,19 @@ jobs:
4343
sudo xcode-select -s "$XCODE_PATH/Contents/Developer"
4444
xcodebuild -version
4545
46-
- name: Verify Swift 6 toolchain
46+
- name: Verify Swift 6.1+ toolchain
4747
shell: bash
4848
run: |
4949
set -euo pipefail
5050
swift --version
51-
if ! swift --version | grep -E "Swift version 6\\." >/dev/null; then
52-
echo "Swift 6.x is required for release workflow." >&2
51+
VERSION_TUPLE="$(swift --version | sed -n 's/.*Swift version \([0-9][0-9]*\)\.\([0-9][0-9]*\).*/\1 \2/p' | head -n 1)"
52+
if [[ -z "${VERSION_TUPLE:-}" ]]; then
53+
echo "Unable to parse Swift version." >&2
54+
exit 1
55+
fi
56+
read -r SWIFT_MAJOR SWIFT_MINOR <<< "$VERSION_TUPLE"
57+
if (( SWIFT_MAJOR < 6 || (SWIFT_MAJOR == 6 && SWIFT_MINOR < 1) )); then
58+
echo "Swift 6.1+ is required for release workflow." >&2
5359
exit 1
5460
fi
5561

0 commit comments

Comments
 (0)