From 6ca76d1d79dd5d8c4d93835375a295f560b6f691 Mon Sep 17 00:00:00 2001 From: Flossy Date: Mon, 2 Sep 2024 12:12:14 -0400 Subject: [PATCH] Resolves #10 - use github action to automatically bump version, use latest dependencies, push to packagecloud.io and push out changes --- .github/workflows/main.yml | 85 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 .github/workflows/main.yml diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml new file mode 100644 index 0000000..47450aa --- /dev/null +++ b/.github/workflows/main.yml @@ -0,0 +1,85 @@ +name: CD-CI + +on: + push: + branches: [ main ] + +jobs: + build: + if: github.event_name == 'push' && github.ref == 'refs/heads/main' && github.event.pusher.email != 'version-bump@solenopsis.org' + runs-on: ubuntu-latest + + steps: + - name: Updating runner + run: sudo apt-get update + + - name: Setup JDK 17 + uses: actions/setup-java@v4 + with: + distribution: 'temurin' + java-version: '17' + + - name: Checkout + uses: actions/checkout@v2 + + - name: Preparing settings.xml + uses: s4u/maven-settings-action@v3.0.0 + with: + githubServer: false + servers: | + [ + { + "id": "packagecloud-solenopsis", + "configuration": { + "httpHeaders": { + "property": { + "name": "Authorization", + "value": "Bearer ${{ secrets.PACKAGECLOUD_TOKEN }}" + } + } + } + } + ] + + - name: Setup .gitconfig for version bumps + uses: oleksiyrudenko/gha-git-credentials@latest + with: + global: true + name: 'Version Bump' + email: 'version-bump@solenopsis.org' + actor: 'VersionBump' + token: '${{ secrets.GITHUB_TOKEN }}' + + - name: Preparing settings.xml + uses: s4u/maven-settings-action@v3.0.0 + with: + githubServer: false + servers: | + [ + { + "id": "packagecloud-solenopsis", + "configuration": { + "httpHeaders": { + "property": { + "name": "Authorization", + "value": "Bearer ${{ secrets.PACKAGECLOUD_TOKEN }}" + } + } + } + } + ] + + - name: Incrementing pom.xml version + run: "mvn -U build-helper:parse-version versions:set -DnewVersion=\\${parsedVersion.majorVersion}.\\${parsedVersion.nextMinorVersion} versions:commit" + + - name: Ensure latests depenendencies in pom.xml + run: "mvn -Dincludes='org.apache.commons:*, org.apache.cxf:*, org.flossware:*, org.junit.jupiter:*' -DgenerateBackupPoms=false versions:update-properties" + + - name: Building + run: "mvn -U clean install" + + - name: Deploy to packagecloud.io + run: "mvn -DskipTests deploy" + + - name: Checkin and tag to github + run: "mvn scm:checkin scm:tag" \ No newline at end of file