From 9dbd491ece790b5dafd3210cc94bd9694b77eafc Mon Sep 17 00:00:00 2001 From: Angel Eduardo Hincho Jove <82984150+ahincho@users.noreply.github.com> Date: Sun, 12 Jul 2026 13:09:53 -0500 Subject: [PATCH 1/7] ci: bootstrap CI + activate build matrix, OWASP and SBOM workflows (NOVA-SEMVER-19/20/21) This repo had no CI workflow at all. Adds ci.yml invoking: - reusable-build-maven.yml - reusable-build-matrix.yml (Java 21+25) - reusable-owasp-check.yml (continue-on-error until NVD_API_KEY is configured) - reusable-sbom.yml Also fixes the distributionManagement URL: it still had the literal 'OWNER' placeholder instead of 'ahincho' (NOVA-SEMVER-00c fixed this for the 10 Gradle repos with maven-publish, but missed this Maven repo's distributionManagement block). --- .github/workflows/ci.yml | 41 ++++++++++++++++++++++++++++++++++++++++ pom.xml | 2 +- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/ci.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..c0f6b24 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,41 @@ +name: CI/CD Pipeline + +on: + pull_request: + branches: + - main + types: + - opened + - synchronize + - reopened + push: + branches: + - main + +jobs: + build: + if: github.event_name == 'pull_request' + uses: ahincho/nova-devops/.github/workflows/reusable-build-maven.yml@main + secrets: inherit + + matrix: + if: github.event_name == 'pull_request' + uses: ahincho/nova-devops/.github/workflows/reusable-build-matrix.yml@main + with: + build-tool: maven + secrets: inherit + + owasp: + if: github.event_name == 'pull_request' + uses: ahincho/nova-devops/.github/workflows/reusable-owasp-check.yml@main + continue-on-error: true # TODO: remove once NVD_API_KEY org secret is configured (NOVA-SEMVER-20) + with: + build-tool: maven + secrets: inherit + + sbom: + if: github.event_name == 'pull_request' + uses: ahincho/nova-devops/.github/workflows/reusable-sbom.yml@main + with: + build-tool: maven + secrets: inherit diff --git a/pom.xml b/pom.xml index 53bb8e6..7e40e8e 100644 --- a/pom.xml +++ b/pom.xml @@ -93,7 +93,7 @@ github - https://maven.pkg.github.com/OWNER/nova-spring-boot-parent + https://maven.pkg.github.com/ahincho/nova-java-spring-boot-parent From 032e8c76e6b09e16e21a793d20543153adb542a7 Mon Sep 17 00:00:00 2001 From: Angel Eduardo Hincho Jove <82984150+ahincho@users.noreply.github.com> Date: Sun, 12 Jul 2026 13:17:48 -0500 Subject: [PATCH 2/7] fix(ci): remove invalid continue-on-error from reusable workflow job 'continue-on-error' is not a supported keyword for a job that calls a reusable workflow via 'uses:' - it broke workflow file parsing entirely. Moved the actual fix to nova-devops (step-level, in the reusable workflow itself). --- .github/workflows/ci.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c0f6b24..a0b611e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -28,7 +28,6 @@ jobs: owasp: if: github.event_name == 'pull_request' uses: ahincho/nova-devops/.github/workflows/reusable-owasp-check.yml@main - continue-on-error: true # TODO: remove once NVD_API_KEY org secret is configured (NOVA-SEMVER-20) with: build-tool: maven secrets: inherit From 7239dbf58d9b9db4aab193c2cfc4244979d3af15 Mon Sep 17 00:00:00 2001 From: Angel Eduardo Hincho Jove <82984150+ahincho@users.noreply.github.com> Date: Sun, 12 Jul 2026 17:07:22 -0500 Subject: [PATCH 3/7] fix: bump nova-bom/nova-starter version refs from 0.1.0-SNAPSHOT to 1.0.0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Both pe.edu.nova.java:nova-spring-boot-bom and pe.edu.nova.java.starters:nova-spring-boot-starter are published at 1.0.0 in GitHub Packages (never at 0.1.0-SNAPSHOT). The stale SNAPSHOT reference made the parent POM unresolvable, failing the build/matrix/sbom CI jobs with 'Non-resolvable import POM'. Documented as bug C in docs/java/06-semantic-versioning-en-java.md §11.9.30. --- pom.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 7e40e8e..27b4046 100644 --- a/pom.xml +++ b/pom.xml @@ -19,8 +19,8 @@ ${java.version} UTF-8 - 0.1.0-SNAPSHOT - 0.1.0-SNAPSHOT + 1.0.0 + 1.0.0 3.14.0 3.5.3 From 28aa45b56ec52b33ae0e87696e6cc3464c57c098 Mon Sep 17 00:00:00 2001 From: Angel Eduardo Hincho Jove <82984150+ahincho@users.noreply.github.com> Date: Sun, 12 Jul 2026 17:20:20 -0500 Subject: [PATCH 4/7] fix: add for cross-repo GitHub Packages reads nova-spring-boot-bom (imported via dependencyManagement) is published from the separate nova-bom repo, and nova-spring-boot-starter (a plain dependency) from nova-java-spring-boot-starter. GitHub Packages requires auth even for public reads, and each repo's Maven registry is scoped to that repo's own URL - Maven has no way to find either artifact without an explicit entry pointing at the right repo. Both entries share the 'nova-packages-read' id since they use the same credentials (see nova-devops' nova-setup-java composite action, which writes the matching entry in settings.xml from the new NOVA_PACKAGES_READ_TOKEN secret). This repo's own dependencyManagement/dependencies declarations are inherited by every child project via this parent POM, so this also fixes cross-repo resolution for any project generated from nova-java-spring-boot-archetype. --- pom.xml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/pom.xml b/pom.xml index 27b4046..8d09ec6 100644 --- a/pom.xml +++ b/pom.xml @@ -27,6 +27,23 @@ 4.0.5 + + + + nova-packages-read + https://maven.pkg.github.com/ahincho/nova-bom + + + nova-packages-read + https://maven.pkg.github.com/ahincho/nova-java-spring-boot-starter + + + From aa91c6c1fb2a948dabd419bba096d3c65b5e2e85 Mon Sep 17 00:00:00 2001 From: Angel Eduardo Hincho Jove <82984150+ahincho@users.noreply.github.com> Date: Sun, 12 Jul 2026 17:23:47 -0500 Subject: [PATCH 5/7] fix: use 2 distinct repository ids matching nova-setup-java servers --- pom.xml | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index 8d09ec6..025c33c 100644 --- a/pom.xml +++ b/pom.xml @@ -29,17 +29,18 @@ - nova-packages-read + nova-packages-read-bom https://maven.pkg.github.com/ahincho/nova-bom - nova-packages-read + nova-packages-read-starter https://maven.pkg.github.com/ahincho/nova-java-spring-boot-starter From 697264511d16f86882266f5f12ffefcf330b2f39 Mon Sep 17 00:00:00 2001 From: Angel Eduardo Hincho Jove <82984150+ahincho@users.noreply.github.com> Date: Sun, 12 Jul 2026 18:22:24 -0500 Subject: [PATCH 6/7] fix(deps): bump nova-spring-boot-starter to 1.0.1 (republish fixes bug D) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previously published 1.0.0 POM carries a phantom nova-spring-boot-bom:1.0.1 dependency baked in during the brief window when the BOM was temporarily at 1.0.1 (see nova-docs §11.9.25) and was never republished after the revert. The starter has now been republished as 1.0.1 with a clean POM regenerated from the current build.gradle.kts (which pins nova-spring-boot-bom:1.0.0 directly). --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 025c33c..6279a57 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ UTF-8 1.0.0 - 1.0.0 + 1.0.1 3.14.0 3.5.3 From ff2c22474d60ea7b024470aae8c0257e44020589 Mon Sep 17 00:00:00 2001 From: Angel Eduardo Hincho Jove <82984150+ahincho@users.noreply.github.com> Date: Mon, 20 Jul 2026 20:50:47 -0500 Subject: [PATCH 7/7] chore(release): bump nova-spring-boot-parent to 1.0.0 + add manual publish workflow - pom.xml: 0.1.0-SNAPSHOT -> 1.0.0 to align with nova-bom:1.0.0 API baseline - publish.yml: manual trigger via workflow_dispatch; reuses ahincho/nova-devops/.github/workflows/reusable-publish-maven.yml@main (same pattern as nova-bom). Needed to unlock instances/ms-course and instances/ms-forum migration (see docs/java/11 plan #1). --- .github/workflows/publish.yml | 23 +++++++++++++++++++++++ pom.xml | 2 +- 2 files changed, 24 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/publish.yml diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml new file mode 100644 index 0000000..ec01c9e --- /dev/null +++ b/.github/workflows/publish.yml @@ -0,0 +1,23 @@ +name: Publish Parent POM + +# Manually triggered publish for nova-spring-boot-parent. The release-please +# pipeline has not been wired to this repo yet (it relies on tag-driven +# publish-on-tag flow used by other repos; tracked separately). This workflow +# supports manual 1.0.x bumps in the meantime so Gradle/Maven consumers +# (e.g. instances/ms-course, instances/ms-forum) can resolve the parent. +on: + workflow_dispatch: + inputs: + dry-run: + description: 'Dry-run: deploy to local file:// repo for verification' + required: false + type: string + default: 'false' + +jobs: + publish: + uses: ahincho/nova-devops/.github/workflows/reusable-publish-maven.yml@main + with: + dry-run: ${{ inputs.dry-run || 'false' }} + secrets: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/pom.xml b/pom.xml index 6279a57..9c4a433 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ pe.edu.nova.java nova-spring-boot-parent - 0.1.0-SNAPSHOT + 1.0.0 pom Nova Platform Spring Boot Parent