Maven Release #15
Workflow file for this run
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: Maven Release | |
on: | |
workflow_dispatch: | |
inputs: | |
releaseVersion: | |
description: "Define the release version" | |
required: true | |
default: "" | |
developmentVersion: | |
description: "Define the snapshot version" | |
required: true | |
default: "" | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- name: 'Cache Maven packages' | |
uses: actions/cache@v4 | |
with: | |
path: ~/.m2 | |
key: 'cache' | |
restore-keys: 'cache' | |
- name: Setup Java JDK | |
uses: actions/setup-java@v4 | |
with: | |
distribution: 'zulu' | |
java-version: 11 | |
- name: 'Build with Maven' | |
run: mvn -B install --file pom.xml | |
- name: Configure Git User | |
run: | | |
git config user.email "actions@github.com" | |
git config user.name "GitHub Actions" | |
echo "sha_short=$(git rev-parse --short HEAD)" >> $GITHUB_ENV | |
- name: Import SSH Key | |
run: | | |
#!/usr/bin/env bash | |
set -e | |
eval $(ssh-agent -s) | |
GIT_SSH=/usr/bin/ssh | |
echo "Do a SSH add with the key under env 'SSH_PRIVATE_KEY'" | |
mkdir -p ${SSH_ROOT_FOLDER}/ | |
echo " ${{ secrets.SSH_PRIVATE_KEY }}" | base64 -d > ${SSH_ROOT_FOLDER}/id_rsa | |
chmod 600 ${SSH_ROOT_FOLDER}/id_rsa | |
echo "Set StrictHostKeyChecking no" | |
echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ${SSH_ROOT_FOLDER}/config | |
echo "Whitelist github.com in ${SSH_ROOT_FOLDER}/known_hosts" | |
ssh-keyscan -t rsa github.com >> ${SSH_ROOT_FOLDER}/known_hosts | |
- name: Verify Whether a Release is Ready | |
id: release | |
shell: bash | |
run: | | |
if [ "${{ github.event.inputs.releaseVersion }}" != "" ] && [ "${{ github.event.inputs.developmentVersion }}" != "" ]; then | |
echo "auto_release=true" >> $GITHUB_ENV | |
else | |
echo "auto_release=false" >> $GITHUB_ENV | |
fi | |
- name: Release With Maven | |
run: | | |
mvn -B -U \ | |
-PsonatypeDeploy \ | |
release:prepare \ | |
release:perform \ | |
javadoc:jar \ | |
source:jar \ | |
-Dgpg.passphrase=${{ secrets.GPG_PASSPHRASE }} \ | |
-DreleaseVersion=${{ github.event.inputs.releaseVersion }} \ | |
-DdevelopmentVersion=${{ github.event.inputs.developmentVersion }} \ | |
deploy | |
env: | |
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} | |
MAVEN_PASSWORD: ${{ secrets.OSSRH_TOKEN }} | |
AUTO_RELEASE_AFTER_CLOSE: ${{ env.auto_release }} | |
- name: Artifact Name | |
shell: bash | |
run: | | |
echo "artifact_name=$(mvn org.apache.maven.plugins:maven-help-plugin:3.2.0:evaluate -Dexpression=project.artifactId -q -DforceStdout)" >> "$GITHUB_ENV" | |
- name: Define Jar Name | |
shell: bash | |
run: | | |
echo "{{ env.artifact_name }}" | |
ls -al ./target/ | |
mv ./target/*.*:${{ env.artifact_name }}.jar ./target/${{ env.artifact_name }}.jar | |
- name: Upload Artifact | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ${{ env.artifact_name }}-${{ env.sha_short }} | |
path: ./target/${{ env.artifact_name }}.jar | |
- name: Workflow Release Notes | |
uses: peter-evans/repository-dispatch@v2 | |
if: ${{ github.event.inputs.releaseVersion }} != "" && ${{ github.event.inputs.developmentVersion }} != "" | |
with: | |
event-type: release-notes | |
client-payload: '{"auto_release": "${{ env.auto_release }}", "artifact": "${{ env.artifact_name }}-${{ env.sha_short }}"}' |