-
Notifications
You must be signed in to change notification settings - Fork 1
88 lines (70 loc) · 2.57 KB
/
Copy pathci-backend.yml
File metadata and controls
88 lines (70 loc) · 2.57 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 Backend
on:
workflow_dispatch:
pull_request:
paths-ignore:
- "ui/**"
push:
branches:
- main
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
permissions:
contents: read
jobs:
backend:
runs-on: ubuntu-latest
timeout-minutes: 20
env:
RUST_LOG: "off"
# This workspace links ~24 separate integration-test binaries against a
# heavy dependency tree (tokio, hyper, rustls, opentelemetry,
# aws-lc-sys, ...) -- lld is meaningfully faster than the default bfd
# linker for that many large links, with no behavior change. Scoped to
# CI only; local dev toolchains are untouched.
RUSTFLAGS: "-C link-arg=-fuse-ld=lld"
steps:
- name: Checkout repository
uses: actions/checkout@v7
- name: Update Rust toolchain
run: rustup update stable
- name: Install lld linker
run: sudo apt-get update && sudo apt-get install -y lld
- name: Cache Rust dependencies
uses: Swatinem/rust-cache@v2
with:
shared-key: "ci"
- name: Install Rust components
run: rustup component add rustfmt clippy
- name: Cargo fmt check
run: cargo fmt --all -- --check
- name: Install cntryl-tools
run: cargo install --locked --git https://github.com/cntryl/tools --rev 0cb0d0c8be5951753580a6f8a527f3e47d293466 cntryl-tools
- name: Validate repository policy
run: |
cntryl-tools validate-docs --config .cntryl/repository.toml
cntryl-tools validate-benchmarks --config .cntryl/repository.toml
cntryl-tools check-module-sizes --config .cntryl/repository.toml
- name: Cargo check
run: cargo check --locked
- name: Cargo clippy pedantic
run: cargo clippy --locked --workspace --all-targets --all-features -- -D warnings -D clippy::pedantic
- name: Build tests
run: cargo test --no-run --locked --workspace
- name: Run tests
env:
FITZ_TEST_TIMEOUT_MULTIPLIER: "10"
run: cargo test --locked --workspace
- name: Stateful model tests (seed variation 1)
env:
PROPTEST_CASES: "256"
run: cargo test --locked --lib state_model
- name: Stateful model tests (seed variation 2)
env:
PROPTEST_CASES: "256"
run: cargo test --locked --lib state_model
- name: Parallel library tests
env:
FITZ_TEST_TIMEOUT_MULTIPLIER: "10"
run: cargo test --locked --lib -- --test-threads=16