Skip to content

Commit c9d38d5

Browse files
committed
Test upcoming features
1 parent 77485a9 commit c9d38d5

File tree

3 files changed

+33
-6
lines changed

3 files changed

+33
-6
lines changed

.github/workflows/test.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,16 @@ jobs:
4545
- name: Test example tvOS
4646
run: scripts/test.sh example-cross-platform tvos
4747

48+
upcoming_feature:
49+
name: Upcoming features
50+
runs-on: macos-14
51+
env:
52+
DEVELOPER_DIR: /Applications/Xcode_15.4.app
53+
steps:
54+
- uses: actions/checkout@v4
55+
- name: Test with upcoming features
56+
run: ENABLE_UPCOMING_FEATURES=1 scripts/test.sh library ios
57+
4858
benchmark:
4959
name: Benchmark
5060
runs-on: macos-14

Package@swift-5.swift

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,21 @@
22

33
import PackageDescription
44

5+
let swiftSettings: [SwiftSetting]
6+
7+
if Context.environment["ENABLE_UPCOMING_FEATURES"] != nil {
8+
swiftSettings = [
9+
.enableUpcomingFeature("ExistentialAny"),
10+
.enableUpcomingFeature("InferSendableFromCaptures"),
11+
.enableUpcomingFeature("DisableOutwardActorInference"),
12+
]
13+
}
14+
else {
15+
swiftSettings = [
16+
.enableUpcomingFeature("ExistentialAny"),
17+
]
18+
}
19+
520
let package = Package(
621
name: "swiftui-atom-properties",
722
platforms: [
@@ -15,11 +30,13 @@ let package = Package(
1530
],
1631
targets: [
1732
.target(
18-
name: "Atoms"
33+
name: "Atoms",
34+
swiftSettings: swiftSettings
1935
),
2036
.testTarget(
2137
name: "AtomsTests",
22-
dependencies: ["Atoms"]
38+
dependencies: ["Atoms"],
39+
swiftSettings: swiftSettings
2340
),
2441
],
2542
swiftLanguageVersions: [.v5]

scripts/test.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,18 +24,18 @@ esac
2424

2525
case $TARGET in
2626
library)
27-
xcodebuild test -scheme swiftui-atom-properties -destination platform="$platform"
27+
xcodebuild clean test -scheme swiftui-atom-properties -destination platform="$platform"
2828
;;
2929
example-ios)
3030
cd Examples/Packages/iOS
31-
xcodebuild test -scheme iOSExamples -destination platform="$platform"
31+
xcodebuild clean test -scheme iOSExamples -destination platform="$platform"
3232
;;
3333
example-cross-platform)
3434
cd Examples/Packages/CrossPlatform
35-
xcodebuild test -scheme CrossPlatformExamples -destination platform="$platform"
35+
xcodebuild clean test -scheme CrossPlatformExamples -destination platform="$platform"
3636
;;
3737
benchmark)
3838
cd Benchmarks
39-
xcodebuild test -scheme BenchmarkTests -destination platform="$platform"
39+
xcodebuild clean test -scheme BenchmarkTests -destination platform="$platform"
4040
;;
4141
esac

0 commit comments

Comments
 (0)