Skip to content

Release Pipeline

Release Pipeline #3

name: Release Pipeline
on:
workflow_dispatch:
inputs:
releaseVersion:
description: "Default version to use when preparing a release."
required: true
default: "X.Y.Z"
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up JDK 17
uses: actions/setup-java@v3
with:
java-version: '17'
distribution: 'temurin'
- name: Replace "SNAPSHOT" within POM version with date, build number and commit hash
run: |
snapshot_version=$(mvn help:evaluate -Dexpression=project.version -q -DforceStdout)
major_minor_patch=$(echo "${snapshot_version}" | sed 's/SNAPSHOT//g')
date=$(date -u +%Y%m%d%H%M)
release_candidate_version=${major_minor_patch}${date}-${{github.run_number}}-${GITHUB_SHA::8}
mvn versions:set -DnewVersion=${release_candidate_version}
- name: Build with Maven
run: mvn -B deploy -Dbuild.number=${{github.run_number}} -Dbuild.revision=${GITHUB_SHA} --file pom.xml
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Release to GitHub releases
uses: softprops/action-gh-release@v1
with:
files: "extensions/extension-signature/target/signature-*.jar"
body_path: "CHANGELOG.md"
fail_on_unmatched_files: true
tag_name: ${{ github.event.inputs.releaseVersion }}
generate_release_notes: true
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}