Skip to content

Release 1.0.8

Release 1.0.8 #9

Workflow file for this run

name: Release
run-name: Release ${{ inputs.releaseVersion }}
on:
workflow_dispatch:
inputs:
releaseVersion:
description: 'Release version number'
required: true
developmentVersion:
description: 'Next development (snapshot) version number'
required: true
jobs:
release:
name: Create release
runs-on: ubuntu-latest
steps:
- name: Create access token
uses: actions/create-github-app-token@v1
id: app-token
with:
app-id: ${{ vars.RELEASE_APP_ID }}
private-key: ${{ secrets.RELEASE_APP_PRIVATE_KEY }}
- name: Check out from SCM
uses: actions/checkout@v4
with:
token: ${{ steps.app-token.outputs.token }}
- name: Import GPG key
uses: crazy-max/ghaction-import-gpg@v6
with:
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
passphrase: ${{ secrets.GPG_PASSPHRASE }}
- name: Test GPG key expiry
run: |
EXPIRY=$(gpg --list-keys | egrep -o "expires:\s+[0-9-]+" | egrep -o "[0-9-]+" | sort | head -n 1)
echo "GPG key expires on ${EXPIRY}"
DELTA=$(( $(date --date "${EXPIRY}" '+%s') - $(date '+%s') ))
echo "GPG key expires in ${DELTA} seconds"
[[ ${DELTA} -ge 0 ]]
- name: Set up JDK/Maven
uses: actions/setup-java@v4
with:
distribution: 'zulu'
java-version: 11
- name: Configure Maven settings
uses: whelk-io/maven-settings-xml-action@v22
with:
servers: >-
[{
"id": "ossrh",
"username": "${{ secrets.OSS_USER }}",
"password": "${{ secrets.OSS_PASSWORD }}"
}]
- name: Configure git
run: |
git config --global committer.email "[email protected]"
git config --global committer.name "GitHub Actions"
git config --global author.email "${{ github.actor }}@users.noreply.github.com"
git config --global author.name "${{ github.actor }}"
- name: Prepare release
id: prepare_release
run: >-
mvn
--batch-mode
"-DpreparationGoals=clean compile"
"-DreleaseVersion=${{ github.event.inputs.releaseVersion }}"
"-DdevelopmentVersion=${{ github.event.inputs.developmentVersion }}"
"-Dtag=v${{ github.event.inputs.releaseVersion }}"
"-Dusername=${{ github.actor }}"
"-Dpassword=${{ steps.app-token.outputs.token }}"
"-DrepoBaseUrl=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}"
release:prepare
- name: Perform release
id: perform_release
env:
AUTO_RELEASE: ${{ vars.AUTO_RELEASE }}
MAVEN_GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
run: >-
mvn
--batch-mode
"-Dgoals=deploy"
"-DreleaseProfiles=release,-examples"
"-Darguments=-Dgpg.useagent=false -DrepoBaseUrl=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}"
"-Dusername=${{ github.actor }}"
"-Dpassword=${{ steps.app-token.outputs.token }}"
"-DrepoBaseUrl=${GITHUB_SERVER_URL}/${GITHUB_REPOSITORY}"
release:perform
- name: Create GitHub release
id: create_github_release
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ github.event.inputs.releaseVersion }}
name: assertj-mail-${{ github.event.inputs.releaseVersion }}
body: |-
Release ${{ github.event.inputs.releaseVersion }} of assertj-mail
[Change log](${{ github.server_url }}/${{ github.repository }}/blob/main/CHANGES.md)
files: |
./target/checkout/assertj-mail/target/assertj-mail-${{ github.event.inputs.releaseVersion }}.jar
./target/checkout/assertj-mail/target/assertj-mail-${{ github.event.inputs.releaseVersion }}-javadoc.jar
./target/checkout/assertj-mail-jakarta/target/assertj-mail-jakarta-${{ github.event.inputs.releaseVersion }}.jar
./target/checkout/assertj-mail-jakarta/target/assertj-mail-jakarta-${{ github.event.inputs.releaseVersion }}-javadoc.jar