# This workflow uses actions that are not certified by GitHub. # They are provided by a third-party and are governed by # separate terms of service, privacy policy, and support # documentation. # This workflow will build a package using Gradle and then publish it to GitHub packages when a release is created # For more information see: https://github.com/actions/setup-java/blob/main/docs/advanced-usage.md#Publishing-using-gradle name: Publish Packages to GitHub Packages with Gradle on: release: types: - published jobs: build: name: Build and Publish runs-on: ubuntu-latest permissions: contents: read packages: write steps: - name: Checkout uses: actions/checkout@v4.2.2 - name: Setup GPG TTY run: export GPG_TTY=$(tty) - name: Import PGP Private Key uses: crazy-max/ghaction-import-gpg@v6.3.0 with: gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }} passphrase: ${{ secrets.GPG_PASSPHRASE }} trust_level: 5 - name: Creating PGP Ring Key run: | mkdir -p ~/.gnupg echo ${{ secrets.GPG_PASSPHRASE }} | gpg --batch --yes --pinentry-mode loopback --passphrase-fd 0 --export-secret-keys -o ~/.gnupg/gpg_key.ring - name: Restore gradle.properties env: GRADLE_PROPERTIES: ${{ secrets.GRADLE_PROPERTIES }} shell: bash run: | mkdir -p ~/.gradle/ echo "GRADLE_USER_HOME=${HOME}/.gradle" >> $GITHUB_ENV echo "${GRADLE_PROPERTIES}" > ~/.gradle/gradle.properties - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: "17" distribution: "corretto" - name: Setup Gradle uses: gradle/actions/setup-gradle@v4.4.1 - name: Grant Execution Authority to Gradlew run: chmod +x ./gradlew - name: Build with Gradle # Overwrite artefactVersion with tag name run: ./gradlew build -PartefactVersion=${{ github.event.release.tag_name }} - name: List Output Items run: ls -l ./**/build/libs - name: Publish to Maven Central run: ./gradlew publish - name: Create Deployment on Central Publisher Portal run: | curl --fail -X 'POST' \ 'https://ossrh-staging-api.central.sonatype.com/manual/upload/defaultRepository/com.onixbyte?publishing_type=user_managed' \ -H 'accept: */*' \ -H 'Authorization: Bearer ${{ secrets.MAVEN_PORTAL_TOKEN }}' \ -d ''