diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml new file mode 100644 index 000000000..5a1fe96c6 --- /dev/null +++ b/.github/workflows/build.yml @@ -0,0 +1,49 @@ +name: Build + +on: + push: + branches: ["develop", "master"] + pull_request: + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: read + + steps: + - name: Checkout + uses: actions/checkout@v6 + + - name: Set up JDK 21 + uses: actions/setup-java@v5 + with: + distribution: temurin + java-version: 21 + cache: maven + + # Full reactor: morphium-core, poppydb, and all three optional extension + # modules (morphium-jakarta-data, quarkus-morphium, spring-boot-morphium). + # No -DskipExtensions here on purpose -- this is the only automated place + # that exercises the extensions at all; without it their tests only ever + # ran ad hoc. + # + # -Dquarkus.http.test-port=0: quarkus-morphium/integration-tests binds a + # fixed port (8081, Quarkus's own test default) in its @QuarkusTest runs. + # 0 tells Quarkus to pick a free ephemeral port instead. Not needed for + # morphium-core/poppydb/morphium-jakarta-data/spring-boot-morphium, but + # harmless there since only Quarkus reads the property at all. + - name: Build and test + run: mvn -B verify -Dquarkus.http.test-port=0 + + - name: Upload test reports + if: always() + uses: actions/upload-artifact@v7 + with: + name: test-reports + path: '**/target/surefire-reports/*.xml' + retention-days: 7 diff --git a/pom.xml b/pom.xml index fc9450cd8..12a86a6d1 100644 --- a/pom.xml +++ b/pom.xml @@ -56,13 +56,14 @@ "mvn install" -> builds core + PoppyDB + all extensions "mvn install -DskipExtensions" -> builds only core + PoppyDB (no Docker, no Quarkus/Spring download needed). - Skips BOTH extension modules currently + Skips ALL extension modules currently in the "extensions" profile below: - morphium-jakarta-data AND quarkus-morphium, - not just quarkus-morphium. quarkus-morphium - depends on morphium-jakarta-data, so this - reactor could not build one without the - other even if it tried to. + morphium-jakarta-data, quarkus-morphium, + AND spring-boot-morphium. quarkus-morphium + and spring-boot-morphium both depend on + morphium-jakarta-data, so this reactor + could not build one without the others + even if it tried to. --> morphium-core