-
Notifications
You must be signed in to change notification settings - Fork 0
88 lines (69 loc) · 2.5 KB
/
Copy pathci.yml
File metadata and controls
88 lines (69 loc) · 2.5 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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
name: CI
on:
pull_request:
push:
branches:
- main
jobs:
rust:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Format
run: cargo fmt --check
- name: Test
run: cargo test -q
- name: Clippy
run: cargo clippy --workspace --all-targets -- -D warnings
- name: Demo job smoke test
run: |
mkdir -p demos
cargo run -p rs_cam_cli -- job fixtures/demo_job.toml
viz-regression:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Viz Harness
run: cargo test -p rs_cam_viz controller::tests::
- name: Compute Lanes
run: cargo test -p rs_cam_viz compute::worker::tests::
gcode-emulator-gate:
# Phase 4a: pipe each shipped g-code dialect through an open-source
# controller emulator's parser. Any non-zero validator exit blocks
# merge. See planning/post_reference_notes.md "Validator install"
# for build details.
#
# Currently gates `gvalidate` only. `rs274ngc` (LinuxCNC parser) is
# not yet in the CI image — those tests skip in CI until Phase 4b
# adds the build step (LinuxCNC has no Ubuntu noble apt package).
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
- uses: Swatinem/rust-cache@v2
- name: Cache validator binaries
uses: actions/cache@v4
with:
path: reference/validators
key: validators-v1-${{ runner.os }}
- name: Build gvalidate (grbl-sim)
run: |
if [ ! -x reference/validators/grbl/grbl/sim/gvalidate.exe ]; then
mkdir -p reference/validators
cd reference/validators
git clone --depth 1 https://github.com/grbl/grbl-sim.git grbl
cd grbl/grbl/sim
make gvalidate
fi
- name: Run emulator-validation gate (gvalidate-only)
env:
CI_REQUIRE_VALIDATORS: gvalidate
# --test-threads=1: rs274ngc has process-wide state that
# corrupts under parallel exec; gvalidate is safe in parallel
# but we standardise on serial execution so adding rs274ngc
# later doesn't require workflow churn.
run: cargo test -p rs_cam_core --test gcode_emulator_validation -- --ignored --test-threads=1 --nocapture