Repository navigation
86 lines (74 loc) · 3.1 KB
/
Copy pathbuild-validation.yml
File metadata and controls
86 lines (74 loc) · 3.1 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
# This workflow is managed by gh actions-lock.
# SPDX-License-Identifier: MPL-2.0
name: Build Validation
on:
push:
branches: [main, master]
pull_request:
branches: [main, master]
permissions:
actions: read
contents: read
jobs:
# The ReScript build, the Deno test gate and the pcc panel-wiring gate were
# removed (owner decision; #137, #148). #107 deleted the ReScript frontend
# they built and tested, #108 deleted deno.json, and pcc scans .res files,
# so none of them could pass or fail on anything real. They come back
# against the AffineScript frontend under #148.
validate:
runs-on: ubuntu-latest
timeout-minutes: 20
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@v7.0.1
- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: stable
# Default features build the GTK/WebKit-free library only; the desktop
# shell (`--features gossamer`) is built by E2E's Rust job.
- name: Rust cargo check gate
run: cargo check --locked
- name: Rust test gate
run: cargo test --locked --lib -- --test-threads=1
- name: Build Panel Contract Compiler
run: cargo build --locked --release --manifest-path tools/pcc/Cargo.toml
# panel-clades ABI: every PanelClades.ABI module typechecks against
# typed-wasm's grade kernel at its pin, and the expected rejections are
# refused. Idris2 publishes no binaries, so 0.8.0 is built from source,
# fetched by the commit its v0.8.0 tag names (a tag can move; the SHA
# cannot).
panel-clades-abi:
runs-on: ubuntu-latest
timeout-minutes: 40
permissions:
contents: read
env:
IDRIS2_COMMIT: 15a3e4e70843f7a34100f6470c04b791330788df # v0.8.0
steps:
- name: Checkout
uses: actions/checkout@v7.0.1
with:
persist-credentials: false
- name: Install Chez Scheme and GMP
run: |
sudo apt-get update -qq
sudo apt-get install -y -qq chezscheme libgmp-dev
- name: Build Idris2 0.8.0 from source
run: |
git init --quiet "$RUNNER_TEMP/idris2-src"
git -C "$RUNNER_TEMP/idris2-src" fetch --quiet --depth 1 https://github.com/idris-lang/Idris2 "$IDRIS2_COMMIT"
git -C "$RUNNER_TEMP/idris2-src" checkout --quiet --detach FETCH_HEAD
test "$(git -C "$RUNNER_TEMP/idris2-src" rev-parse HEAD)" = "$IDRIS2_COMMIT"
# Local tag on the verified commit, so the Makefile reports the
# release version (0.8.0) rather than 0.8.0-<sha>.
git -C "$RUNNER_TEMP/idris2-src" tag v0.8.0
make -C "$RUNNER_TEMP/idris2-src" bootstrap SCHEME=scheme -j"$(nproc)" > "$RUNNER_TEMP/idris2-build.log" 2>&1 \
|| { tail -60 "$RUNNER_TEMP/idris2-build.log"; exit 1; }
make -C "$RUNNER_TEMP/idris2-src" install > "$RUNNER_TEMP/idris2-install.log" 2>&1 \
|| { tail -60 "$RUNNER_TEMP/idris2-install.log"; exit 1; }
echo "$HOME/.idris2/bin" >> "$GITHUB_PATH"
- name: panel-clades ABI
run: bash panel-clades/scripts/check-abi.sh