-
Notifications
You must be signed in to change notification settings - Fork 135
148 lines (135 loc) · 4.87 KB
/
ci.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- '*'
workflow_dispatch:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
tests:
runs-on: macos-14
strategy:
matrix:
combination:
- xcode: '15.4'
variation: ios
os_version: 17.5
- xcode: '16.1'
variation: ios
os_version: 18.1
- xcode: '15.4'
variation: tvos
os_version: 17.5
- xcode: '16.1'
variation: tvos
os_version: 18.1
- xcode: '15.4'
variation: watchos
os_version: 10.5
- xcode: '16.1'
variation: watchos
os_version: 11.1
- xcode: '15.4'
variation: macos
- xcode: '16.1'
variation: macos
- xcode: '15.4'
variation: examples
os_version: 17.5
- xcode: '16.1'
variation: examples
os_version: 18.1
steps:
- uses: actions/checkout@v4
- name: Select Xcode ${{ matrix.combination.xcode }}
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.combination.xcode }}.app
- name: Skip macro validation
run: defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES
- name: Set OS version
run: |
if [[ "${{ matrix.combination.variation }}" == "ios" ]]; then
echo "IOS_VERSION=${{ matrix.combination.os_version }}" >> $GITHUB_ENV
elif [[ "${{ matrix.combination.variation }}" == "tvos" ]]; then
echo "TVOS_VERSION=${{ matrix.combination.os_version }}" >> $GITHUB_ENV
elif [[ "${{ matrix.combination.variation }}" == "watchos" ]]; then
echo "WATCHOS_VERSION=${{ matrix.combination.os_version }}" >> $GITHUB_ENV
elif [[ "${{ matrix.combination.variation }}" == "examples" ]]; then
echo "IOS_VERSION=${{ matrix.combination.os_version }}" >> $GITHUB_ENV
fi
- name: Run tests
run: make test-${{ matrix.combination.variation }}
library-evolution:
runs-on: macos-14
strategy:
matrix:
combination:
- xcode: '15.4'
variation: ios
os_version: 17.5
- xcode: '16.1'
variation: ios
os_version: 18.1
- xcode: '15.4'
variation: macos
- xcode: '16.1'
variation: macos
steps:
- uses: actions/checkout@v4
- name: Select Xcode ${{ matrix.combination.xcode }}
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.combination.xcode }}.app
- name: Skip macro validation
run: defaults write com.apple.dt.Xcode IDESkipMacroFingerprintValidation -bool YES
- name: Set OS version
run: |
if [[ "${{ matrix.combination.variation }}" == "ios" ]]; then
echo "IOS_VERSION=${{ matrix.combination.os_version }}" >> $GITHUB_ENV
fi
- name: Run Library Evolution builds
run: make library-evolution-${{ matrix.combination.variation }}
wasm:
name: SwiftWasm
runs-on: ubuntu-latest
strategy:
matrix:
include:
- toolchain: swift-DEVELOPMENT-SNAPSHOT-2024-09-12-a
swift-sdk: swift-wasm-DEVELOPMENT-SNAPSHOT-2024-09-12-a
checksum: 630ce23114580dfae029f832d8ccc8b1ba5136b7f915e82f8e405650e326b562
steps:
- uses: actions/checkout@v4
- uses: bytecodealliance/actions/wasmtime/setup@v1
- name: Install Swift and Swift SDK for WebAssembly
run: |
PREFIX=/opt/swift
SWIFT_TOOLCHAIN_TAG="${{ matrix.toolchain }}"
SWIFT_SDK_TAG="${{ matrix.swift-sdk }}"
set -ex
curl -f -o /tmp/swift.tar.gz "https://download.swift.org/development/ubuntu2204/$SWIFT_TOOLCHAIN_TAG/$SWIFT_TOOLCHAIN_TAG-ubuntu22.04.tar.gz"
sudo mkdir -p $PREFIX; sudo tar -xzf /tmp/swift.tar.gz -C $PREFIX --strip-component 1
$PREFIX/usr/bin/swift sdk install "https://github.com/swiftwasm/swift/releases/download/$SWIFT_SDK_TAG/$SWIFT_SDK_TAG-wasm32-unknown-wasi.artifactbundle.zip" --checksum ${{ matrix.checksum }}
echo "$PREFIX/usr/bin" >> $GITHUB_PATH
- name: Build tests
run: swift build --swift-sdk wasm32-unknown-wasi --build-tests -Xlinker -z -Xlinker stack-size=$((1024 * 1024))
- name: Run tests
run: wasmtime --dir . .build/debug/swift-navigationPackageTests.wasm
windows:
name: Windows
strategy:
matrix:
os: [windows-latest]
config: ['debug', 'release']
fail-fast: false
runs-on: ${{ matrix.os }}
steps:
- uses: compnerd/gha-setup-swift@main
with:
branch: swift-5.10-release
tag: 5.10-RELEASE
- uses: actions/checkout@v4
- name: Build
run: swift build -c ${{ matrix.config }}