-
Notifications
You must be signed in to change notification settings - Fork 0
143 lines (115 loc) · 4.03 KB
/
Copy pathci.yml
File metadata and controls
143 lines (115 loc) · 4.03 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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
name: ci
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: build
run: cargo build --release
- name: check rust crash guards
run: make check-no-panics
- name: rust unit tests
run: cargo test --release --workspace --locked
- name: test
run: |
./target/release/pith run tests/cases/test_suite.pith
./target/release/pith run tests/cases/test_process_command.pith
./target/release/pith run tests/cases/test_http_request_bytes.pith
- name: run examples (native smoke)
run: |
./target/release/pith run examples/hello.pith >/dev/null
./target/release/pith run examples/collection_methods.pith >/dev/null
./target/release/pith run examples/string_collection_methods.pith >/dev/null
./target/release/pith run examples/stdlib_algo.pith >/dev/null
- name: green-thread runtime tests
run: make green-tests
- name: regression corpus under green
run: make verify-green-corpus-only
# the runner is linux, so every other step above already runs green by
# default. this is the only step that exercises the PITH_GREEN=0 opt-out
# across the corpus.
- name: regression corpus under os threads
run: make verify-osthread-corpus-only
# the memcheck step below runs with valgrind's leak check off, because
# the runtime's freelists and pools are still reachable at exit and
# would bury a real signal. this covers leaks instead, by measuring
# growth across two round counts.
- name: leak growth
run: make leak-check-only
- name: build self-hosted compiler
run: make self-host
- name: run examples (self-hosted)
run: make run-examples-self
- name: native parity examples
run: make parity-examples-only
- name: sitegen golden check
run: make sitegen-check
- name: logscan golden check
run: make logscan-check
- name: apic golden check
run: make apic-check
- name: parq golden check
run: make parq-check
- name: protogen golden check
run: make protogen-check
- name: docsite golden check
run: make docsite-check
- name: gzip interop check
run: make gzip-interop-check
- name: fuzz check
run: make fuzz-check
- name: memcheck
run: |
sudo apt-get update -qq && sudo apt-get install -y -qq valgrind || true
make memcheck
- name: verify bootstrap fixed point
run: make bootstrap-verify
- name: lint examples
run: |
for f in examples/*.pith; do
./self-host/pith_main lint "$f"
if [ $? -ne 0 ]; then
echo "FAIL lint $f"
exit 1
fi
done
- name: lint self-host
run: |
for f in self-host/*.pith; do
./self-host/pith_main lint "$f"
if [ $? -ne 0 ]; then
echo "FAIL lint $f"
exit 1
fi
done
- name: check examples (self-hosted)
run: |
for f in examples/*.pith; do
result=$(./self-host/pith_main check "$f" 2>&1)
if [ "$result" != "ok" ]; then
echo "FAIL $f (self-hosted check)"
echo "$result"
exit 1
fi
echo "ok $f"
done
- name: check pith formatting
run: |
for f in self-host/*.pith; do
./self-host/pith_main fmt --check "$f"
if [ $? -ne 0 ]; then
echo "FAIL $f not formatted"
exit 1
fi
done
- name: check doc coverage
run: |
for f in std/*.pith std/**/*.pith; do
[ -f "$f" ] || continue
./self-host/pith_main doc --check "$f"
if [ $? -ne 0 ]; then
echo "FAIL $f missing doc comments"
exit 1
fi
done