Setup Github Workflow
Signed-off-by: Puneet Behl <behlp@objectcomputing.com>
diff --git a/.github/dependabot.yml b/.github/dependabot.yml
new file mode 100644
index 0000000..9b2d7bf
--- /dev/null
+++ b/.github/dependabot.yml
@@ -0,0 +1,10 @@
+version: 2
+updates:
+- package-ecosystem: gradle
+ directory: "/"
+ schedule:
+ interval: daily
+ open-pull-requests-limit: 10
+ target-branch: main
+ labels:
+ - "type: dependency upgrade"
diff --git a/.github/release-drafter.yml b/.github/release-drafter.yml
new file mode 100644
index 0000000..c049edc
--- /dev/null
+++ b/.github/release-drafter.yml
@@ -0,0 +1,37 @@
+name-template: $NEXT_PATCH_VERSION
+tag-template: v$NEXT_PATCH_VERSION
+version-resolver:
+ major:
+ labels:
+ - 'type: major'
+ minor:
+ labels:
+ - 'type: minor'
+ patch:
+ labels:
+ - 'type: patch'
+ default: patch
+categories:
+ - title: 🚀 Features
+ labels:
+ - "type: enhancement"
+ - "type: new feature"
+ - "type: major"
+ - title: 🚀 Bug Fixes/Improvements
+ labels:
+ - "type: improvement"
+ - "type: bug"
+ - "type: minor"
+ - title: 🛠Dependency upgrades
+ labels:
+ - "type: dependency upgrade"
+ - "dependencies"
+change-template: '- $TITLE @$AUTHOR (#$NUMBER)'
+template: |
+ ## Changes
+
+ $CHANGES
+
+ ## Contributors
+
+ $CONTRIBUTORS
diff --git a/.github/workflows/gradle.yml b/.github/workflows/gradle.yml
new file mode 100644
index 0000000..6757df9
--- /dev/null
+++ b/.github/workflows/gradle.yml
@@ -0,0 +1,41 @@
+name: Java CI
+on:
+ push:
+ branches:
+ - 2.0.x
+ - main
+ pull_request:
+ branches:
+ - 2.0.x
+ - main
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ java: ['8']
+ env:
+ WORKSPACE: ${{ github.workspace }}
+ GRADLE_OPTS: -Xmx1500m -Dfile.encoding=UTF-8
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/cache@v2
+ with:
+ path: ~/.gradle/caches
+ key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle') }}
+ restore-keys: |
+ ${{ runner.os }}-gradle-
+ - name: Set up JDK
+ uses: actions/setup-java@v1
+ with:
+ java-version: ${{ matrix.java }}
+ - name: Run Assemble
+ if: success() && github.event_name == 'push' && matrix.java == '8'
+ run: ./gradlew assemble
+ - name: Publish to repo.grails.org
+ if: success() && github.event_name == 'push' && matrix.java == '8'
+ env:
+ ARTIFACTORY_USERNAME: ${{ secrets.ARTIFACTORY_USERNAME }}
+ ARTIFACTORY_PASSWORD: ${{ secrets.ARTIFACTORY_PASSWORD }}
+ run: |
+ ./gradlew publish
diff --git a/.github/workflows/release-notes.yml b/.github/workflows/release-notes.yml
new file mode 100644
index 0000000..f762177
--- /dev/null
+++ b/.github/workflows/release-notes.yml
@@ -0,0 +1,46 @@
+name: Changelog
+on:
+ issues:
+ types: [closed,reopened]
+ push:
+ branches:
+ - main
+ workflow_dispatch:
+jobs:
+ release_notes:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Check if it has release drafter config file
+ id: check_release_drafter
+ run: |
+ has_release_drafter=$([ -f .github/release-drafter.yml ] && echo "true" || echo "false")
+ echo ::set-output name=has_release_drafter::${has_release_drafter}
+
+ # If it has release drafter:
+ - uses: release-drafter/release-drafter@v5.15.0
+ if: steps.check_release_drafter.outputs.has_release_drafter == 'true'
+ env:
+ GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
+ with:
+ prerelease: false
+ commitish: main
+ # Otherwise:
+ - name: Export Gradle Properties
+ if: steps.check_release_drafter.outputs.has_release_drafter == 'false'
+ uses: micronaut-projects/github-actions/export-gradle-properties@master
+ - uses: micronaut-projects/github-actions/release-notes@master
+ if: steps.check_release_drafter.outputs.has_release_drafter == 'false'
+ id: release_notes
+ with:
+ token: ${{ secrets.GH_TOKEN }}
+ - uses: ncipollo/release-action@v1
+ if: steps.check_release_drafter.outputs.has_release_drafter == 'false' && steps.release_notes.outputs.generated_changelog == 'true'
+ with:
+ allowUpdates: true
+ commit: ${{ steps.release_notes.outputs.current_branch }}
+ draft: true
+ name: ${{ env.title }} ${{ steps.release_notes.outputs.next_version }}
+ tag: v${{ steps.release_notes.outputs.next_version }}
+ bodyFile: CHANGELOG.md
+ token: ${{ secrets.GH_TOKEN }}
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
new file mode 100644
index 0000000..53d68bc
--- /dev/null
+++ b/.github/workflows/release.yml
@@ -0,0 +1,72 @@
+name: Release
+on:
+ release:
+ types: [published]
+jobs:
+ release:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ java: ['8']
+ env:
+ GIT_USER_NAME: puneetbehl
+ GIT_USER_EMAIL: behlp@objectcomputing.com
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v2
+ with:
+ token: ${{ secrets.GH_TOKEN }}
+ - uses: gradle/wrapper-validation-action@v1
+ - name: Set up JDK
+ uses: actions/setup-java@v1
+ with:
+ java-version: ${{ matrix.java }}
+ - name: Extract Target Branch
+ id: extract_branch
+ run: |
+ echo "Determining Target Branch"
+ TARGET_BRANCH=`cat $GITHUB_EVENT_PATH | jq '.release.target_commitish' | sed -e 's/^"\(.*\)"$/\1/g'`
+ echo $TARGET_BRANCH
+ echo ::set-output name=value::${TARGET_BRANCH}
+ - name: Set the current release version
+ id: release_version
+ run: echo ::set-output name=release_version::${GITHUB_REF:11}
+ - name: Run pre-release
+ uses: micronaut-projects/github-actions/pre-release@master
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ - name: Publish to Sonatype OSSRH
+ env:
+ SONATYPE_USERNAME: ${{ secrets.SONATYPE_USERNAME }}
+ SONATYPE_PASSWORD: ${{ secrets.SONATYPE_PASSWORD }}
+ SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}
+ SIGNING_KEY: ${{ secrets.SIGNING_KEY }}
+ SIGNING_PASSPHRASE: ${{ secrets.SIGNING_PASSPHRASE }}
+ SECRING_FILE: ${{ secrets.SECRING_FILE }}
+ run: |
+ echo $SECRING_FILE | base64 -d > secring.gpg
+ echo "Publishing Artifacts"
+ (set -x; ./gradlew -Psigning.secretKeyRingFile="${GITHUB_WORKSPACE}/secring.gpg" publishToSonatype closeAndReleaseSonatypeStagingRepository --no-daemon)
+ (set -x; ./gradlew assemble --no-daemon)
+ - name: Export Gradle Properties
+ uses: micronaut-projects/github-actions/export-gradle-properties@master
+ - name: Publish to Github Pages
+ if: success()
+ uses: micronaut-projects/github-pages-deploy-action@master
+ env:
+ BETA: ${{ contains(steps.release_version.outputs.release_version, 'M') || contains(steps.release_version.outputs.release_version, 'RC') }}
+ TARGET_REPOSITORY: ${{ github.repository }}
+ GH_TOKEN: ${{ secrets.GH_TOKEN }}
+ BRANCH: gh-pages
+ FOLDER: build/docs
+ DOC_FOLDER: gh-pages
+ COMMIT_EMAIL: behlp@objectcomputing.com
+ COMMIT_NAME: Puneet Behl
+ VERSION: ${{ steps.release_version.outputs.release_version }}
+ - name: Run post-release
+ if: success()
+ uses: micronaut-projects/github-actions/post-release@master
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ env:
+ SNAPSHOT_SUFFIX: -SNAPSHOT