[chore](trx-rs): run the frontend job in the SDK image
CI / lint (pull_request) Failing after 4s
CI / test (pull_request) Failing after 2s
CI / frontend (pull_request) Failing after 27s
CI / reuse (pull_request) Successful in 5s

The frontend job was added while CI still targeted host-executor runners,
so it never gained the `container:` key the lint and test jobs use.  On
the Docker executor it lands on a bare job container and fails the same
way the Rust jobs did before this branch: `npm` is missing, the Chromium
install shells out to `sudo apt-get`, and `npm run verify-generated`
regenerates the Rust wire contracts, so it needs `cargo` too.

Run it in the SDK image, which already ships Node.js, Chromium at the
path the browser smoke test defaults to, and the pinned Rust toolchain.
Installing Chromium per run is then redundant.

Drop the job's trailing `reuse lint`.  The SDK image deliberately carries
nothing REUSE-related, and the separate `reuse` job lints the whole
repository with the upstream action, generated assets included.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01GdyUjuXejCEfiub675z6cz
Signed-off-by: Stan Grams <sjg@haxx.space>
This commit is contained in:
sjg
2026-08-02 11:33:02 +02:00
co-authored by Claude Opus 5
parent 8b72573521
commit 22ff1349f3
2 changed files with 17 additions and 12 deletions
+8 -9
View File
@@ -2,10 +2,11 @@
# #
# SPDX-License-Identifier: GPL-2.0-or-later # SPDX-License-Identifier: GPL-2.0-or-later
# CI for the Docker-executor runner (VM). The lint/test jobs run inside the # CI for the Docker-executor runner (VM). The lint, test and frontend jobs run
# shared trx-rs SDK image (container/Containerfile), which bakes in the pinned # inside the shared trx-rs SDK image (container/Containerfile), which bakes in
# Rust toolchain and all build dependencies. The reuse job uses the upstream # the pinned Rust toolchain, Node.js, Chromium and all build dependencies. The
# Docker action, which the Docker executor launches as a sibling container. # reuse job uses the upstream Docker action, which the Docker executor launches
# as a sibling container.
name: CI name: CI
@@ -53,6 +54,7 @@ jobs:
frontend: frontend:
runs-on: ubuntu-latest runs-on: ubuntu-latest
container: git.haxx.space/sjg/trx-rs/sdk:latest
defaults: defaults:
run: run:
working-directory: src/trx-client/trx-frontend/trx-frontend-http/frontend working-directory: src/trx-client/trx-frontend/trx-frontend-http/frontend
@@ -73,15 +75,12 @@ jobs:
run: npm run lint run: npm run lint
- name: Test - name: Test
run: npm test run: npm test
- name: Install browser smoke dependency # Chromium comes from the SDK image at the path the smoke test defaults
run: command -v chromium >/dev/null || (sudo apt-get update && sudo apt-get install -y --no-install-recommends chromium) # to, so there is nothing to install here.
- name: Browser smoke test - name: Browser smoke test
run: npm run test:browser run: npm run test:browser
- name: Verify generated assets - name: Verify generated assets
run: npm run verify-generated run: npm run verify-generated
- name: Verify generated-file licensing
working-directory: .
run: reuse lint
reuse: reuse:
runs-on: ubuntu-latest runs-on: ubuntu-latest
+9 -3
View File
@@ -48,11 +48,17 @@ Building outside the container? `rust-toolchain.toml` pins the same rustc, so
## CI use ## CI use
`.gitea/workflows/ci.yml` runs the `lint` and `test` jobs *inside* this image `.gitea/workflows/ci.yml` runs the `lint`, `test` and `frontend` jobs *inside*
via the `container:` key, so they skip all setup and go straight to `cargo`. this image via the `container:` key, so they skip all setup and go straight to
`cargo` and `npm`. The frontend job needs three things from the image beyond
Rust: Node.js for the toolchain, Chromium at `/usr/bin/chromium` for the
browser smoke test, and `cargo``npm run verify-generated` regenerates the
Rust wire contracts before checking for drift.
The `reuse` job stays on the upstream `fsfe/reuse-action` (a Docker action the The `reuse` job stays on the upstream `fsfe/reuse-action` (a Docker action the
Docker executor launches as a sibling container) — nothing REUSE-related is Docker executor launches as a sibling container) — nothing REUSE-related is
baked into the SDK. baked into the SDK, and it lints the whole repository, so no job runs its own
licence check.
## Compilation cache (sccache) ## Compilation cache (sccache)