Skip to content

fix: bump dependency version to fix log4j source line #12

fix: bump dependency version to fix log4j source line

fix: bump dependency version to fix log4j source line #12

Workflow file for this run

name: Build and Deploy
on:
push:
branches:
- '**'
jobs:
build-deploy:
runs-on: ubuntu-latest
permissions:
contents: write # needed for creating/updating GitHub Releases
steps:
# -----------------------------------------------------------------------
# Checkout
# -----------------------------------------------------------------------
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0 # full history needed for version check
# -----------------------------------------------------------------------
# Java / Maven setup
# -----------------------------------------------------------------------
- name: Set up Java 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'temurin'
cache: maven
# GPG setup for Maven Central signing.
# Requires secrets: GPG_PRIVATE_KEY, GPG_PASSPHRASE
# See docs/SONATYPE_SETUP.md for how to generate and register these.
gpg-private-key: ${{ secrets.GPG_PRIVATE_KEY }}
gpg-passphrase: GPG_PASSPHRASE
# -----------------------------------------------------------------------
# Version check — all branches must bump <semver> in pom.xml
# -----------------------------------------------------------------------
- name: Version check
run: |
if ! git log -p -- pom.xml | grep -q '<semver>'; then
echo "ERROR: no change to <semver> in pom.xml found on this branch."
echo "Bump <semver> in pom.xml before merging."
exit 1
fi
echo "Version check passed: <semver> updated in pom.xml."
# -----------------------------------------------------------------------
# Compute version variables
#
# Branch strategy: master <- develop <- feature
#
# master branch → clean semver e.g. 2.5.2
# develop branch → SNAP + timestamp e.g. 2.5.2-SNAP-202407061423
# feature branch → branch name + timestamp e.g. 2.5.2-feature-login-202407061423
# -----------------------------------------------------------------------
- name: Compute version variables
id: versions
env:
BRANCH_NAME: ${{ github.ref_name }}
run: |
SEMVER=$(grep -m1 '<semver>' pom.xml | sed 's/.*<semver>\(.*\)<\/semver>.*/\1/' | tr -d '[:space:]')
TIMESTAMP=$(date -u '+%Y%m%d%H%M')
if [ "${BRANCH_NAME}" = "master" ]; then
BUILDNUM=""
SHA1=""
CHANGELIST=""
POSTFIX=""
elif [ "${BRANCH_NAME}" = "develop" ]; then
POSTFIX="SNAP-${TIMESTAMP}"
BUILDNUM=""
SHA1=""
CHANGELIST="-${POSTFIX}"
else
# Sanitize branch name: replace any non-alphanumeric (except '-') with '-',
# collapse consecutive dashes, strip leading/trailing dashes
SAFE_BRANCH=$(echo "${BRANCH_NAME}" | sed 's/[^a-zA-Z0-9]/-/g' | sed 's/-\+/-/g' | sed 's/^-//;s/-$//')
POSTFIX="${SAFE_BRANCH}-${TIMESTAMP}"
BUILDNUM=""
SHA1=""
CHANGELIST="-${POSTFIX}"
fi
echo "SEMVER=${SEMVER}" >> "$GITHUB_OUTPUT"
echo "BUILDNUM=${BUILDNUM}" >> "$GITHUB_OUTPUT"
echo "SHA1=${SHA1}" >> "$GITHUB_OUTPUT"
echo "CHANGELIST=${CHANGELIST}" >> "$GITHUB_OUTPUT"
echo "POSTFIX=${POSTFIX}" >> "$GITHUB_OUTPUT"
echo "VERSION=${SEMVER}${CHANGELIST}" >> "$GITHUB_OUTPUT"
echo "== Version: ${SEMVER}${CHANGELIST} =="
# -----------------------------------------------------------------------
# Build, test, and generate Javadoc
# -----------------------------------------------------------------------
- name: Build
run: |
mvn -B \
-Dmaven.test.skip=false \
-Dmaven.source.skip=false \
-Dchangelist=${{ steps.versions.outputs.CHANGELIST }} \
-Dbuildnum=${{ steps.versions.outputs.BUILDNUM }} \
-Dsha1=${{ steps.versions.outputs.SHA1 }} \
javadoc:jar install
# -----------------------------------------------------------------------
# Deploy JARs to Maven Central via Sonatype
#
# Publishes: mdms-komodo-client, mdms-komodo-client-handler-examples
#
# Prerequisites — add these secrets to the GitHub repo:
# OSSRH_USERNAME : Sonatype Central user token username
# OSSRH_PASSWORD : Sonatype Central user token password
# GPG_PRIVATE_KEY : armored GPG private key (gpg --export-secret-keys --armor <ID>)
# GPG_PASSPHRASE : passphrase for the GPG key
#
# See docs/SONATYPE_SETUP.md for full setup instructions.
# -----------------------------------------------------------------------
- name: Deploy JARs to Maven Central
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
run: |
mvn -B \
-DskipTests \
-Dmaven.source.skip=false \
-Dchangelist=${{ steps.versions.outputs.CHANGELIST }} \
-Dbuildnum=${{ steps.versions.outputs.BUILDNUM }} \
-Dsha1=${{ steps.versions.outputs.SHA1 }} \
-Prelease \
--projects mdms-komodo-client,mdms-komodo-client-handler-examples \
--also-make \
javadoc:jar deploy \
-Dgpg.passphrase="${GPG_PASSPHRASE}" \
-s .github/maven-settings.xml
# -----------------------------------------------------------------------
# GitHub Release for mdms-komodo-client tar.gz and zip
#
# master → tagged release v<semver> e.g. v2.5.2
# develop → pre-release v<semver>-SNAP-<timestamp> e.g. v2.5.2-SNAP-202407061423
# feature → pre-release pre-release-<branch>-<timestamp>
# -----------------------------------------------------------------------
- name: Locate release artifacts
id: artifacts
run: |
TARBALL=$(find mdms-komodo-client/target -name "*-fei5.tar.gz" | head -1)
ZIPFILE=$(find mdms-komodo-client/target -name "*-fei5.zip" | head -1)
echo "TARBALL=${TARBALL}" >> "$GITHUB_OUTPUT"
echo "ZIPFILE=${ZIPFILE}" >> "$GITHUB_OUTPUT"
echo "Found tar.gz: ${TARBALL}"
echo "Found zip: ${ZIPFILE}"
- name: Release (master) — create tagged release
if: github.ref_name == 'master'
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ steps.versions.outputs.VERSION }}
name: v${{ steps.versions.outputs.VERSION }}
prerelease: false
files: |
${{ steps.artifacts.outputs.TARBALL }}
${{ steps.artifacts.outputs.ZIPFILE }}
- name: Release (develop) — update SNAP pre-release
if: github.ref_name == 'develop'
uses: softprops/action-gh-release@v2
with:
tag_name: v${{ steps.versions.outputs.VERSION }}
name: v${{ steps.versions.outputs.VERSION }}
prerelease: true
files: |
${{ steps.artifacts.outputs.TARBALL }}
${{ steps.artifacts.outputs.ZIPFILE }}
- name: Release (feature branch) — update pre-release
if: github.ref_name != 'master' && github.ref_name != 'develop'
uses: softprops/action-gh-release@v2
with:
tag_name: pre-release-${{ steps.versions.outputs.POSTFIX }}
name: Pre-release ${{ steps.versions.outputs.VERSION }}
prerelease: true
files: |
${{ steps.artifacts.outputs.TARBALL }}
${{ steps.artifacts.outputs.ZIPFILE }}