diff --git a/.github/workflows/pull-request.yml b/.github/workflows/pull-request.yml index a0009f2b..c4e627f9 100644 --- a/.github/workflows/pull-request.yml +++ b/.github/workflows/pull-request.yml @@ -82,6 +82,34 @@ jobs: - uses: gradle/actions/setup-gradle@v4 - run: ./gradlew checkstyleMain checkstyleTest pmdMain pmdTest + validate-pom: + name: Validate Publish POMs + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-java@v4 + with: + distribution: temurin + java-version: 21 + - uses: gradle/actions/setup-gradle@v4 + - name: Generate POMs + run: ./gradlew generatePomFileForMavenPublication + # Maven's built-in model validator catches the rule that bit us at v0.1.0: + # `'dependencies.dependency.version' for X is missing`. Resolves BOM imports + # (jackson-bom etc.), so deps managed via are accepted. + # Does NOT check Central-specific completeness rules (name/description/license/scm) — + # the release gate (publishToMavenCentral against Central Portal) covers those. + - name: Validate POMs via Maven's model validator + run: | + set -e + failed=0 + for pom in $(find . -path '*/build/publications/maven/pom-default.xml'); do + echo "::group::$pom" + mvn -B --no-transfer-progress -f "$pom" validate || failed=1 + echo "::endgroup::" + done + exit $failed + test-opa-evaluator: needs: check-changes if: needs.check-changes.outputs.opa-evaluator == 'true' @@ -153,6 +181,7 @@ jobs: needs: - check-changes - lint + - validate-pom - test-opa-evaluator - test-opa-jackson - test-opa-services