Spike: decouple frontend from default backend build and split CI triggers by surface area - #687
Open
conorheffron with Copilot wants to merge 3 commits into
Open
Spike: decouple frontend from default backend build and split CI triggers by surface area#687conorheffron with Copilot wants to merge 3 commits into
conorheffron with Copilot wants to merge 3 commits into
Conversation
Agent-Logs-Url: https://github.com/conorheffron/ironoc/sessions/511e7536-9bb8-42d7-9fef-a6b40123f032 Co-authored-by: conorheffron <8218626+conorheffron@users.noreply.github.com>
Copilot
AI
changed the title
[WIP] Spike: Move frontend code to separate repository and CI/CD process
Spike: decouple frontend from default backend build and split CI triggers by surface area
May 23, 2026
Contributor
There was a problem hiding this comment.
Pull request overview
This PR spikes a split-friendly build/CI model by making backend Maven packaging backend-only by default, while keeping the legacy “bundled frontend into backend artifact” flow available via an explicit opt-in flag. It also updates GitHub Actions triggers so frontend and backend workflows run only when their respective surfaces change.
Changes:
- Move frontend build + static asset copy Maven plugins behind a
bundle-frontendprofile activated via-DbundleFrontend=true. - Split CI triggers:
maven.ymlignores frontend-only/workflow-only changes;node.js.ymlruns only for frontend/workflow changes. - Update README with new backend-only default build guidance and split-coordination notes.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
| README.md | Documents backend-only default packaging, opt-in bundled mode, and CI split guidance. |
| pom.xml | Moves frontend build/copy plugins into an opt-in Maven profile. |
| .github/workflows/node.js.yml | Restricts Node CI triggers to frontend and relevant workflow file changes. |
| .github/workflows/maven.yml | Prevents Maven CI from running on frontend-only and frontend-workflow-only changes. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
+239
to
242
| ### Build server side (backend only), along with Java Code Coverage report. | ||
| ```shell | ||
| ./mvnw clean package -U | ||
| ``` |
conorheffron
marked this pull request as ready for review
June 7, 2026 06:40
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The repository currently couples UI and server changes in build/deployment flow, increasing unnecessary rebuild scope and slowing isolated delivery. This change spikes a split-friendly model: backend pipelines run independently by default, while frontend packaging remains explicitly opt-in.
Build decoupling (Maven)
frontend-maven-plugin+ static copy step) behind an explicit Maven profile.CI/CD trigger separation
maven.ymlto ignore frontend-only and frontend-workflow-only changes.node.js.ymlto trigger only on frontend/workflow changes.Operational guidance for split-repo transition
Warning
Firewall rules blocked me from connecting to one or more addresses (expand for details)
I tried to connect to the following addresses, but was blocked by firewall rules:
ads.mozilla.org/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette -headless -no-remote -profile /tmp/rust_mozprofile1YV8wj(dns block)/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette --headless --disable-gpu --window-size=1920,1080 -no-remote -profile /tmp/rust_mozprofileOYjyzN(dns block)/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette --headless --disable-gpu --window-size=1920,1080 -no-remote -profile /tmp/rust_mozprofileWG6Q5y(dns block)detectportal.firefox.com/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette --headless --disable-gpu --window-size=1920,1080 -no-remote -profile /tmp/rust_mozprofileOYjyzN(dns block)/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette --headless --disable-gpu --window-size=1920,1080 -no-remote -profile /tmp/rust_mozprofileWG6Q5y(dns block)/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette -headless -no-remote -profile /tmp/rust_mozprofile1YV8wj(dns block)firefox.settings.services.mozilla.com/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette --headless --disable-gpu --window-size=1920,1080 -no-remote -profile /tmp/rust_mozprofileOYjyzN(dns block)/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette --headless --disable-gpu --window-size=1920,1080 -no-remote -profile /tmp/rust_mozprofileWG6Q5y(dns block)/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette -headless -no-remote -profile /tmp/rust_mozprofile1YV8wj(dns block)incoming.telemetry.mozilla.org/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette -headless -no-remote -profile /tmp/rust_mozprofile1YV8wj(dns block)/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette --headless --disable-gpu --window-size=1920,1080 -no-remote -profile /tmp/rust_mozprofileOYjyzN(dns block)/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette --headless --disable-gpu --window-size=1920,1080 -no-remote -profile /tmp/rust_mozprofileWG6Q5y(dns block)ironoc.net/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette -headless -no-remote -profile /tmp/rust_mozprofile1YV8wj(dns block)support.mozilla.org/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette --headless --disable-gpu --window-size=1920,1080 -no-remote -profile /tmp/rust_mozprofileOYjyzN(dns block)/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette --headless --disable-gpu --window-size=1920,1080 -no-remote -profile /tmp/rust_mozprofileWG6Q5y(dns block)www.ironoc.net/usr/lib/firefox/firefox /usr/lib/firefox/firefox --marionette -headless -no-remote -profile /tmp/rust_mozprofile1YV8wj(dns block)If you need me to access, download, or install something from one of these locations, you can either: