99 build :
1010 name : Publish Release
1111 runs-on : ubuntu-latest
12+ env :
13+ PKGCLD_REPO_URL : ${{ vars.PKGCLD_REPO_URL }}
1214 steps :
1315 - name : Checkout code
1416 uses : actions/checkout@v4
@@ -33,10 +35,36 @@ jobs:
3335 build/libs/puppet-apply-step-${{ steps.get_version.outputs.VERSION }}.zip
3436 env :
3537 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
36- - name : Publish to Maven Central
37- run : ./gradlew -PsigningKey=${SIGNING_KEY_B64} -PsigningPassword=${SIGNING_PASSWORD} -PsonatypeUsername=${SONATYPE_USERNAME} -PsonatypePassword=${SONATYPE_PASSWORD} publishToSonatype closeAndReleaseSonatypeStagingRepository
38+ - name : Publish to PackageCloud
39+ run : |
40+ if [ -z "$PKGCLD_WRITE_TOKEN" ]; then
41+ echo "::error::PKGCLD_WRITE_TOKEN must be set to publish to PackageCloud"
42+ exit 1
43+ fi
44+ ./gradlew publishAllPublicationsToPackageCloudRepository
45+ env :
46+ PKGCLD_WRITE_TOKEN : ${{ secrets.PKGCLD_WRITE_TOKEN }}
47+ - name : Sign and upload GPG signatures to PackageCloud
48+ run : |
49+ set -e
50+ VERSION="${{ steps.get_version.outputs.VERSION }}"
51+ BASE_URL="${PKGCLD_REPO_URL:-https://packagecloud.io/pagerduty/rundeck-plugins/maven2}/org/rundeck/plugins/puppet-apply-step/${VERSION}"
52+
53+ echo "$SIGNING_KEY_B64" | base64 -d | gpg --batch --yes --import
54+ KEY_ID=$(gpg --list-secret-keys --with-colons | awk -F: '/^sec/ {print $5; exit}')
55+
56+ sign_and_upload() {
57+ local FILE="$1"
58+ local REMOTE_NAME="$2"
59+ gpg --batch --yes --pinentry-mode loopback --passphrase "$SIGNING_PASSWORD" --default-key "$KEY_ID" --detach-sign --armor "$FILE"
60+ curl -sf -H "Authorization: Bearer ${PKGCLD_WRITE_TOKEN}" \
61+ -X PUT --data-binary "@${FILE}.asc" \
62+ "${BASE_URL}/${REMOTE_NAME}.asc"
63+ }
64+
65+ sign_and_upload "build/libs/puppet-apply-step-${VERSION}.zip" "puppet-apply-step-${VERSION}.jar"
66+ sign_and_upload "build/publications/mavenZip/pom-default.xml" "puppet-apply-step-${VERSION}.pom"
3867 env :
39- SONATYPE_USERNAME : ${{ secrets.SONATYPE_USERNAME }}
40- SONATYPE_PASSWORD : ${{ secrets.SONATYPE_PASSWORD }}
4168 SIGNING_KEY_B64 : ${{ secrets.SIGNING_KEY_B64 }}
4269 SIGNING_PASSWORD : ${{ secrets.SIGNING_PASSWORD }}
70+ PKGCLD_WRITE_TOKEN : ${{ secrets.PKGCLD_WRITE_TOKEN }}
0 commit comments