Release (1.3.0-RC1 -> 1.3.0-SNAPSHOT) #109
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
# Release artifact will be pushed to Sonatype, which is synced to Maven Central | |
# Build artifacts get pushed to Sonatype and non-SNAPSHOT versions are then | |
# auto-synced to Maven Central. | |
# | |
# If images are given (separated by spaces), then they are assumed to be produced by | |
# Maven and have release and dev tags. | |
# | |
# Various secrets are needed to do the release. | |
# | |
# Credentials for Sonatype, needs a Sonatype account. | |
# - OSSRH_USERNAME | |
# - OSSRH_PASSWORD | |
# Will need GPG key + passphrase to sign artifacts for Maven Central | |
# - MAVEN_GPG_PASSPHRASE | |
# - MAVEN_GPG_KEY | |
name: "Publish: manual full release" | |
run-name: Release (${{ inputs.releaseversion }} -> ${{ inputs.nextversion}}) | |
on: | |
workflow_dispatch: | |
inputs: | |
releaseversion: | |
description: 'Release version' | |
required: true | |
nextversion: | |
description: 'Next dev version' | |
required: true | |
workflow_call: | |
inputs: | |
releaseversion: | |
description: 'Release version' | |
required: true | |
type: string | |
nextversion: | |
description: 'Next dev version' | |
required: true | |
type: string | |
images: | |
description: 'Images to push' | |
required: false | |
type: string | |
jobs: | |
release: | |
runs-on: ubuntu-latest | |
env: | |
RELEASE: ${{ inputs.releaseversion }} | |
NEXT: ${{ inputs.nextversion }} | |
IMAGES: ${{ inputs.images }} | |
steps: | |
- name: Checkout latest code | |
uses: actions/checkout@v3 | |
- name: Setup Java & Maven | |
uses: actions/setup-java@v3 | |
with: | |
java-version: 17 | |
distribution: 'temurin' | |
cache: 'maven' | |
server-id: ossrh | |
server-username: MAVEN_USERNAME | |
server-password: MAVEN_PASSWORD | |
gpg-private-key: ${{ secrets.MAVEN_GPG_KEY }} | |
gpg-passphrase: MAVEN_GPG_PASSPHRASE | |
- name: Config git user | |
run: | | |
git config user.name ${{ github.actor }} | |
git config user.email "${{ github.actor }}@users.noreply.github.com" | |
- name: Set the release version, commit the change, and tag it | |
run: | | |
mvn versions:set -B -ntp -DnewVersion=$RELEASE | |
git commit -am "Update version to $RELEASE" | |
git tag $RELEASE | |
- name: Release Java modules | |
uses: eclipse-pass/main/.github/actions/maven-release@combined-release | |
env: | |
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} | |
MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} | |
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} | |
- name: Set the next dev version and commit the change | |
run: | | |
mvn versions:set -B -ntp -DnewVersion=$NEXT | |
git commit -am "Update version to $NEXT" | |
- name: Release dev Java modules | |
run: | | |
mvn -B -ntp clean deploy -DskipTests -DskipITs | |
env: | |
MAVEN_USERNAME: ${{ secrets.OSSRH_USERNAME }} | |
MAVEN_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} | |
MAVEN_GPG_PASSPHRASE: ${{ secrets.MAVEN_GPG_PASSPHRASE }} | |
- name: Login to GHCR | |
uses: docker/login-action@v2 | |
with: | |
registry: ghcr.io | |
username: ${{ github.actor }} | |
password: ${{ secrets.GITHUB_TOKEN }} | |
- name: Push Docker images to GHCR | |
run: | | |
for name in $IMAGES | |
do | |
docker push $name:$RELEASE | |
docker push $name:$NEXT | |
done | |
- name: Push the commits and tags | |
run: | | |
git push origin | |
git push origin --tags | |
- name: Create GitHub release | |
run: | | |
gh release create "$RELEASE" --generate-notes |