diff --git a/.github/workflows/maven-release.yml b/.github/workflows/maven-release.yml new file mode 100644 index 0000000..e860ea8 --- /dev/null +++ b/.github/workflows/maven-release.yml @@ -0,0 +1,57 @@ +name: Maven release + +on: + workflow_dispatch: + inputs: + version-core: + description: 'Major, Minor or Patch release' + type: choice + required: true + default: 'minor' + options: + - "major" + - "minor" + - "patch" + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + + - name: Import Secrets + uses: hashicorp/vault-action@v2.3.0 + with: + url: ${{ secrets.VAULT_ADDR }} + token: ${{ secrets.CI_SECRET_READER_PERIODIC_TOKEN }} + caCertificate: ${{ secrets.VAULTCA }} + secrets: | + ci/data/gh-workflows/maven-danubetech-nexus username | MAVEN_USERNAME ; + ci/data/gh-workflows/maven-danubetech-nexus password | MAVEN_PASSWORD ; + ci/data/gh-workflows/maven-release-workflow token | TOKEN + + - name: Release to Danubetech Nexus + uses: BernhardFuchs/docker-maven-release@use-dynamic-input + with: + release-branch-name: main + maven-repo-server-id: danubetech-maven-releases + maven-repo-server-username: ${{ env.MAVEN_USERNAME }} + maven-repo-server-password: ${{ env.MAVEN_PASSWORD }} + access-token: ${{ env.TOKEN }} + version-core: ${{ github.event.inputs.version-core }} + maven-development-version-format-minor: ${parsedVersion.majorVersion}.${parsedVersion.nextMinorVersion}-SNAPSHOT + maven-development-version-format-major: ${parsedVersion.nextMajorVersion}.1-SNAPSHOT + maven-release-version-format-minor: ${parsedVersion.majorVersion}.${parsedVersion.minorVersion}.0 + maven-release-version-format-major: ${parsedVersion.nextMajorVersion}.0.0 + git-release-bot-name: "admin-bot" + git-release-bot-email: "admin@danubetech.com" + maven-args: "-Dmaven.javadoc.skip=true -DskipITs" + + - name: Slack notification + if: failure() + uses: 8398a7/action-slack@v3 + with: + status: ${{ job.status }} + fields: repo,commit,action,eventName,ref,workflow + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} diff --git a/.github/workflows/maven-snapshot.yml b/.github/workflows/maven-snapshot.yml new file mode 100644 index 0000000..bb4880d --- /dev/null +++ b/.github/workflows/maven-snapshot.yml @@ -0,0 +1,43 @@ +name: Maven snapshot + +on: + push: + paths-ignore: + - '.gitignore' + - 'README.md' + - 'LICENSE' + - 'docs' + branches: [main] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@master + - name: Import Secrets + uses: hashicorp/vault-action@v2.3.0 + with: + url: ${{ secrets.VAULT_ADDR }} + token: ${{ secrets.CI_SECRET_READER_PERIODIC_TOKEN }} + caCertificate: ${{ secrets.VAULTCA }} + secrets: | + ci/data/gh-workflows/maven-danubetech-nexus username | MAVEN_USERNAME ; + ci/data/gh-workflows/maven-danubetech-nexus password | MAVEN_PASSWORD + + - name: Run maven deploy action + uses: danubetech/github-action-maven-deploy@master + with: + server_id: danubetech-maven-snapshots + env: + MAVEN_USERNAME: ${{ env.MAVEN_USERNAME }} + MAVEN_PASSWORD: ${{ env.MAVEN_PASSWORD }} + + - name: Slack notification + if: failure() + uses: 8398a7/action-slack@v3 + with: + status: ${{ job.status }} + fields: repo,commit,action,eventName,ref,workflow + env: + SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}