diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 7ddf7bee6..1b6e3022c 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -21,23 +21,24 @@ jobs: - name: Import GPG Key run: | - mkdir -p $HOME/.gnupg - echo "${{ secrets.GPG_PRIVATE_KEY }}" | base64 -d | gpg --batch --import - gpg --list-secret-keys - echo "GPG key imported successfully" + echo "${{ secrets.GPG_PRIVATE_KEY }}" | base64 -d > private.gpg + gpg --batch --import private.gpg + rm private.gpg - name: Build - run: ./gradlew clean build --info --build-cache + run: ./gradlew clean build env: ORG_GRADLE_PROJECT_SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} ORG_GRADLE_PROJECT_SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} + ORG_GRADLE_PROJECT_SIGNING_SECRET_KEY_RING_FILE: ~/.gnupg/secring.gpg ORG_GRADLE_PROJECT_NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} ORG_GRADLE_PROJECT_NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} - name: Publish to Maven Central - run: ./gradlew uploadArchives --info --build-cache + run: ./gradlew uploadArchives env: ORG_GRADLE_PROJECT_SIGNING_KEY_ID: ${{ secrets.SIGNING_KEY_ID }} ORG_GRADLE_PROJECT_SIGNING_PASSWORD: ${{ secrets.SIGNING_PASSWORD }} + ORG_GRADLE_PROJECT_SIGNING_SECRET_KEY_RING_FILE: ~/.gnupg/secring.gpg ORG_GRADLE_PROJECT_NEXUS_USERNAME: ${{ secrets.NEXUS_USERNAME }} ORG_GRADLE_PROJECT_NEXUS_PASSWORD: ${{ secrets.NEXUS_PASSWORD }} \ No newline at end of file diff --git a/maven-push.gradle b/maven-push.gradle index df2fa0b59..1ed8bda2b 100644 --- a/maven-push.gradle +++ b/maven-push.gradle @@ -17,6 +17,9 @@ apply plugin: 'maven-publish' apply plugin: 'signing' +Properties properties = new Properties() +properties.load(project.rootProject.file('local.properties').newDataInputStream()) + def isReleaseBuild() { return libraryVersion.contains("SNAPSHOT") == false } @@ -39,24 +42,15 @@ def getRepositoryPassword() { return hasProperty('NEXUS_PASSWORD') ? NEXUS_PASSWORD : "" } -def keyID = System.getenv('ORG_GRADLE_PROJECT_SIGNING_KEY_ID') -def signing_password = System.getenv('ORG_GRADLE_PROJECT_SIGNING_PASSWORD') -def nexus_username = System.getenv('ORG_GRADLE_PROJECT_NEXUS_USERNAME') -def nexus_password = System.getenv('ORG_GRADLE_PROJECT_NEXUS_PASSWORD') - -println "Debug: Using GPG key ID: ${keyID}" +def keyID = properties.getProperty("signing.keyId") +def signing_password = properties.getProperty("signing.password") +def keyRingLocation = properties.getProperty("signing.secretKeyRingFile") +def nexus_username = properties.getProperty("NEXUS_USERNAME") +def nexus_password = properties.getProperty("NEXUS_PASSWORD") -// Custom task to sign files with GPG -tasks.register('signWithGPG') { - doLast { - def files = fileTree(dir: "${buildDir}/libs", include: '**/*.jar') - files.each { file -> - exec { - commandLine 'gpg', '--batch', '--yes', '--passphrase', signing_password, '--local-user', keyID, '--sign', file - } - } - } -} +ext."signing.keyId" = keyID +ext."signing.secretKeyRingFile" = keyRingLocation +ext."signing.password" = signing_password publishing { publications { @@ -110,14 +104,13 @@ publishing { } } -// Disable the default signing signing { - required { false } + required { isReleaseBuild() } + sign publishing.publications.release } tasks.register('uploadArchives') { dependsOn publishReleasePublicationToOSSRHRepository - dependsOn signWithGPG } tasks.register('androidSourcesJar', Jar) {