name: build-and-publish

on:
  push:
    branches: [ main, "rework/v2" ]
  pull_request:

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - uses: actions/checkout@v4
      - name: Setup JDK 25
        uses: actions/setup-java@v4
        with:
          distribution: temurin
          java-version: '25'
      - name: Build & test
        run: mvn -q clean package

  publish:
    # Snapshots to GitHub Packages on branch pushes only (PRs never publish).
    # NOTE: GH Packages rejects re-publishing existing RELEASE versions;
    # snapshots are always overwritable.
    if: github.event_name == 'push'
    needs: build
    runs-on: ubuntu-latest
    permissions:
      contents: read
      packages: write
    steps:
      - uses: actions/checkout@v4
      - name: Setup JDK 25
        uses: actions/setup-java@v4
        with:
          distribution: temurin
          java-version: '25'
      - name: Publish snapshot
        run: mvn -q deploy -DskipTests
        env:
          GITHUB_TOKEN: ${{ github.token }}
          GITHUB_ACTOR: ${{ github.actor }}

