diff --git a/.github/workflows/publish-snapshot.yml b/.github/workflows/publish-snapshot.yml new file mode 100644 index 000000000..190aeb07f --- /dev/null +++ b/.github/workflows/publish-snapshot.yml @@ -0,0 +1,53 @@ +name: Publish Snapshot to Maven Central + +env: + HUSKY: 0 + +on: + workflow_dispatch: + +permissions: + contents: read + +concurrency: + group: publish-snapshot + cancel-in-progress: false + +jobs: + publish-snapshot: + name: Publish SNAPSHOT to Maven Central + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v6 + with: + fetch-depth: 0 + + - uses: ./.github/actions/setup-copilot + + - name: Set up JDK 17 + uses: actions/setup-java@v5 + with: + java-version: "17" + distribution: "temurin" + cache: "maven" + server-id: central + server-username: MAVEN_USERNAME + server-password: MAVEN_PASSWORD + + - name: Verify version is a SNAPSHOT + run: | + VERSION=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout) + echo "Publishing version: $VERSION" + if [[ "$VERSION" != *"-SNAPSHOT" ]]; then + echo "ERROR: This workflow only publishes SNAPSHOT versions. Current version: $VERSION" + exit 1 + fi + echo "### Snapshot Publish" >> $GITHUB_STEP_SUMMARY + echo "- **Version:** $VERSION" >> $GITHUB_STEP_SUMMARY + echo "- **Repository:** Maven Central Snapshots" >> $GITHUB_STEP_SUMMARY + + - name: Deploy Snapshot + run: mvn -B deploy -DskipTests + env: + MAVEN_USERNAME: ${{ secrets.MAVEN_CENTRAL_USERNAME }} + MAVEN_PASSWORD: ${{ secrets.MAVEN_CENTRAL_PASSWORD }}