3131 uses : actions/cache@v4
3232 with :
3333 path : .build
34- key : ${{ runner.os }}- spm-${{ hashFiles('Package.swift') }}
34+ key : macos-swift62- spm-${{ hashFiles('Package.swift', 'Package@* .swift') }}
3535 restore-keys : |
36- ${{ runner.os }} -spm-
36+ macos-swift62 -spm-
3737
3838 # Note: swift test builds automatically, no separate build step needed
3939 - name : Test
@@ -42,13 +42,19 @@ jobs:
4242 - name : Validate Package.swift
4343 run : swift package dump-package
4444
45- - name : Run README verification tests
46- run : swift test --filter ReadmeVerificationTests
47-
4845 - name : Check for API breaking changes
46+ id : api-diff
4947 run : |
50- swift package diagnose-api-breaking-changes \
51- --breakage-allowlist-path .swift-api-breakage-allowlist || true
48+ echo "## API Breaking Changes Check" >> $GITHUB_STEP_SUMMARY
49+ if swift package diagnose-api-breaking-changes --breakage-allowlist-path .swift-api-breakage-allowlist 2>&1 | tee api-diff.txt; then
50+ echo "✅ No API breaking changes detected" >> $GITHUB_STEP_SUMMARY
51+ else
52+ echo "⚠️ API breaking changes detected:" >> $GITHUB_STEP_SUMMARY
53+ echo '```' >> $GITHUB_STEP_SUMMARY
54+ cat api-diff.txt >> $GITHUB_STEP_SUMMARY
55+ echo '```' >> $GITHUB_STEP_SUMMARY
56+ echo "::warning::API breaking changes detected. Review changes before release."
57+ fi
5258 continue-on-error : true
5359
5460 # Production validation: Latest Swift on Linux with release build
@@ -63,29 +69,29 @@ jobs:
6369 uses : actions/cache@v4
6470 with :
6571 path : .build
66- key : ${{ runner.os }}- spm-${{ hashFiles('Package.swift') }}
67- restore-keys : ${{ runner.os }} -spm-
72+ key : linux-swift62- spm-${{ hashFiles('Package.swift', 'Package@* .swift') }}
73+ restore-keys : linux-swift62 -spm-
6874
6975 # Note: swift test builds automatically in release mode
7076 - name : Test (release)
7177 run : swift test -c release
7278
73- # Compatibility check: Minimum supported Swift version (6.0 )
74- # Note: Swift Testing framework requires Swift 6.0+
79+ # Compatibility check: Minimum supported Swift version (6.2 )
80+ # Update to swift:6.3 when available
7581 linux-compat :
76- name : Ubuntu (Swift 6.0 , compatibility)
82+ name : Ubuntu (Swift 6.2 , compatibility)
7783 runs-on : ubuntu-latest
78- container : swift:6.0
84+ container : swift:6.2
7985 steps :
8086 - uses : actions/checkout@v5
8187
8288 - name : Cache Swift packages
8389 uses : actions/cache@v4
8490 with :
8591 path : .build
86- key : ${{ runner.os }}-swift60- spm-${{ hashFiles('Package.swift') }}
87- restore-keys : ${{ runner.os }}-swift60 -spm-
92+ key : linux-swift62-compat- spm-${{ hashFiles('Package.swift', 'Package@* .swift') }}
93+ restore-keys : linux-swift62-compat -spm-
8894
8995 # Note: swift test builds automatically
90- - name : Test (Swift 6.0 )
96+ - name : Test (Swift 6.2 )
9197 run : swift test -c release
0 commit comments