diff options
-rw-r--r-- | .github/workflows/deploy_library_releases.yml | 28 | ||||
-rw-r--r-- | buildSrc/src/main/java/PasswordStorePlugin.kt | 5 | ||||
-rw-r--r-- | buildSrc/src/main/java/SigningConfig.kt | 8 |
3 files changed, 21 insertions, 20 deletions
diff --git a/.github/workflows/deploy_library_releases.yml b/.github/workflows/deploy_library_releases.yml index f990adab..51297bdc 100644 --- a/.github/workflows/deploy_library_releases.yml +++ b/.github/workflows/deploy_library_releases.yml @@ -27,32 +27,20 @@ jobs: echo '::set-output name=PROJECT::autofill-parser' fi - - name: Setup secrets - run: | - # Using --batch doesn't prompt for a password for importing, which works - # out for us since we supply it to the Gradle plugin directly. - echo "${NEXUS_PUBLISH_GPG_KEY}" | base64 --decode | gpg --batch --import - - # Set environment variables - echo "SONATYPE_NEXUS_USERNAME=${NEXUS_PUBLISH_USERNAME}" >> $GITHUB_ENV - echo "SONATYPE_NEXUS_PASSWORD=${NEXUS_PUBLISH_PASSWORD}" >> $GITHUB_ENV - # The ORG_GRADLE_PROJECT_ prefixed properties are equivalent to ./gradlew -Pproperty.name=value - echo "ORG_GRADLE_PROJECT_signing.keyId=${NEXUS_PUBLISH_GPG_KEY_ID}" >> $GITHUB_ENV - echo "ORG_GRADLE_PROJECT_signing.password=${NEXUS_PUBLISH_GPG_KEY_PASSWORD}" >> $GITHUB_ENV - echo "ORG_GRADLE_PROJECT_signing.secretKeyRingFile=$HOME/.gnupg/secring.gpg" >> $GITHUB_ENV - env: - NEXUS_PUBLISH_GPG_KEY: ${{ secrets.NEXUS_PUBLISH_GPG_KEY }} - NEXUS_PUBLISH_USERNAME: ${{ secrets.NEXUS_PUBLISH_USERNAME }} - NEXUS_PUBLISH_PASSWORD: ${{ secrets.NEXUS_PUBLISH_PASSWORD }} - NEXUS_PUBLISH_GPG_KEY_ID: ${{ secrets.NEXUS_PUBLISH_GPG_KEY_ID }} - NEXUS_PUBLISH_GPG_KEY_PASSWORD: ${{ secrets.NEXUS_PUBLISH_GPG_KEY_PASSWORD }} - - name: Upload binaries uses: burrunan/gradle-cache-action@03c71a8ba93d670980695505f48f49daf43704a6 with: arguments: :${{ steps.task-select.outputs.PROJECT }}:uploadArchives + env: + SONATYPE_NEXUS_USERNAME: ${{ secrets.NEXUS_PUBLISH_USERNAME }} + SONATYPE_NEXUS_PASSWORD: ${{ secrets.NEXUS_PUBLISH_PASSWORD }} + ORG_GRADLE_PROJECT_signingKey: ${{ secrets.NEXUS_PUBLISH_GPG_KEY }} + ORG_GRADLE_PROJECT_signingPassword: ${{ secrets.NEXUS_PUBLISH_GPG_KEY_PASSWORD }} - name: Close and release repository uses: burrunan/gradle-cache-action@03c71a8ba93d670980695505f48f49daf43704a6 with: arguments: closeAndReleaseRepository + env: + SONATYPE_NEXUS_USERNAME: ${{ secrets.NEXUS_PUBLISH_USERNAME }} + SONATYPE_NEXUS_PASSWORD: ${{ secrets.NEXUS_PUBLISH_PASSWORD }} diff --git a/buildSrc/src/main/java/PasswordStorePlugin.kt b/buildSrc/src/main/java/PasswordStorePlugin.kt index c250d981..21496f8f 100644 --- a/buildSrc/src/main/java/PasswordStorePlugin.kt +++ b/buildSrc/src/main/java/PasswordStorePlugin.kt @@ -16,6 +16,8 @@ import org.gradle.api.plugins.JavaPlugin import org.gradle.api.tasks.compile.JavaCompile import org.gradle.kotlin.dsl.getByType import org.gradle.kotlin.dsl.withType +import org.gradle.plugins.signing.SigningExtension +import org.gradle.plugins.signing.SigningPlugin class PasswordStorePlugin : Plugin<Project> { @@ -45,6 +47,9 @@ class PasswordStorePlugin : Plugin<Project> { is KtfmtPlugin -> { project.extensions.getByType<KtfmtExtension>().configureKtfmt() } + is SigningPlugin -> { + project.extensions.getByType<SigningExtension>().configureBuildSigning() + } } } } diff --git a/buildSrc/src/main/java/SigningConfig.kt b/buildSrc/src/main/java/SigningConfig.kt index eaa7433c..aa612b35 100644 --- a/buildSrc/src/main/java/SigningConfig.kt +++ b/buildSrc/src/main/java/SigningConfig.kt @@ -6,6 +6,8 @@ import com.android.build.gradle.internal.dsl.BaseAppModuleExtension import java.util.Properties import org.gradle.api.Project +import org.gradle.kotlin.dsl.provideDelegate +import org.gradle.plugins.signing.SigningExtension private const val KEYSTORE_CONFIG_PATH = "keystore.properties" @@ -30,3 +32,9 @@ internal fun BaseAppModuleExtension.configureBuildSigning(project: Project) { buildTypes.all { setSigningConfig(signingConfig) } } } + +internal fun SigningExtension.configureBuildSigning() { + val signingKey: String? by project + val signingPassword: String? by project + useInMemoryPgpKeys(signingKey, signingPassword) +} |