# Builds, tests and publishes the library modules (parent, core, autoconfigure, starter) to the Gitea Maven # registry of the "public" owner. The demo app is not published. # # push to main -> -SNAPSHOT from pom.xml # tag v1.2.3 -> release 1.2.3 # manual run -> whatever pom.xml says # # Needs the repository/organization secret REGISTRY_TOKEN: a Gitea access token with "write:package" scope. # Uses the Maven Wrapper (./mvnw): act-based runner images do not ship Maven. name: Publish on: push: branches: [main] tags: ['v*'] workflow_dispatch: env: REGISTRY_URL: ${{ gitea.server_url }}/api/packages/public/maven jobs: publish: runs-on: ubuntu-latest steps: - name: Check registry token env: REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }} run: | if [ -z "$REGISTRY_TOKEN" ]; then echo "::error::Secret REGISTRY_TOKEN is not set or not available to this repository (Settings > Actions > Secrets)." exit 1 fi - uses: actions/checkout@v4 - uses: actions/setup-java@v4 with: distribution: temurin java-version: '27' cache: maven # writes ~/.m2/settings.xml with a reading these env vars server-id: gitea server-username: REGISTRY_USERNAME server-password: REGISTRY_TOKEN - name: Set release version from tag if: startsWith(gitea.ref, 'refs/tags/v') run: ./mvnw -B -ntp versions:set -DnewVersion="${GITEA_REF_NAME#v}" -DgenerateBackupPoms=false env: GITEA_REF_NAME: ${{ gitea.ref_name }} - name: Build, test and publish run: ./mvnw -B -ntp deploy -DaltDeploymentRepository="gitea::${REGISTRY_URL}" env: REGISTRY_USERNAME: ${{ gitea.actor }} REGISTRY_TOKEN: ${{ secrets.REGISTRY_TOKEN }}