From d9339460263fadff9e290a07db7fc23a961fd47f Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 23 May 2026 18:38:13 +0000
Subject: [PATCH 1/2] Initial plan
From 067ab5f45eaf5f4d5b6d21562a2398af9ad5004d Mon Sep 17 00:00:00 2001
From: "copilot-swe-agent[bot]" <198982749+Copilot@users.noreply.github.com>
Date: Sat, 23 May 2026 19:26:37 +0000
Subject: [PATCH 2/2] decouple frontend bundling from default backend build
Agent-Logs-Url: https://github.com/conorheffron/ironoc/sessions/511e7536-9bb8-42d7-9fef-a6b40123f032
Co-authored-by: conorheffron <8218626+conorheffron@users.noreply.github.com>
---
.github/workflows/maven.yml | 8 ++
.github/workflows/node.js.yml | 8 ++
README.md | 13 +++-
pom.xml | 138 +++++++++++++++++++---------------
4 files changed, 105 insertions(+), 62 deletions(-)
diff --git a/.github/workflows/maven.yml b/.github/workflows/maven.yml
index 69982c83..cab56ffe 100644
--- a/.github/workflows/maven.yml
+++ b/.github/workflows/maven.yml
@@ -14,8 +14,16 @@ permissions:
on:
push:
branches: [ "main" ]
+ paths-ignore:
+ - "frontend/**"
+ - ".github/workflows/node.js.yml"
+ - ".github/workflows/npm-publish-packages.yml"
pull_request:
branches: [ "main" ]
+ paths-ignore:
+ - "frontend/**"
+ - ".github/workflows/node.js.yml"
+ - ".github/workflows/npm-publish-packages.yml"
jobs:
build:
diff --git a/.github/workflows/node.js.yml b/.github/workflows/node.js.yml
index fde37e2a..1fe6c5ef 100644
--- a/.github/workflows/node.js.yml
+++ b/.github/workflows/node.js.yml
@@ -9,8 +9,16 @@ permissions:
on:
push:
branches: [ "main" ]
+ paths:
+ - "frontend/**"
+ - ".github/workflows/node.js.yml"
+ - ".github/workflows/npm-publish-packages.yml"
pull_request:
branches: [ "main" ]
+ paths:
+ - "frontend/**"
+ - ".github/workflows/node.js.yml"
+ - ".github/workflows/npm-publish-packages.yml"
jobs:
build:
diff --git a/README.md b/README.md
index 9ad72b5a..8c98082c 100644
--- a/README.md
+++ b/README.md
@@ -236,11 +236,16 @@ aws sts get-session-token

## Run after project checkout (JDK 25 & Maven 4 required)
-### Build frontend & server side, along with Java Code Coverage report.
+### Build server side (backend only), along with Java Code Coverage report.
```shell
./mvnw clean package -U
```
+### Optional: bundle frontend into backend artifact (legacy single-repo flow)
+```shell
+./mvnw clean package -U -DbundleFrontend=true
+```
+
#### View Java Code Coverage reports in Browser or Preview tab in IDE.
##### Path to reports is `target/site/jacoco/index.html`
@@ -264,6 +269,12 @@ npm run test
npm run test:coverage
```
+
+## Frontend/backend split (spike output)
+- Backend CI (`maven.yml`) now ignores frontend-only changes.
+- Frontend CI (`node.js.yml`) now runs only for frontend/workflow changes.
+- Backend Maven builds are backend-only by default; frontend bundling is opt-in via `-DbundleFrontend=true`.
+- Recommended deployment coordination: publish backend and frontend with the same semantic version and promote both only after compatibility checks.
##### See the output below to verify the frontend test suite results.

diff --git a/pom.xml b/pom.xml
index a155f47d..52461717 100644
--- a/pom.xml
+++ b/pom.xml
@@ -449,67 +449,6 @@
-
- org.apache.maven.plugins
- maven-resources-plugin
- 3.5.0
-
-
- copy-resources
- process-classes
-
- copy-resources
-
-
- ${basedir}/target/classes/static
-
-
- ${basedir}/frontend/build
-
-
-
-
-
-
-
- com.github.eirslett
- frontend-maven-plugin
- ${frontend-maven-plugin.version}
-
- frontend
- target
-
-
-
- install node and npm
-
- install-node-and-npm
-
-
- ${node.version}
- ${npm.version}
-
-
-
- npm install
-
- npm
-
-
- install
-
-
-
- npm run build
-
- npm
-
-
- run build
-
-
-
-
org.jacoco
jacoco-maven-plugin
@@ -536,4 +475,81 @@
+
+
+
+ bundle-frontend
+
+
+ bundleFrontend
+ true
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+ 3.5.0
+
+
+ copy-resources
+ process-classes
+
+ copy-resources
+
+
+ ${basedir}/target/classes/static
+
+
+ ${basedir}/frontend/build
+
+
+
+
+
+
+
+ com.github.eirslett
+ frontend-maven-plugin
+ ${frontend-maven-plugin.version}
+
+ frontend
+ target
+
+
+
+ install node and npm
+
+ install-node-and-npm
+
+
+ ${node.version}
+ ${npm.version}
+
+
+
+ npm install
+
+ npm
+
+
+ install
+
+
+
+ npm run build
+
+ npm
+
+
+ run build
+
+
+
+
+
+
+
+