Publish release to Maven Central #5
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Publish release to Maven Central | |
| on: | |
| push: | |
| tags: | |
| - 'v?[0-9]+.[0-9]+.[0-9]+*' # Trigger on tags like v1.0.0, 1.2.3, v1.2.3.Alpha1 etc. | |
| jobs: | |
| publish: | |
| # Only run this job for the main repository, not for forks | |
| if: github.repository == 'a2aproject/a2a-java' | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: read | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Set up JDK 17 | |
| uses: actions/setup-java@v4 | |
| with: | |
| java-version: '17' | |
| distribution: 'temurin' | |
| cache: maven | |
| # Use secrets to import GPG key | |
| - name: Import GPG key | |
| uses: crazy-max/ghaction-import-gpg@v6 | |
| with: | |
| gpg_private_key: ${{ secrets.GPG_SIGNING_KEY }} | |
| passphrase: ${{ secrets.GPG_SIGNING_PASSPHRASE }} | |
| # Create settings.xml for Maven since it needs the 'central-a2asdk-temp' server. | |
| # Populate wqith username and password from secrets | |
| - name: Create settings.xml | |
| run: | | |
| mkdir -p ~/.m2 | |
| echo "<settings><servers><server><id>central-a2asdk-temp</id><username>${{ secrets.CENTRAL_TOKEN_USERNAME }}</username><password>${{ secrets.CENTRAL_TOKEN_PASSWORD }}</password></server></servers></settings>" > ~/.m2/settings.xml | |
| # Deploy to Maven Central | |
| # -s uses the settings file we created. | |
| - name: Publish to Maven Central | |
| run: > | |
| mvn -B deploy | |
| -s ~/.m2/settings.xml | |
| -P release | |
| -DskipTests | |
| -Drelease.auto.publish=true | |
| env: | |
| # GPG passphrase is set as an environment variable for the gpg plugin to use | |
| GPG_PASSPHRASE: ${{ secrets.GPG_SIGNING_PASSPHRASE }} |