CI: the tests, and every plan built and linted
The trainer had no CI. Every push now runs the tests and builds every plan under plans/ against the iris release the live sites run, and lints the onboarding site. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Fable 5.1
parent
07da3b40f7
commit
42059da48f
@@ -0,0 +1,44 @@
|
|||||||
|
name: Test
|
||||||
|
|
||||||
|
# Every push: the tests, then every plan under plans/ built and linted
|
||||||
|
# with the iris release the live sites run, and the onboarding site
|
||||||
|
# linted too. A plan that stops building, or a builder change that
|
||||||
|
# renders a site the lint rejects, fails here and nowhere later.
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
test:
|
||||||
|
runs-on: bare
|
||||||
|
env:
|
||||||
|
# The bare runner's shared toolchain and caches (see uhhm/portal).
|
||||||
|
CARGO_HOME: /var/local/cargo
|
||||||
|
RUSTUP_HOME: /var/local/rustup
|
||||||
|
PATH: /var/local/cargo/bin:/usr/local/sbin:/usr/local/bin:/usr/bin
|
||||||
|
SCCACHE_DIR: /var/local/sccache
|
||||||
|
SCCACHE_SERVER_PORT: "4228"
|
||||||
|
CARGO_TARGET_DIR: /var/local/cargo-target
|
||||||
|
# The lint, pinned to the portal release the sites run.
|
||||||
|
IRIS_RELEASE: v0.3.46
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
|
- name: Test
|
||||||
|
run: cargo test --release
|
||||||
|
|
||||||
|
- name: Build and lint every plan
|
||||||
|
run: |
|
||||||
|
set -euo pipefail
|
||||||
|
bin="$CARGO_TARGET_DIR/iris-$IRIS_RELEASE"
|
||||||
|
[ -x "$bin" ] || { curl -sfL "${{ github.server_url }}/uhhm/iris/releases/download/$IRIS_RELEASE/iris" -o "$bin" && chmod +x "$bin"; }
|
||||||
|
cargo build --release
|
||||||
|
for plan in plans/*.yaml; do
|
||||||
|
name=$(basename "$plan" .yaml)
|
||||||
|
echo "== $plan"
|
||||||
|
"$CARGO_TARGET_DIR/release/portal-trainer" build --plan "$plan" --out "/tmp/ci-$name" --lint "$bin"
|
||||||
|
done
|
||||||
|
echo "== portal-portal"
|
||||||
|
"$bin" check --path portal-portal/questions
|
||||||
Reference in New Issue
Block a user