Skip to content

publish

publish #20

Workflow file for this run

name: Publish Passage Package
on:
repository_dispatch:
types: [publish]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
with:
ref: ${{ github.event.client_payload.ref }}
- 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 :passage: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 ${OSSRH_USERNAME}:${OSSRH_PASSWORD} -X GET "https://s01.oss.sonatype.org/service/local/staging/profile_repositories")
repo_id=$(echo ${response} | xmllint --xpath "string(//stagingProfileRepository/repositoryId)" -)
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}"