-
Notifications
You must be signed in to change notification settings - Fork 110
133 lines (124 loc) · 3.96 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
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- '*'
workflow_dispatch:
concurrency:
group: ci-${{ github.ref }}
cancel-in-progress: true
jobs:
macos:
name: macOS (Xcode ${{ matrix.xcode }})
runs-on: macos-14
strategy:
matrix:
xcode:
- '15.4'
- '16.0'
steps:
- uses: actions/checkout@v4
- name: Select Xcode ${{ matrix.xcode }}
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
- name: Print Swift version
run: swift --version
- name: Run tests
run: make test-swift
macos-library-evolution:
name: macOS Library Evolution (Xcode ${{ matrix.xcode }})
runs-on: macos-latest
strategy:
matrix:
xcode:
- '15.4'
- '16.0'
steps:
- uses: actions/checkout@v4
- name: Select Xcode ${{ matrix.xcode }}
run: sudo xcode-select -s /Applications/Xcode_${{ matrix.xcode }}.app
- name: Print Swift version
run: swift --version
- name: Build for Library Evolution
run: make build-for-library-evolution
linux:
strategy:
matrix:
swift:
- '5.10'
name: Ubuntu (Swift ${{ matrix.swift }})
runs-on: ubuntu-latest
container: swift:${{ matrix.swift }}
steps:
- uses: actions/checkout@v4
- name: Run tests
run: swift test --parallel
- name: Run tests (release)
run: swift test -c release --parallel
wasm:
name: SwiftWasm
runs-on: ubuntu-latest
env:
OMIT_MACRO_TESTS: 1
strategy:
matrix:
include:
- toolchain: swift-DEVELOPMENT-SNAPSHOT-2024-09-18-a
swift-sdk: swift-wasm-DEVELOPMENT-SNAPSHOT-2024-09-20-a
checksum: ac7318b8beee4870162292715654499127833b847af6b3d94c32e574579ea189
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-case-pathsPackageTests.wasm
check-macro-compatibility:
name: Check Macro Compatibility
runs-on: macos-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run Swift Macro Compatibility Check
uses: Matejkob/swift-macro-compatibility-check@v1
with:
run-tests: false
major-versions-only: true
# windows:
# name: Windows (Swift ${{ matrix.swift }}, ${{ matrix.config }})
# strategy:
# matrix:
# os: [windows-latest]
# config:
# - debug
# #- release
# swift: ['6.0']
# fail-fast: false
# runs-on: ${{ matrix.os }}
# steps:
# - uses: compnerd/gha-setup-swift@main
# with:
# branch: swift-${{ matrix.swift }}-branch
# tag: ${{ matrix.swift }}-DEVELOPMENT-SNAPSHOT-2024-06-03-a
# - uses: actions/checkout@v4
# - name: Build
# run: swift build -c ${{ matrix.config }}
android:
name: Android
runs-on: ubuntu-22.04
env:
OMIT_MACRO_TESTS: 1
steps:
- uses: johankool/swift-android-test-action@v1