fix: bump dependency version to fix log4j source line #12
Workflow file for this run
This file contains hidden or 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: 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 }} |