-
Notifications
You must be signed in to change notification settings - Fork 0
53 lines (49 loc) · 1.93 KB
/
Copy pathcore-tests.yml
File metadata and controls
53 lines (49 loc) · 1.93 KB
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
# Runs the platform-agnostic ContinuityCore test suite on Linux for every PR.
#
# BeatTracker/KeyDetector import Accelerate (Apple-only), and SwiftPM compiles the target as a
# unit — so the full package can't build on Linux. Per AGENTS.md, we assemble a throwaway
# package from the non-Accelerate sources/tests (111 of ~127 test cases: Camelot/flow ordering,
# crossfade curves, transition plan, loudness, silence trimming, YouTube/Spotify URL + page
# parsing). The BPM and key suites still need a Mac.
name: Core tests
on:
pull_request:
push:
branches: [main]
jobs:
core-tests-linux:
runs-on: ubuntu-24.04
container: swift:6.0
steps:
- uses: actions/checkout@v4
- name: Assemble Linux-buildable subset
run: |
set -eu
SRC=Packages/ContinuityCore
DST=/tmp/coretest
mkdir -p "$DST/Sources/ContinuityCore" "$DST/Tests/ContinuityCoreTests"
for f in "$SRC"/Sources/ContinuityCore/*.swift; do
case "$(basename "$f")" in
BeatTracker.swift|KeyDetector.swift) ;; # import Accelerate — Apple-only
*) cp "$f" "$DST/Sources/ContinuityCore/" ;;
esac
done
for f in "$SRC"/Tests/ContinuityCoreTests/*.swift; do
case "$(basename "$f")" in
BeatTrackerTests.swift|KeyDetectorTests.swift|KeyDetectorAccuracyTests.swift) ;;
*) cp "$f" "$DST/Tests/ContinuityCoreTests/" ;;
esac
done
cat > "$DST/Package.swift" <<'EOF'
// swift-tools-version:5.9
import PackageDescription
let package = Package(
name: "ContinuityCore",
targets: [
.target(name: "ContinuityCore"),
.testTarget(name: "ContinuityCoreTests", dependencies: ["ContinuityCore"]),
]
)
EOF
- name: swift test
run: swift test --package-path /tmp/coretest