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
4242 - name : Validate Package.swift
4343 run : swift package dump-package
4444
45+ - name : Check for API breaking changes
46+ id : api-diff
47+ run : |
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
58+ continue-on-error : true
59+
4560 # Production validation: Latest Swift on Linux with release build
4661 linux-latest :
4762 name : Ubuntu (Swift 6.2, release)
@@ -54,28 +69,29 @@ jobs:
5469 uses : actions/cache@v4
5570 with :
5671 path : .build
57- key : ${{ runner.os }}- spm-${{ hashFiles('Package.swift') }}
58- restore-keys : ${{ runner.os }} -spm-
72+ key : linux-swift62- spm-${{ hashFiles('Package.swift', 'Package@* .swift') }}
73+ restore-keys : linux-swift62 -spm-
5974
6075 # Note: swift test builds automatically in release mode
6176 - name : Test (release)
6277 run : swift test -c release
6378
64- # Compatibility check: Minimum supported Swift version (6.0)
79+ # Compatibility check: Minimum supported Swift version (6.2)
80+ # Update to swift:6.3 when available
6581 linux-compat :
66- name : Ubuntu (Swift 6.0 , compatibility)
82+ name : Ubuntu (Swift 6.2 , compatibility)
6783 runs-on : ubuntu-latest
68- container : swift:6.0
84+ container : swift:6.2
6985 steps :
7086 - uses : actions/checkout@v5
7187
7288 - name : Cache Swift packages
7389 uses : actions/cache@v4
7490 with :
7591 path : .build
76- key : ${{ runner.os }}-swift60- spm-${{ hashFiles('Package.swift') }}
77- restore-keys : ${{ runner.os }}-swift60 -spm-
92+ key : linux-swift62-compat- spm-${{ hashFiles('Package.swift', 'Package@* .swift') }}
93+ restore-keys : linux-swift62-compat -spm-
7894
7995 # Note: swift test builds automatically
80- - name : Test (Swift 6.0 )
96+ - name : Test (Swift 6.2 )
8197 run : swift test -c release
0 commit comments