Java SDK Build & Release JDK21 #7
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: Java SDK Build & Release JDK21 | |
on: | |
repository_dispatch: | |
types: [tag-push] | |
workflow_dispatch: | |
inputs: | |
tag: | |
description: 'source tag' | |
required: true | |
type: string | |
env: | |
GITHUB_ACTOR: ${{ github.actor }} | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GITHUB_REPOSITORY: ${{ github.repository }} | |
jobs: | |
validation: | |
name: "gradle-wrapper-validation" | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
- uses: gradle/actions/wrapper-validation@v3 | |
tagging: | |
runs-on: ubuntu-latest | |
outputs: | |
tag: ${{ steps.set_tag.outputs.tag }} | |
version: ${{ steps.set_tag.outputs.version }} | |
prerelease: ${{ steps.set_tag.outputs.prerelease }} | |
steps: | |
- name: Use the tag from the event | |
id: set_tag | |
run: | | |
TAG="${{ inputs.tag || github.event.client_payload.tag }}" | |
VERSION=${TAG#v} | |
echo "TAG from event: ${TAG}" | |
echo "tag=${TAG}" >> $GITHUB_OUTPUT | |
echo "version=${VERSION}" >> $GITHUB_OUTPUT | |
if [[ "${TAG}" == *-* ]]; then | |
echo "prerelease=true" >> $GITHUB_OUTPUT | |
else | |
echo "prerelease=false" >> $GITHUB_OUTPUT | |
publish: | |
needs: | |
- validation | |
- tagging | |
runs-on: ubuntu-latest | |
env: | |
ORG_GRADLE_PROJECT_mavenCentralUsername: ${{ secrets.ORG_GRADLE_PROJECT_mavenCentralUsername }} | |
ORG_GRADLE_PROJECT_mavenCentralPassword: ${{ secrets.ORG_GRADLE_PROJECT_mavenCentralPassword }} | |
ORG_GRADLE_PROJECT_signingInMemoryKeyId: ${{ secrets.ORG_GRADLE_PROJECT_signingInMemoryKeyId }} | |
ORG_GRADLE_PROJECT_signingInMemoryKeyPassword: ${{ secrets.ORG_GRADLE_PROJECT_signingInMemoryKeyPassword }} | |
ORG_GRADLE_PROJECT_signingInMemoryKey: ${{ secrets.ORG_GRADLE_PROJECT_signingInMemoryKey }} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Checkout proto repository | |
run: | | |
git clone https://github.com/KodyPay/kp-protocols-clientsdk.git proto-repo | |
mv proto-repo/src . | |
rm -r proto-repo | |
- name: Set up JDK 21 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '21' | |
distribution: 'adopt' | |
- name: Setup & Build Gradle | |
uses: gradle/actions/setup-gradle@v3 | |
with: | |
arguments: build -s --scan -Pversion=${{ needs.tagging.outputs.version }} | |
- name: Setup git config | |
run: | | |
echo "Setting up Git user information" | |
git config --global user.name "${{github.actor}}" | |
git config --global user.email "<>" | |
- name: Sanity check | |
run: | | |
echo "This is a prerelease: ${{ needs.tagging.outputs.prerelease }}" | |
- name: Publish candidate | |
if: ${{ needs.tagging.outputs.prerelease }} | |
run: ./gradlew candidate -Prelease.version=${{ needs.tagging.outputs.version }} -s | |
- name: Publish release | |
if: ${{ !needs.tagging.outputs.prerelease }} | |
run: ./gradlew final -Prelease.version=${{ needs.tagging.outputs.version }} -s | |
release: | |
needs: | |
- tagging | |
- publish | |
runs-on: ubuntu-latest | |
steps: | |
- name: Create Release | |
uses: ncipollo/[email protected] | |
with: | |
name: "${{ needs.tagging.outputs.tag }}" | |
tag: "${{ needs.tagging.outputs.tag }}" | |
omitBody: true | |
draft: false | |
prerelease: ${{ needs.tagging.outputs.prerelease }} | |
makeLatest: ${{ !needs.tagging.outputs.prerelease }} |