Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 7 additions & 6 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Copy link

Copilot AI Apr 3, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The environment variable ORG_GRADLE_PROJECT_SIGNING_SECRET_KEY_RING_FILE is set to ~/.gnupg/secring.gpg, but the new GPG import step does not create or ensure the existence of this file. Consider updating the GPG import process to either generate the expected key ring file or modifying the environment variable to match the actual file location.

Copilot uses AI. Check for mistakes.
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 }}
33 changes: 13 additions & 20 deletions maven-push.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -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
}
Expand All @@ -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 {
Expand Down Expand Up @@ -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) {
Expand Down
Loading