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 ![ui-config-screenshot](screen-grabs/local-ui-proxy.png) ## 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. ![react-tests](screen-grabs/react-tests.png) 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 + + + + + + + +