# 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: [created] jobs: build: name: Build and Publish runs-on: ubuntu-latest permissions: contents: read packages: write steps: - uses: actions/checkout@v4 - name: Restore gradle.properties env: GRADLE_PROPERTIES: ${{ secrets.GRADLE_PROPERTIES }} shell: bash run: | mkdir -p ~/.gradle/ echo "::set-env name=GRADLE_USER_HOME::$HOME/.gradle" echo ${GRADLE_PROPERTIES} > ~/.gradle/gradle.properties - name: Restore gpg secret ring file env: GPG_SECRET_KEY_RING: ${{ secrets.GPG_SECRET_KEY_RING }} shell: bash run: | mkdir -p ~/.gnupg/ echo ${GPG_SECRET_KEY_RING} > ~/.gnupg/42CBCB82.gpg - name: Set up JDK 17 uses: actions/setup-java@v4 with: java-version: '17' distribution: 'corretto' server-id: github # Value of the distributionManagement/repository/id field of the pom.xml settings-path: ${{ github.workspace }} # location for the settings.xml file - name: Setup Gradle uses: gradle/actions/setup-gradle@417ae3ccd767c252f5661f1ace9f835f9654f2b5 # v3.1.0 - name: Grant Execution Authority to Gradlew run: chmod +x ./gradlew - name: Build with Gradle run: ./gradlew build # The USERNAME and TOKEN need to correspond to the credentials environment variables used in # the publishing section of your build.gradle - name: Publish to GitHub Packages run: ./gradlew publishAllPublicationsToGithubPackagesRepository env: USERNAME: ${{ github.actor }} TOKEN: ${{ secrets.GITHUB_TOKEN }}