Skip to content

Fix sonarqube fails 2 #208

Fix sonarqube fails 2

Fix sonarqube fails 2 #208

Workflow file for this run

on:
push:
branches:
- '**'
create:
tags:
- '*'
env:
MAVEN_CLI_OPTS: "--batch-mode --update-snapshots"
JAVA_JDKVERSION_TAG: "jdk-11"
SET_VERSION: |
ARTIFACT_ID=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.artifactId}' --non-recursive exec:exec);
echo "ARTIFACT_ID=$ARTIFACT_ID" >> $GITHUB_ENV;
jobs:
###################### Setup ######################
setup:
runs-on: ubuntu-latest
container: maven:3.6-adoptopenjdk-11
defaults:
run:
shell: bash
steps:
- run: export
- uses: actions/checkout@v2
- name: set ARTIFACT_ID
run: |
ARTIFACT_ID=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.artifactId}' --non-recursive exec:exec);
echo "ARTIFACT_ID=$ARTIFACT_ID" >> $GITHUB_ENV;
- name: set RELEASE version
run: |
ARTIFACT_VERSION=${GITHUB_REF/refs\/tags\//}-$JAVA_JDKVERSION_TAG;
echo ARTIFACT_VERSION=$ARTIFACT_VERSION >> $GITHUB_ENV;
echo ARTIFACT_FULLNAME=$ARTIFACT_ID-$ARTIFACT_VERSION >> $GITHUB_ENV;
if: startsWith(github.ref, 'refs/tags/')
- name: set SNAPSHOT version
run: |
ARTIFACT_VERSION=$(mvn -q -Dexec.executable=echo -Dexec.args='${project.version}' --non-recursive exec:exec);
echo ARTIFACT_VERSION=$ARTIFACT_VERSION >> $GITHUB_ENV;
echo ARTIFACT_FULLNAME=$ARTIFACT_ID-$ARTIFACT_VERSION >> $GITHUB_ENV;
if: startsWith(github.ref, 'refs/heads/')
- name: set ARTIFACT_FULLNAME
run: |
echo "echo ARTIFACT_ID=${ARTIFACT_ID} >> \$GITHUB_ENV" >> dot.env
echo "echo ARTIFACT_VERSION=${ARTIFACT_VERSION} >> \$GITHUB_ENV" >> dot.env
echo "echo ARTIFACT_FULLNAME=${ARTIFACT_FULLNAME} >> \$GITHUB_ENV" >> dot.env
- run: export
- name: Upload setupfile
uses: actions/upload-artifact@v2
with:
name: setup
path: dot.env
if-no-files-found: error
retention-days: 1
###################### Test / Build ######################
build_jdk11:
runs-on: ubuntu-latest
needs:
- setup
container: maven:3.6-adoptopenjdk-11
steps:
- uses: actions/checkout@v2
- name: Cache Maven packages
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Download dot.env
uses: actions/download-artifact@v2
with:
name: setup
- run: bash dot.env
- run: mvn versions:set -DnewVersion=$ARTIFACT_VERSION
- run: mvn $MAVEN_CLI_OPTS clean package -Dmaven.test.skip=true
- name: Upload build artifact for assembly
uses: actions/upload-artifact@v2
with:
name: build_jdk11
path: target/*.jar
if-no-files-found: error
retention-days: 5
test_jdk11:
runs-on: ubuntu-latest
needs:
- setup
container: maven:3.6-adoptopenjdk-11
steps:
- uses: actions/checkout@v2
- name: Cache Maven packages
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Download dot.env
uses: actions/download-artifact@v2
with:
name: setup
- run: bash dot.env
- run: mvn versions:set -DnewVersion=$ARTIFACT_VERSION
- run: mvn $MAVEN_CLI_OPTS clean org.jacoco:jacoco-maven-plugin:prepare-agent test jacoco:report
- run: awk -F"," '{ instructions += $4 + $5; covered += $5 } END { print covered, "/", instructions, " instructions covered"; print 100*covered/instructions, "% covered" }' target/site/jacoco/jacoco.csv
- run: bash <(curl -Ls https://coverage.codacy.com/get.sh) report
shell: bash
env:
CODACY_PROJECT_TOKEN: ${{ secrets.CODACY_PROJECT_TOKEN }}
###################### Deploy ######################
publish_jdk11:
runs-on: ubuntu-latest
needs:
- test_jdk11
- build_jdk11
container: maven:3.6-adoptopenjdk-11
steps:
- uses: actions/checkout@v2
- name: Cache Maven packages
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Download dot.env
uses: actions/download-artifact@v2
with:
name: setup
- run: bash dot.env
- run: mvn versions:set -DnewVersion=$ARTIFACT_VERSION
- run: apt update && apt -y install gnupg
- name: generate key
run: gpg --batch --import <(echo "$GPG_PRIVATE_KEY_ENCODED" | base64 -d)
shell: bash
env:
GPG_PRIVATE_KEY_ENCODED: ${{ secrets.GPG_PRIVATE_KEY_ENCODED }}
- name: Publish package
run: mvn -s .m2/settings.xml clean deploy -P release -Dmaven.test.skip=true -Dmaven.install.skip=true
env:
OSSRH_USERTOKEN: ${{ secrets.OSSRH_USERTOKEN }}
OSSRH_USERTOKEN_KEY: ${{ secrets.OSSRH_USERTOKEN_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
###################### Release ######################
release_jdk11:
runs-on: ubuntu-latest
needs:
- test_jdk11
- build_jdk11
if: startsWith(github.ref, 'refs/tags/')
container: maven:3.6-adoptopenjdk-11
steps:
- uses: actions/checkout@v2
- name: Download dot.env
uses: actions/download-artifact@v2
with:
name: setup
- run: bash dot.env
- name: Cache Maven packages
uses: actions/cache@v2
with:
path: ~/.m2
key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-m2
- name: Download build_jdk11 for assembly
uses: actions/download-artifact@v2
with:
name: build_jdk11
path: target
- run: mvn versions:set -DnewVersion=$ARTIFACT_VERSION
- name: check content of target
run: cd target && ls
- run: mvn $MAVEN_CLI_OPTS site:site assembly:single -Dmaven.test.skip=true
- name: Create Release
id: create_release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release ${{ env.ARTIFACT_VERSION }}
body: |
Changes in this Release
- First Change
- Second Change
draft: true
prerelease: false
- name: Upload zip Release Asset
id: upload-release-asset-zip
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: target/${{ env.ARTIFACT_FULLNAME }}-dist.zip
asset_name: ${{ env.ARTIFACT_FULLNAME }}-dist.zip
asset_content_type: application/zip
- name: Upload tar.gz Release Asset
id: upload-release-asset-tar
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: target/${{ env.ARTIFACT_FULLNAME }}-dist.tar.gz
asset_name: ${{ env.ARTIFACT_FULLNAME }}-dist.tar.gz
asset_content_type: application/zip