Skip to content

docs: update Executable Architecture Proof guardrails walkthrough #191

docs: update Executable Architecture Proof guardrails walkthrough

docs: update Executable Architecture Proof guardrails walkthrough #191

Workflow file for this run

name: Build & Test
on:
push:
branches: [ main ]
pull_request:
permissions:
contents: read
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
java: [ '21', '25' ]
name: Build & Test (JDK ${{ matrix.java }})
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up JDK ${{ matrix.java }}
uses: actions/setup-java@v4
with:
java-version: ${{ matrix.java }}
distribution: 'temurin'
cache: maven
# -------------------------------------------------
# Core generator (GA contract) → JDK 21 only
# -------------------------------------------------
- name: Build generator (tests + coverage) [JDK 21 only]
if: matrix.java == '21'
run: mvn -B -q -ntp clean verify
# -------------------------------------------------
# Forward-compat smoke → JDK 25 only (no core test contract)
# Build JAR without tests so we can run generated-project smoke
# -------------------------------------------------
- name: Build generator JAR (skip tests) [JDK 25 only]
if: matrix.java == '25'
run: mvn -B -q -ntp -DskipTests clean package
- name: Make CI scripts executable
run: chmod +x ci/*.sh
# -------------------------------------------------
# JDK 21 → full verification set (default + proof + minimal no-sample)
# -------------------------------------------------
- name: Verify generated project (hex, guardrails basic, sample basic) [default]
if: matrix.java == '21'
env:
JAVA_VERSION: '21'
BOOT_VERSION: '3.5'
LAYOUT: hexagonal
GUARDRAILS: basic
SAMPLE_CODE: basic
DEPENDENCIES: web
ARTIFACT_ID: gen-j21-b35-hex-grbasic-sbasic
PACKAGE_NAME: io.github.blueprintplatform.genj21b35hexgrbasicsbasic
DESCRIPTION: "CI verify (default): hexagonal, guardrails=basic, sample=basic"
run: ./ci/verify-gen-hex-guardrails-basic-sample-basic.sh
- name: Verify generated project (std, guardrails basic, sample basic) [default]
if: matrix.java == '21'
env:
JAVA_VERSION: '21'
BOOT_VERSION: '3.5'
LAYOUT: standard
GUARDRAILS: basic
SAMPLE_CODE: basic
DEPENDENCIES: web
ARTIFACT_ID: gen-j21-b35-std-grbasic-sbasic
PACKAGE_NAME: io.github.blueprintplatform.genj21b35stdgrbasicsbasic
DESCRIPTION: "CI verify (default): standard, guardrails=basic, sample=basic"
run: ./ci/verify-gen-std-guardrails-basic-sample-basic.sh
- name: Verify generated project (hex, guardrails strict, sample none) [no-sample]
if: matrix.java == '21'
env:
JAVA_VERSION: '21'
BOOT_VERSION: '3.5'
LAYOUT: hexagonal
GUARDRAILS: strict
SAMPLE_CODE: none
ARTIFACT_ID: gen-j21-b35-hex-grstrict-snone
PACKAGE_NAME: io.github.blueprintplatform.genj21b35hexgrstrictsnone
DESCRIPTION: "CI verify (no-sample): hexagonal, guardrails=strict, sample=none"
run: ./ci/verify-gen-hex-guardrails-strict-sample-none.sh
- name: Verify generated project (std, guardrails strict, sample none) [no-sample]
if: matrix.java == '21'
env:
JAVA_VERSION: '21'
BOOT_VERSION: '3.5'
LAYOUT: standard
GUARDRAILS: strict
SAMPLE_CODE: none
ARTIFACT_ID: gen-j21-b35-std-grstrict-snone
PACKAGE_NAME: io.github.blueprintplatform.genj21b35stdgrstrictsnone
DESCRIPTION: "CI verify (no-sample): standard, guardrails=strict, sample=none"
run: ./ci/verify-gen-std-guardrails-strict-sample-none.sh
- name: Verify generated project (hex, guardrails strict, sample basic) [proof]
if: matrix.java == '21'
env:
JAVA_VERSION: '21'
BOOT_VERSION: '3.5'
LAYOUT: hexagonal
GUARDRAILS: strict
SAMPLE_CODE: basic
DEPENDENCIES: web
ARTIFACT_ID: gen-j21-b35-hex-grstrict-sbasic
PACKAGE_NAME: io.github.blueprintplatform.genj21b35hexgrstrictsbasic
DESCRIPTION: "CI verify (proof): hexagonal, guardrails=strict, sample=basic"
run: ./ci/verify-gen-hex-guardrails-strict-sample-basic.sh
- name: Verify generated project (std, guardrails strict, sample basic) [proof]
if: matrix.java == '21'
env:
JAVA_VERSION: '21'
BOOT_VERSION: '3.5'
LAYOUT: standard
GUARDRAILS: strict
SAMPLE_CODE: basic
DEPENDENCIES: web
ARTIFACT_ID: gen-j21-b35-std-grstrict-sbasic
PACKAGE_NAME: io.github.blueprintplatform.genj21b35stdgrstrictsbasic
DESCRIPTION: "CI verify (proof): standard, guardrails=strict, sample=basic"
run: ./ci/verify-gen-std-guardrails-strict-sample-basic.sh
# -------------------------------------------------
# JDK 25 → single forward-compat smoke test (generated project only)
# -------------------------------------------------
- name: Verify generated project (hex, guardrails strict, sample basic) [JDK 25 forward smoke]
if: matrix.java == '25'
env:
JAVA_VERSION: '25'
BOOT_VERSION: '3.5'
LAYOUT: hexagonal
GUARDRAILS: strict
SAMPLE_CODE: basic
DEPENDENCIES: web
ARTIFACT_ID: gen-j25-b35-hex-grstrict-sbasic
PACKAGE_NAME: io.github.blueprintplatform.genj25b35hexgrstrictsbasic
DESCRIPTION: "CI verify (forward smoke): hexagonal, guardrails=strict, sample=basic (JDK 25)"
run: ./ci/verify-gen-hex-guardrails-strict-sample-basic.sh
- name: Upload coverage to Codecov
if: matrix.java == '21'
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
files: |
target/site/jacoco/jacoco.xml
target/site/jacoco-it/jacoco-it.xml
flags: codegen-blueprint
name: codegen-blueprint
fail_ci_if_error: false