-
Notifications
You must be signed in to change notification settings - Fork 12
161 lines (129 loc) · 5.18 KB
/
Copy pathtest.yml
File metadata and controls
161 lines (129 loc) · 5.18 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
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
name: "Run Tests"
permissions:
contents: read
on:
push:
branches: [main]
pull_request:
branches: [main, "feature/**"]
jobs:
test-rust:
name: cargo test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Retrieve Rust version
id: rust-version
run: echo "rust-version=$(grep '^rust ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT
shell: bash
- name: Retrieve Viceroy version
id: viceroy-version
# `.tool-versions` is the single source of truth so this workflow and
# `.github/actions/setup-integration-test-env/action.yml` can't drift.
# The pin matters because upstream Viceroy > v0.16.4 has bumped MSRV
# beyond the rustc pin in `rust-toolchain.toml`.
run: echo "viceroy-version=$(grep '^viceroy ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT
shell: bash
- name: Set up Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ steps.rust-version.outputs.rust-version }}
target: wasm32-wasip1
cache-shared-key: cargo-${{ runner.os }}
- name: Cache Viceroy binary
id: cache-viceroy
uses: actions/cache@v4
with:
path: ~/.cargo/bin/viceroy
key: viceroy-${{ runner.os }}-v${{ steps.viceroy-version.outputs.viceroy-version }}
- name: Install Viceroy
if: steps.cache-viceroy.outputs.cache-hit != 'true'
run: cargo install --git https://github.com/fastly/Viceroy --tag v${{ steps.viceroy-version.outputs.viceroy-version }} viceroy
- name: Run tests
run: cargo test-fastly
test-axum:
name: cargo test (axum native)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Retrieve Rust version
id: rust-version
run: echo "rust-version=$(grep '^rust ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT
shell: bash
- name: Set up Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ steps.rust-version.outputs.rust-version }}
cache-shared-key: cargo-${{ runner.os }}
- name: Build Axum adapter
run: cargo build -p trusted-server-adapter-axum
- name: Run Axum adapter tests
run: cargo test-axum
- name: Run HTML processor benchmarks (smoke)
# -- --test runs each benchmark as a regular test (no timing harness) so CI stays fast
run: cargo bench -p trusted-server-core --bench html_processor_bench -- --test
test-cloudflare:
name: cargo check (cloudflare native + wasm32-unknown-unknown)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Retrieve Rust version
id: rust-version
run: echo "rust-version=$(grep '^rust ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT
shell: bash
- name: Set up Rust toolchain (native + wasm32-unknown-unknown)
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ steps.rust-version.outputs.rust-version }}
target: wasm32-unknown-unknown
cache-shared-key: cargo-${{ runner.os }}
- name: Check Cloudflare adapter (native host)
run: cargo check -p trusted-server-adapter-cloudflare
- name: Check Cloudflare adapter (wasm32-unknown-unknown)
run: cargo check -p trusted-server-adapter-cloudflare --target wasm32-unknown-unknown --features cloudflare
- name: Run Cloudflare adapter tests (native host)
run: cargo test-cloudflare
test-parity:
name: cargo test (cross-adapter parity)
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Retrieve Rust version
id: rust-version
run: echo "rust-version=$(grep '^rust ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT
shell: bash
- name: Set up Rust toolchain
uses: actions-rust-lang/setup-rust-toolchain@v1
with:
toolchain: ${{ steps.rust-version.outputs.rust-version }}
components: clippy
cache-shared-key: cargo-${{ runner.os }}
- name: Run cross-adapter parity tests
run: cargo test --manifest-path crates/integration-tests/Cargo.toml --test parity
- name: Clippy (parity test crate)
run: cargo clippy --manifest-path crates/integration-tests/Cargo.toml --all-targets -- -D warnings
test-typescript:
name: vitest
runs-on: ubuntu-latest
defaults:
run:
working-directory: crates/js/lib
steps:
- uses: actions/checkout@v4
- name: Retrieve Node.js version
id: node-version
working-directory: .
run: echo "node-version=$(grep '^nodejs ' .tool-versions | awk '{print $2}')" >> $GITHUB_OUTPUT
shell: bash
- name: Use Node.js
uses: actions/setup-node@v4
with:
node-version: ${{ steps.node-version.outputs.node-version }}
cache: "npm"
cache-dependency-path: crates/js/lib/package.json
- name: Install dependencies
run: npm ci
- name: Build bundle
run: npm run build
- name: Run unit tests
run: npm test -- --run