Skip to content

Publish Authentikit Package #6

Publish Authentikit Package

Publish Authentikit Package #6

name: Publish Authentikit Package
on:
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Set up JDK 17
uses: actions/setup-java@v2
with:
distribution: 'adopt'
java-version: '17'
- name: Set up GPG
env:
GPG_PRIVATE_KEY: ${{ secrets.GPG_PRIVATE_KEY }}
GPG_PASSPHRASE: ${{ secrets.GPG_PASSPHRASE }}
GPG_KEY_ID: ${{ secrets.GPG_KEY_ID }}
run: |
echo "${GPG_PRIVATE_KEY}" | gpg --batch --import
echo "signing.gnupg.keyName=${GPG_KEY_ID}" >> gradle.properties
echo "signing.gnupg.passphrase=${GPG_PASSPHRASE}" >> gradle.properties
- name: Publish to Maven Central
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_TOKEN_ID }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
run: ./gradlew :authentikit:publish
- name: Wait for Staging Repository to be Created
run: sleep 60
- name: Install xmllint
run: sudo apt-get install -y libxml2-utils
- name: Get Staging Repository ID
id: get_repo_id
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_TOKEN_ID }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
run: |
response=$(curl -u ${{ secrets.OSSRH_USERNAME }}:${{ secrets.OSSRH_PASSWORD }} -X GET "https://s01.oss.sonatype.org/service/local/staging/profile_repositories")
echo "Response: $response"
repo_id=$(echo ${response} | xmllint --xpath "string(//stagingProfileRepository/repositoryId)" -)
echo "Repository ID: $repo_id"
echo "::set-output name=repo_id::$repo_id"
- name: Close and Release Repository
env:
OSSRH_USERNAME: ${{ secrets.OSSRH_TOKEN_ID }}
OSSRH_PASSWORD: ${{ secrets.OSSRH_TOKEN }}
OSSRH_PROFILE_ID: ${{ secrets.OSSRH_PROFILE_ID }}
run: |
repo_id=${{ steps.get_repo_id.outputs.repo_id }}
close_xml="
<promoteRequest>
<data>
<stagedRepositoryId>"${repo_id}"</stagedRepositoryId>
</data>
</promoteRequest>"
echo "Close XML: ${close_xml}"
curl -u ${OSSRH_USERNAME}:${OSSRH_PASSWORD} \
-X POST https://s01.oss.sonatype.org/service/local/staging/profiles/${OSSRH_PROFILE_ID}/finish \
-H "Content-Type: application/xml" \
-d "${close_xml}"
# Wait for repository to close
sleep 60
promote_xml="
<promoteRequest>
<data>
<stagedRepositoryId>"${repo_id}"</stagedRepositoryId>
</data>
</promoteRequest>"
echo "Promote XML: ${promote_xml}"
curl -u ${OSSRH_USERNAME}:${OSSRH_PASSWORD} \
-X POST https://s01.oss.sonatype.org/service/local/staging/profiles/${OSSRH_PROFILE_ID}/promote \
-H "Content-Type: application/xml" \
-d "${promote_xml}"