Skip to content

Deploy and Publish #135

Deploy and Publish

Deploy and Publish #135

Workflow file for this run

# This workflow uses actions that are not certified by GitHub.
# They are provided by a third-party and are governed by
# separate terms of service, privacy policy, and support documentation.
# This workflow will download a prebuilt Java version, install dependencies, build and deploy/publish a new release
# For more information see: https://docs.github.com/en/actions/guides/building-and-testing-java-with-maven
name: Deploy and Publish
on:
workflow_run:
workflows: ["Build and Test"]
branches: [ master ]
types:
- completed
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
jobs:
deploy:
if: "!contains(github.event.head_commit.message, 'skip ci')"
name: Deploy and Publish
env:
MVN_ARGS: '-B -Dorg.slf4j.simpleLogger.log.org.apache.maven.cli.transfer.Slf4jMavenTransferListener=warn'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@v2
with:
python-version: '3.8'
- name: Set up Java
uses: actions/setup-java@v2
with:
java-version: '8'
distribution: 'adopt'
- name: Build Java package
run: mvn verify -fae -DskipITs -Dskip.unit.tests $MVN_ARGS
- name: Setup Node
uses: actions/setup-node@v1
with:
node-version: 20
- name: Install Semantic Release dependencies
run: |
pip3 install --user bump2version
npm install -g semantic-release
npm install -g @semantic-release/changelog
npm install -g @semantic-release/exec
npm install -g @semantic-release/git
npm install -g @semantic-release/github
npm install -g @semantic-release/commit-analyzer
npm install -g @semantic-release/release-notes-generator
- name: Check if semantic release generated a release
id: is_new_release
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: |
echo ::set-output name=IS_NEW_RELEASE::$(npx semantic-release --dry-run | grep -c -i "Published release")
echo "The full TAG - ${{ github.ref }}"
- name: Get the nextRelease.version from semantic release
if: ${{ steps.is_new_release.outputs.IS_NEW_RELEASE == '1' }}
id: next_release
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: echo ::set-output name=NEXT_RELEASE::$(npx semantic-release --dry-run | grep -oP "Published release \K[0-9]+\.[0-9]+\.[0-9]+")
- name: Publish to Git Releases and Tags
if: ${{ steps.is_new_release.outputs.IS_NEW_RELEASE == '1' }}
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npx semantic-release # --dry-run --branches 9662_addcheck
- name: Publish to Maven Central
env:
GHA_TAG: "refs/tags/v14.0.0" # for setMavenVersion_gha
OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} # for .travis.settings.xml
OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }}
GPG_KEYNAME: ${{ secrets.SIGNING_KEY }}
GPG_PASSPHRASE: ${{ secrets.SIGNING_PASSWORD }}
SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }} # for setupSigning_gha
run: |
echo "The NEXT_RELEASE - ${{ steps.next_release.outputs.NEXT_RELEASE }}"
echo -e "\n\033[0;35mCommand: setupSigning"
build/setupSigning_gha.sh
echo -e "\n\033[0;35mCommand: setMavenVersion"
build/setMavenVersion_gha.sh
echo -e "\n\033[0;35mCommand: mvn deploy"
mvn deploy --settings build/.travis.settings.xml -DskipITs -Dskip.unit.tests -P central $MVN_ARGS
- name: Publish Java docs
env:
GH_TOKEN: ${{ secrets.GH_TOKEN }}
GHA_REPO_SLUG: ${{ github.repository }}
GHA_BRANCH: ${{ github.ref }} # non PR only need to get last part
GHA_PULL_REQUEST: ${{ github.event.number }}
GHA_BUILD_NUMBER: ${{ github.run_number }}
GHA_JOB_NUMBER: ${{ github.job_number }}
GHA_COMMIT: ${{ github.sha }}
GHA_TAG: "refs/tags/v14.0.0" # for setMavenVersion_gha
run: |
build/setMavenVersion_gha.sh
mvn clean javadoc:aggregate $MVN_ARGS
build/publish_gha.sh
- name: SKIP - Publish/Deploy to Git and Maven Central
if: ${{ steps.is_new_release.outputs.IS_NEW_RELEASE == '0' }}
run: |
echo -e "\n\033[0;35mCommand: Skipping the deployment because semantic release has determined there are no relevant changes that warrent a new release.\n"
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy