Skip to content

Build the frontend bundle in CI as its own job - #242

Merged
Bensge merged 1 commit into
masterfrom
ci/frontend-bundle-job
Sep 13, 2026
Merged

Bensge merged 1 commit into
masterfrom
ci/frontend-bundle-job

Conversation

@Bensge

@Bensge Bensge commented Sep 13, 2026

Copy link
Copy Markdown
Collaborator

Summary

Nothing on a pull request currently runs npm run package — the bundle is only built inside the Docker image on master. That's how the frontend Dependabot PRs (#233, #235, #239) showed as green without CI having touched a single line of JS; a rollup failure would only surface at deploy time.

  • kotlin-ci.yml → ci.yml, workflow name "Kotlin CI" → "CI".
  • New frontend job ("Frontend bundle"): setup-node 24 (same major as the Dockerfile's node:24-bookworm stage) with npm cache, npm ci, npm run package in frontend/.
  • It's a sibling of the Kotlin job, not a step before it: :spybot-web:test doesn't need frontend/output (only bootJar does, via verifyFrontendAssets), so the two run in parallel and fail independently. A comment in the workflow says how to chain them via an artifact if a future job needs the real bundle.
  • The Kotlin job keeps its Build & test display name so the required-check rule on master keeps matching.

After merging

Add Frontend bundle to the required status checks on master (Settings → Branches → master), next to Build & test and CHANGELOG.md has an entry.

Test plan

  • Both jobs run on this PR and pass
  • Frontend bundle finishes well before Build & test (should be ~30 s)

🤖 Generated with Claude Code

Until now nothing on a pull request ran `npm run package`: the bundle
was only ever built inside the Docker image on master, so a frontend
dependency bump could be green on the PR and still break the deploy.

The new job is a sibling of the Kotlin job rather than a step in front
of it, because the Kotlin tests don't need frontend/output (only bootJar
does) and running them in parallel keeps the Kotlin feedback as fast as
before. The workflow file becomes ci.yml and is called "CI" now that it
covers more than Kotlin; the Kotlin job keeps its "Build & test" name so
the required-check rule on master doesn't need editing.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@Bensge
Bensge force-pushed the ci/frontend-bundle-job branch from c3170c3 to c5e9f47 Compare September 13, 2026 07:48
@github-actions

Copy link
Copy Markdown

Kotlin Test Results

123 tests   123 ✅  31s ⏱️
 26 suites    0 💤
 26 files      0 ❌

Results for commit c5e9f47.

@Bensge
Bensge merged commit e7b19d8 into master Sep 13, 2026
8 checks passed
@Bensge
Bensge deleted the ci/frontend-bundle-job branch September 13, 2026 08:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant