name: Publish on: release: # We'll run this workflow when a new GitHub release is created types: [released] jobs: publish: name: Release build and publish runs-on: ubuntu-latest steps: - name: Check out code uses: actions/checkout@v3 - name: Set up JDK 17 uses: actions/setup-java@v2 with: java-version: 17 distribution: 'zulu' # Base64 decodes and pipes the GPG key content into the secret file - name: Prepare environment env: GPG_KEY_CONTENTS: ${{ secrets.GPG_KEY_CONTENTS }} SIGNING_SECRET_KEY_RING_FILE: ${{ secrets.SIGNING_SECRET_KEY_RING_FILE }} run: | git fetch --unshallow sudo bash -c "echo '$GPG_KEY_CONTENTS' | base64 -d > '$SIGNING_SECRET_KEY_RING_FILE'" # Builds the release artifacts of the library - name: Release build run: ./gradlew assembleRelease # Generates other artifacts - name: Source jar and dokka run: ./gradlew androidSourcesJar # Runs upload, and then closes & releases the repository - name: Publish to MavenCentral run: ./gradlew publishReleasePublicationToSonatypeRepository --max-workers 1 closeAndReleaseRepository env: OSSRH_USERNAME: ${{ secrets.OSSRH_USERNAME }} OSSRH_PASSWORD: ${{ secrets.OSSRH_PASSWORD }} SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} SIGNING_SECRET_KEY_RING_FILE: ${{ secrets.SIGNING_SECRET_KEY_RING_FILE }} SONATYPE_STAGING_PROFILE_ID: ${{ secrets.SONATYPE_STAGING_PROFILE_ID }}