-
Notifications
You must be signed in to change notification settings - Fork 0
71 lines (59 loc) · 2.51 KB
/
Copy pathconformance.yml
File metadata and controls
71 lines (59 loc) · 2.51 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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# Run the link-wire-spec conformance harness against the candidate binary
# (adapted from the spec repo's conformance/example-candidate-ci.yml).
#
# The spec repo — and the GPL reference it builds — live only in the
# runner's temp directory and caches, never in this repo's tree or
# artifacts (clean-room firewall; see PROVENANCE.md). The job output is
# observations only.
name: conformance
on:
push:
workflow_dispatch:
permissions:
contents: read
env:
SPEC_REPO: structuresound/link-wire-spec
# The spec content this candidate targets: v0.4.0 plus the harness
# fixes on the spec repo's claude/hopeful-ride-u0k49i branch (closed-loop
# tempo driving). Move this pin to a release tag once one exists
# (link-wire-spec issue #4) and the branch is merged.
SPEC_REF: c3fa146823e284a2abc62eae59075c75d4e58f09
jobs:
conformance:
runs-on: ubuntu-latest
steps:
- name: Checkout candidate
uses: actions/checkout@v4
- name: Install Rust
run: rustup toolchain install stable --profile minimal && rustup default stable
- uses: Swatinem/rust-cache@v2
- name: Build candidate
run: cargo build --release -p tactus --bin conformance-peer
- name: Fetch spec + harness at pinned release (outside the workspace)
run: |
git init -q "$RUNNER_TEMP/link-wire-spec"
git -C "$RUNNER_TEMP/link-wire-spec" remote add origin "https://github.com/$SPEC_REPO.git"
git -C "$RUNNER_TEMP/link-wire-spec" fetch -q --depth 1 origin "$SPEC_REF"
git -C "$RUNNER_TEMP/link-wire-spec" checkout -q FETCH_HEAD
- name: Install harness dependencies
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends \
cmake g++ git iproute2 util-linux python3 \
jackd2 libjack-jackd2-dev portaudio19-dev libasound2-dev
- name: Run conformance harness
env:
CANDIDATE_CMD: ${{ github.workspace }}/target/release/conformance-peer
CANDIDATE_FEATURES: audio
LINK_CAPTURE_WORK: ${{ runner.temp }}/link-reference
run: |
set -o pipefail
sudo --preserve-env=CANDIDATE_CMD,CANDIDATE_FEATURES,LINK_CAPTURE_WORK \
bash "$RUNNER_TEMP/link-wire-spec/conformance/run-isolated.sh" \
| tee conformance-observations.txt
- name: Upload observation log
if: always()
uses: actions/upload-artifact@v4
with:
name: conformance-observations
path: conformance-observations.txt