Bump net.sourceforge.pmd:pmd-java from 7.1.0 to 7.3.0 #149
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
name: Build | |
on: | |
push: | |
branches: | |
- '**' | |
tags-ignore: | |
- '**' | |
pull_request: | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
# Allows reuse of this workflow as a generic "Java build with Maven that publishes to main on merge" | |
workflow_call: | |
inputs: | |
javadoc-project-name: | |
description: Project subdirectory to upload the JavaDoc to in Google Cloud Storage. | |
required: true | |
type: string | |
outputs: | |
release-version: | |
description: The version of the new release built on the main branch. | |
value: ${{ jobs.build_main_branch.outputs.release-version }} | |
jobs: | |
build_feature_branch: | |
name: Build feature branch | |
runs-on: ubuntu-latest | |
if: github.ref != 'refs/heads/main' | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: Setup Java and Maven | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 21 | |
cache: maven | |
- name: Build with Maven verify | |
run: | | |
./mvnw --batch-mode verify javadoc:javadoc javadoc:aggregate | |
build_main_branch: | |
name: Build main branch | |
runs-on: ubuntu-latest | |
if: github.ref == 'refs/heads/main' | |
outputs: | |
release-version: ${{ steps.set-version.outputs.release-version }} | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
submodules: true | |
- name: Setup Java and Maven | |
uses: actions/setup-java@v4 | |
with: | |
distribution: temurin | |
java-version: 21 | |
cache: 'maven' | |
server-id: reload | |
server-username: MAVEN_SERVER_USERNAME | |
server-password: MAVEN_SERVER_PASSWORD | |
- name: Read revision version from pom.xml | |
shell: bash | |
run: | | |
MAVEN_POM_REVISION_VERSION="$(./mvnw --batch-mode help:evaluate -Dexpression=revision -q -DforceStdout)" | |
echo "MAVEN_POM_REVISION_VERSION=$MAVEN_POM_REVISION_VERSION" >> $GITHUB_ENV | |
- name: Check if revision is already tagged | |
shell: bash | |
run: | | |
if git tag -l $MAVEN_POM_REVISION_VERSION | grep -q $MAVEN_POM_REVISION_VERSION; then | |
echo "Revision $MAVEN_POM_REVISION_VERSION is already tagged. Skipping the build and deployment!" | |
exit 0 | |
else | |
DEPLOY_RELEASE=true | |
echo "DEPLOY_RELEASE=$DEPLOY_RELEASE" >> $GITHUB_ENV | |
fi | |
- name: Build merged feature without releasing it | |
if: env.DEPLOY_RELEASE != 'true' | |
run: | | |
./mvnw -Dchangelist= --batch-mode verify -DstagingDirectory="${GITHUB_WORKSPACE}/target/latest" site:site site:stage | |
- name: Build and deploy new release | |
if: env.DEPLOY_RELEASE == 'true' | |
env: | |
MAVEN_SERVER_USERNAME: ${{ secrets.MAVEN_SERVER_USERNAME }} | |
MAVEN_SERVER_PASSWORD: ${{ secrets.MAVEN_SERVER_PASSWORD }} | |
run: | | |
./mvnw -Dchangelist= --batch-mode deploy -DstagingDirectory="${GITHUB_WORKSPACE}/target/latest" site:site site:stage | |
test -d "${GITHUB_WORKSPACE}/target/latest" | |
rm -rf -- "${GITHUB_WORKSPACE}/target/${MAVEN_POM_REVISION_VERSION}" || : | |
cp --recursive --verbose -- "${GITHUB_WORKSPACE}/target/latest" "${GITHUB_WORKSPACE}/target/${MAVEN_POM_REVISION_VERSION}" | |
- name: Create new git tag | |
if: env.DEPLOY_RELEASE == 'true' | |
uses: rickstaa/action-create-tag@v1 | |
with: | |
tag: ${{ env.MAVEN_POM_REVISION_VERSION }} | |
message: Release ${{ env.MAVEN_POM_REVISION_VERSION }} | |
- name: Set version output | |
id: set-version | |
if: env.DEPLOY_RELEASE == 'true' | |
run: echo "release-version=${MAVEN_POM_REVISION_VERSION}" >> $GITHUB_OUTPUT | |
- name: Authenticate with Google Cloud | |
uses: google-github-actions/auth@v2 | |
with: | |
credentials_json: ${{ secrets.CLOUDBUILD_COMMON_GCP_KEY }} | |
- name: Upload latest JavaDoc copy to Google Cloud Storage | |
uses: google-github-actions/upload-cloud-storage@v2 | |
with: | |
path: target/latest | |
destination: resilient-reload-javadoc/${{ inputs.javadoc-project-name || 'MavenSetup' }} | |
process_gcloudignore: false | |
- name: Upload versioned JavaDoc to Google Cloud Storage | |
if: env.DEPLOY_RELEASE == 'true' | |
uses: google-github-actions/upload-cloud-storage@v2 | |
with: | |
path: target/${{ env.MAVEN_POM_REVISION_VERSION }} | |
destination: resilient-reload-javadoc/${{ inputs.javadoc-project-name || 'MavenSetup' }} | |
process_gcloudignore: false |