Release to Maven Central #57
This file contains 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: Release to Maven Central | |
on: | |
workflow_dispatch: | |
inputs: | |
releaseversion: | |
description: 'Release version' | |
required: true | |
default: '2.1.0' | |
permissions: | |
contents: write | |
env: | |
SAUCE_USERNAME: ${{secrets.SAUCE_USERNAME}} | |
SAUCE_ACCESS_KEY: ${{secrets.SAUCE_ACCESS_KEY}} | |
jobs: | |
publish: | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "Will start a Maven Central upload with version ${{ github.event.inputs.releaseversion }}" | |
- uses: actions/checkout@v4 | |
- name: Set up Maven Central Repository | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '20' | |
distribution: 'temurin' | |
cache: 'maven' | |
server-id: ossrh | |
server-username: MAVEN_USERNAME | |
server-password: MAVEN_PASSWORD | |
gpg-private-key: ${{ secrets.OSSRH_GPG_SECRET_KEY }} # Value of the GPG private key to import | |
gpg-passphrase: MAVEN_GPG_PASSPHRASE # env variable for GPG private key passphrase | |
- name: Setup Sauce Connect US-West | |
uses: saucelabs/sauce-connect-action@v2 | |
with: | |
username: ${{ secrets.SAUCE_USERNAME }} | |
accessKey: ${{ secrets.SAUCE_ACCESS_KEY }} | |
tunnelName: github-action-tunnel-us-west | |
configFile: ${{ github.workspace }}/src/test/resources/sauce-connect-config-us-west.yaml | |
- name: Setup Sauce Connect EU-Central | |
uses: saucelabs/sauce-connect-action@v2 | |
with: | |
username: ${{ secrets.SAUCE_USERNAME }} | |
accessKey: ${{ secrets.SAUCE_ACCESS_KEY }} | |
tunnelName: github-action-tunnel-eu-central | |
configFile: ${{ github.workspace }}/src/test/resources/sauce-connect-config-eu-central.yaml | |
- name: Build with Maven | |
run: mvn clean install -Dgpg.skip -B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn -V | |
- name: Upload JaCoCo report to Codecov | |
uses: codecov/codecov-action@v4 | |
with: | |
flags: tests,release | |
- name: Set projects Maven version to GitHub Action GUI set version | |
run: mvn versions:set "-DnewVersion=${{ github.event.inputs.releaseversion }}" -DgenerateBackupPoms=false -B --no-transfer-progress | |
- name: Publish package | |
run: mvn -B --no-transfer-progress clean deploy -DskipTests=true | |
env: | |
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} | |
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} | |
MAVEN_GPG_PASSPHRASE: ${{ secrets.OSSRH_GPG_SECRET_KEY_PASSWORD }} | |
- name: Generate changelog | |
id: changelog | |
uses: metcalfc/[email protected] | |
with: | |
myToken: ${{ secrets.GITHUB_TOKEN }} | |
- name: Create GitHub Release | |
id: create_release | |
uses: actions/create-release@v1 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
tag_name: ${{ github.event.inputs.releaseversion }} | |
release_name: ${{ github.event.inputs.releaseversion }} | |
body: | | |
``` | |
<dependencies> | |
<dependency> | |
<groupId>com.saucelabs</groupId> | |
<artifactId>saucerest</artifactId> | |
<version>${{ github.event.inputs.releaseversion }}</version> | |
</dependency> | |
</dependencies> | |
``` | |
### Changelog | |
${{ steps.changelog.outputs.changelog }} | |
draft: false | |
prerelease: false |