Skip to content

Commit b52539a

Browse files
authored
Invoke runway in CI, various CI improvments (#36)
* claude made a gha reporter let's try it * remove rewriter build cache, use rust incremental cache instead * delete old playwright tests * [scramjet/runway] fix google apps test
1 parent 705e358 commit b52539a

File tree

13 files changed

+117
-323
lines changed

13 files changed

+117
-323
lines changed

.github/workflows/main.yml

Lines changed: 15 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@ on:
1818
paths-ignore: *ci_ignore_paths
1919
workflow_dispatch:
2020

21+
env:
22+
WASM_BINDGEN_VERSION: "0.2.105"
23+
2124
concurrency:
2225
group: ${{ github.workflow }}-${{ github.ref }}
2326
cancel-in-progress: true
@@ -74,39 +77,12 @@ jobs:
7477
- name: Install pnpm dependencies
7578
run: pnpm install
7679

77-
- name: Cache rewriter build artifacts
78-
uses: actions/cache@v4
79-
id: rewriter-cache
80-
with:
81-
path: |
82-
packages/scramjet/packages/core/rewriter/wasm/out
83-
packages/scramjet/packages/core/dist/scramjet.wasm
84-
key: rewriter-release-${{ hashFiles('packages/scramjet/packages/core/rewriter/**/Cargo.toml', 'packages/scramjet/packages/core/rewriter/**/*.rs', 'packages/scramjet/packages/core/rewriter/**/src/**/*.toml', 'packages/scramjet/packages/core/rewriter/**/src/**/*.json', 'packages/scramjet/packages/core/rewriter/**/src/**/*.md', 'packages/scramjet/packages/core/rewriter/**/*.sh') }}
85-
restore-keys: |
86-
rewriter-release-
87-
88-
- name: Cache Rust dependencies
89-
if: steps.rewriter-cache.outputs.cache-hit != 'true'
90-
uses: Swatinem/rust-cache@v2
80+
- name: Setup Rewriter Toolchain
81+
uses: ./packages/scramjet/.github/actions/setup-rewriter-toolchain
9182
with:
92-
workspaces: "rewriter"
93-
cache-all-crates: true
94-
95-
- name: Install wbg
96-
if: steps.rewriter-cache.outputs.cache-hit != 'true'
97-
uses: jetli/[email protected]
98-
with:
99-
version: "0.2.105"
100-
101-
- name: Setup Binaryen
102-
if: steps.rewriter-cache.outputs.cache-hit != 'true'
103-
uses: Aandreba/[email protected]
104-
with:
105-
token: ${{ github.token }}
106-
107-
- name: Setup wasm-snip
108-
if: steps.rewriter-cache.outputs.cache-hit != 'true'
109-
run: "cargo install --git https://github.com/r58playz/wasm-snip"
83+
wasm-bindgen-version: ${{ env.WASM_BINDGEN_VERSION }}
84+
rewriter-path: packages/scramjet/packages/core/rewriter
85+
github-token: ${{ github.token }}
11086

11187
- name: Pack Scramjet
11288
run: pnpm pack
@@ -197,15 +173,6 @@ jobs:
197173
name: scramjet
198174
path: packages/scramjet/packages/core/dist
199175

200-
- name: Get cached rewriter build
201-
uses: actions/cache/restore@v4
202-
id: rewriter-cache
203-
with:
204-
path: |
205-
packages/scramjet/packages/core/rewriter/wasm/out
206-
packages/scramjet/packages/core/dist/scramjet.wasm
207-
key: rewriter-release-${{ hashFiles('packages/scramjet/packages/core/rewriter/**/Cargo.toml', 'packages/scramjet/packages/core/rewriter/**/*.rs', 'packages/scramjet/packages/core/rewriter/**/src/**/*.toml', 'packages/scramjet/packages/core/rewriter/**/src/**/*.json', 'packages/scramjet/packages/core/rewriter/**/src/**/*.md', 'packages/scramjet/packages/core/rewriter/**/*.sh') }}
208-
209176
- name: Get artifacts (scramjet/controller)
210177
uses: actions/download-artifact@v4
211178
with:
@@ -224,19 +191,11 @@ jobs:
224191
- name: Install Playwright Chromium
225192
if: steps.pw-browsers-cache.outputs.cache-hit != 'true'
226193
run: npx playwright install --with-deps chromium
227-
working-directory: packages/scramjet/packages/core
194+
working-directory: packages/scramjet/packages/runway
228195

229-
- name: Run Playwright tests
230-
run: pnpm test:integration
231-
working-directory: packages/scramjet/packages/core
232-
233-
- name: Upload artifacts
234-
uses: actions/upload-artifact@v4
235-
if: always()
236-
with:
237-
name: playwright-test-results
238-
path: packages/scramjet/packages/core/blob-report/*
239-
if-no-files-found: error
196+
- name: Run Runway tests
197+
run: pnpm test
198+
working-directory: packages/scramjet/packages/runway
240199

241200
rewritertests:
242201
name: Run Rewriter Tests
@@ -249,22 +208,12 @@ jobs:
249208
with:
250209
submodules: recursive
251210

252-
- name: Cache rewriter build artifacts
253-
uses: actions/cache@v4
254-
id: rewriter-cache
255-
with:
256-
path: |
257-
packages/scramjet/packages/core/rewriter/wasm/out
258-
packages/scramjet/packages/core/dist/scramjet.wasm
259-
key: rewriter-release-${{ hashFiles('packages/scramjet/packages/core/rewriter/**/Cargo.toml', 'packages/scramjet/packages/core/rewriter/**/*.rs', 'packages/scramjet/packages/core/rewriter/**/src/**/*.toml', 'packages/scramjet/packages/core/rewriter/**/src/**/*.json', 'packages/scramjet/packages/core/rewriter/**/src/**/*.md', 'packages/scramjet/packages/core/rewriter/**/*.sh') }}
260-
restore-keys: |
261-
rewriter-release-
262-
263-
- name: Cache Rust dependencies
211+
- name: Cache Rust compilation
264212
uses: Swatinem/rust-cache@v2
265213
with:
266-
workspaces: "rewriter"
214+
workspaces: "packages/scramjet/packages/core/rewriter -> target"
267215
cache-all-crates: true
216+
shared-key: "rewriter"
268217

269218
- name: Run Tests
270219
run: cargo test
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: "Setup Rust Rewriter Toolchain"
2+
description: "Setup Rust toolchain with wasm-bindgen, binaryen, and wasm-snip for building the scramjet rewriter"
3+
4+
inputs:
5+
wasm-bindgen-version:
6+
description: "Version of wasm-bindgen-cli to install"
7+
required: false
8+
default: "0.2.105"
9+
rewriter-path:
10+
description: "Path to the rewriter directory for Rust cache"
11+
required: true
12+
github-token:
13+
description: "GitHub token for Binaryen setup"
14+
required: true
15+
16+
runs:
17+
using: "composite"
18+
steps:
19+
- name: Cache Rust compilation
20+
uses: Swatinem/rust-cache@v2
21+
with:
22+
workspaces: "${{ inputs.rewriter-path }} -> target"
23+
cache-all-crates: true
24+
shared-key: "rewriter"
25+
26+
- name: Cache cargo bin tools
27+
uses: actions/cache@v4
28+
with:
29+
path: ~/.cargo/bin
30+
key: cargo-bin-${{ runner.os }}-wbg${{ inputs.wasm-bindgen-version }}-wasm-snip
31+
restore-keys: |
32+
cargo-bin-${{ runner.os }}-
33+
34+
- name: Install wasm-bindgen-cli
35+
shell: bash
36+
run: |
37+
if ! command -v wasm-bindgen &> /dev/null || ! [[ "$(wasm-bindgen -V)" =~ ^"wasm-bindgen ${{ inputs.wasm-bindgen-version }}" ]]; then
38+
cargo install wasm-bindgen-cli --version ${{ inputs.wasm-bindgen-version }}
39+
fi
40+
41+
- name: Setup Binaryen
42+
uses: Aandreba/[email protected]
43+
with:
44+
token: ${{ inputs.github-token }}
45+
46+
- name: Setup wasm-snip
47+
shell: bash
48+
run: |
49+
if ! command -v wasm-snip &> /dev/null; then
50+
cargo install --git https://github.com/r58playz/wasm-snip
51+
fi

packages/scramjet/.github/workflows/main.yml

Lines changed: 15 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ on:
2121
paths-ignore: *ci_ignore_paths
2222
workflow_dispatch:
2323

24+
env:
25+
WASM_BINDGEN_VERSION: "0.2.105"
26+
2427
concurrency:
2528
group: ${{ github.workflow }}-${{ github.ref }}
2629
cancel-in-progress: true
@@ -75,39 +78,12 @@ jobs:
7578
- name: Install pnpm dependencies
7679
run: pnpm install
7780

78-
- name: Cache rewriter build artifacts
79-
uses: actions/cache@v4
80-
id: rewriter-cache
81-
with:
82-
path: |
83-
packages/core/rewriter/wasm/out
84-
packages/core/dist/scramjet.wasm
85-
key: rewriter-release-${{ hashFiles('packages/core/rewriter/**/Cargo.toml', 'packages/core/rewriter/**/*.rs', 'packages/core/rewriter/**/src/**/*.toml', 'packages/core/rewriter/**/src/**/*.json', 'packages/core/rewriter/**/src/**/*.md', 'packages/core/rewriter/**/*.sh') }}
86-
restore-keys: |
87-
rewriter-release-
88-
89-
- name: Cache Rust dependencies
90-
if: steps.rewriter-cache.outputs.cache-hit != 'true'
91-
uses: Swatinem/rust-cache@v2
81+
- name: Setup Rewriter Toolchain
82+
uses: ./.github/actions/setup-rewriter-toolchain
9283
with:
93-
workspaces: "rewriter"
94-
cache-all-crates: true
95-
96-
- name: Install wbg
97-
if: steps.rewriter-cache.outputs.cache-hit != 'true'
98-
uses: jetli/[email protected]
99-
with:
100-
version: "0.2.105"
101-
102-
- name: Setup Binaryen
103-
if: steps.rewriter-cache.outputs.cache-hit != 'true'
104-
uses: Aandreba/[email protected]
105-
with:
106-
token: ${{ github.token }}
107-
108-
- name: Setup wasm-snip
109-
if: steps.rewriter-cache.outputs.cache-hit != 'true'
110-
run: "cargo install --git https://github.com/r58playz/wasm-snip"
84+
wasm-bindgen-version: ${{ env.WASM_BINDGEN_VERSION }}
85+
rewriter-path: packages/core/rewriter
86+
github-token: ${{ github.token }}
11187

11288
- name: Pack Scramjet
11389
run: pnpm pack
@@ -200,15 +176,6 @@ jobs:
200176
name: scramjet
201177
path: packages/core/dist
202178

203-
- name: Get cached rewriter build
204-
uses: actions/cache/restore@v4
205-
id: rewriter-cache
206-
with:
207-
path: |
208-
packages/core/rewriter/wasm/out
209-
packages/core/dist/scramjet.wasm
210-
key: rewriter-release-${{ hashFiles('packages/core/rewriter/**/Cargo.toml', 'packages/core/rewriter/**/*.rs', 'packages/core/rewriter/**/src/**/*.toml', 'packages/core/rewriter/**/src/**/*.json', 'packages/core/rewriter/**/src/**/*.md', 'packages/core/rewriter/**/*.sh') }}
211-
212179
- name: Get artifacts (scramjet/controller)
213180
uses: actions/download-artifact@v4
214181
with:
@@ -227,19 +194,11 @@ jobs:
227194
- name: Install Playwright Chromium
228195
if: steps.pw-browsers-cache.outputs.cache-hit != 'true'
229196
run: npx playwright install --with-deps chromium
230-
working-directory: packages/core
197+
working-directory: packages/runway
231198

232-
- name: Run Playwright tests
233-
run: pnpm test:integration
234-
working-directory: packages/core
235-
236-
- name: Upload artifacts
237-
uses: actions/upload-artifact@v4
238-
if: always()
239-
with:
240-
name: playwright-test-results
241-
path: packages/core/blob-report/*
242-
if-no-files-found: error
199+
- name: Run Runway tests
200+
run: pnpm test
201+
working-directory: packages/runway
243202

244203
rewritertests:
245204
name: "Run Rewriter Tests"
@@ -252,22 +211,12 @@ jobs:
252211
with:
253212
submodules: recursive
254213

255-
- name: Cache rewriter build artifacts
256-
uses: actions/cache@v4
257-
id: rewriter-cache
258-
with:
259-
path: |
260-
packages/core/rewriter/wasm/out
261-
packages/core/dist/scramjet.wasm
262-
key: rewriter-release-${{ hashFiles('packages/core/rewriter/wasm/Cargo.toml', 'packages/core/rewriter/wasm/src/**/*.rs', 'packages/core/rewriter/wasm/build.sh') }}
263-
restore-keys: |
264-
rewriter-release-
265-
266-
- name: Cache Rust dependencies
214+
- name: Cache Rust compilation
267215
uses: Swatinem/rust-cache@v2
268216
with:
269-
workspaces: "rewriter"
217+
workspaces: "packages/core/rewriter -> target"
270218
cache-all-crates: true
219+
shared-key: "rewriter"
271220

272221
- name: Run Tests
273222
run: cd packages/core/rewriter/native && cargo test

packages/scramjet/packages/core/package.json

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,8 @@
2121
"lint:fix": "eslint ./src/ --fix",
2222
"lint:workflows": "actionlint .github/workflows/*.yml",
2323
"lint:all": "npm run lint && npm run lint:workflows",
24-
"test": "npm run test:package && npm run test:integration",
24+
"test": "npm run test:package",
2525
"test:package": "ava tests/ci/packageValidation.js",
26-
"test:integration": "npx playwright test",
2726
"preinstall": "npx only-allow pnpm"
2827
},
2928
"exports": {
@@ -60,7 +59,6 @@
6059
"@fastify/static": "^8.2.0",
6160
"@mercuryworkshop/wisp-js": "^0.4.0",
6261
"@nebula-services/bare-server-node": "^2.0.4",
63-
"@playwright/test": "^1.55.0",
6462
"@types/eslint": "^9.6.1",
6563
"@types/estree": "^1.0.8",
6664
"@types/node": "^24.3.1",
@@ -73,7 +71,6 @@
7371
"eslint": "^9.35.0",
7472
"fastify": "^5.6.0",
7573
"glob": "^11.0.3",
76-
"playwright": "^1.55.0",
7774
"prettier": "^3.6.2",
7875
"remark": "^15.0.1",
7976
"remark-cli": "^12.0.1",

packages/scramjet/packages/core/playwright.config.ts

Lines changed: 0 additions & 54 deletions
This file was deleted.

0 commit comments

Comments
 (0)