This is an automated email from the ASF dual-hosted git repository.

rantunes pushed a commit to branch main
in repository 
https://gitbox.apache.org/repos/asf/incubator-kie-kogito-pipelines.git


The following commit(s) were added to refs/heads/main by this push:
     new 61910eb2 kie-issues#1387: Adjust pipelines to use the gpg key provided 
by Apache to sign the artifacts (#1222)
61910eb2 is described below

commit 61910eb290a4f3fe4ac822f88898f815690d4068
Author: Rodrigo Antunes <[email protected]>
AuthorDate: Tue Jul 16 11:17:02 2024 -0300

    kie-issues#1387: Adjust pipelines to use the gpg key provided by Apache to 
sign the artifacts (#1222)
    
    * Adjust pipelines to use the gpg key provided by Apache to sign the 
artifacts
    
    * Fix import gpg key function
---
 .ci/jenkins/Jenkinsfile.zip.sources                | 27 +++++++++-------------
 .ci/jenkins/config/branch.yaml                     |  4 ++--
 .../vars/release.groovy                            | 17 ++++++++++++++
 3 files changed, 30 insertions(+), 18 deletions(-)

diff --git a/.ci/jenkins/Jenkinsfile.zip.sources 
b/.ci/jenkins/Jenkinsfile.zip.sources
index 011835fc..617ecbce 100644
--- a/.ci/jenkins/Jenkinsfile.zip.sources
+++ b/.ci/jenkins/Jenkinsfile.zip.sources
@@ -23,17 +23,16 @@ pipeline {
                 archiveArtifacts artifacts: "**/${SOURCES_FILE_NAME}"
             }
         }
-//        stage('Sign and upload the sources.zip') {
-//            steps {
-//                script {
-//                    // TODO: Uncomment (and adjust) when we have required 
credentials available
-//                    
release.gpgImportKeyFromFileWithPassword(getReleaseGpgSignKeyCredsId(), 
getReleaseGpgSignPassphraseCredsId())
-//                    
release.gpgSignFileDetachedSignatureWithPassword(SOURCES_FILE_NAME, 
SIGNATURE_FILE_NAME, getReleaseGpgSignPassphraseCredsId())
-//                    
release.svnUploadFileToRepository(getReleaseSvnRepository(), 
getReleaseSvnCredsId(), TARGET_VERSION, SOURCES_FILE_NAME, SIGNATURE_FILE_NAME)
-//                }
-//                archiveArtifacts artifacts: "**/${SIGNATURE_FILE_NAME}"
-//            }
-//        }
+       stage('Sign and upload the sources.zip') {
+           steps {
+               script {
+                   
release.gpgImportKeyFromStringWithoutPassword(getReleaseGpgSignKeyCredsId())
+                   
release.gpgSignFileDetachedSignatureWithoutPassword(SOURCES_FILE_NAME, 
SIGNATURE_FILE_NAME)
+                   
release.svnUploadFileToRepository(getReleaseSvnRepository(), 
getReleaseSvnCredsId(), TARGET_VERSION, SOURCES_FILE_NAME, SIGNATURE_FILE_NAME)
+               }
+               archiveArtifacts artifacts: "**/${SIGNATURE_FILE_NAME}"
+           }
+       }
     }
 }
 
@@ -42,14 +41,10 @@ String getReleaseGpgSignKeyCredsId() {
     return env.RELEASE_GPG_SIGN_KEY_CREDS_ID
 }
 
-String getReleaseGpgSignPassphraseCredsId() {
-    return env.RELEASE_GPG_SIGN_PASSPHRASE_CREDS_ID
-}
-
 String getReleaseSvnRepository() {
     return env.RELEASE_SVN_REPOSITORY
 }
 
 String getReleaseSvnCredsId() {
     return env.RELEASE_SVN_CREDS_ID
-}
\ No newline at end of file
+}
diff --git a/.ci/jenkins/config/branch.yaml b/.ci/jenkins/config/branch.yaml
index ade29493..a7a76e16 100644
--- a/.ci/jenkins/config/branch.yaml
+++ b/.ci/jenkins/config/branch.yaml
@@ -90,8 +90,8 @@ cloud:
 release:
   gpg:
     sign:
-      key-credentials-id: 'asf-release-gpg-signing-key'
-      passphrase-credentials-id: 'asf-release-gpg-signing-key-passphrase'
+      key-credentials-id: 'GPG_KEY'
+      passphrase-credentials-id: ''
   svn:
     staging-repository: <TO-BE-DEFINED>
     credentials-id: <TO-BE-DEFINED>
diff --git a/jenkins-pipeline-shared-libraries/vars/release.groovy 
b/jenkins-pipeline-shared-libraries/vars/release.groovy
index 1af2d4c6..6bb9564e 100644
--- a/jenkins-pipeline-shared-libraries/vars/release.groovy
+++ b/jenkins-pipeline-shared-libraries/vars/release.groovy
@@ -13,12 +13,29 @@ def gpgImportKeyFromFileWithPassword(String 
gpgKeyCredentialsId, String gpgKeyPa
     }
 }
 
+def gpgImportKeyFromStringWithoutPassword(String gpgKeyCredentialsId) {
+    withCredentials([string(credentialsId: gpgKeyCredentialsId, variable: 
'SIGNING_KEY')]) {
+        // copy the key to singkey.gpg file in *plain text* so we can import it
+        sh """
+            echo "$SIGNING_KEY" > $WORKSPACE/signkey.gpg
+            # Please do not remove list keys command. When gpg is run for the 
first time, it may initialize some internals.
+            gpg --list-keys
+            gpg --batch --pinentry-mode=loopback --import signkey.gpg
+            rm $WORKSPACE/signkey.gpg
+        """
+    }
+}
+
 def gpgSignFileDetachedSignatureWithPassword(String file, String 
signatureTarget, String gpgKeyPasswordCredentialsId) {
     withCredentials([string(credentialsId: gpgKeyPasswordCredentialsId, 
variable: 'SIGNING_KEY_PASSWORD')]) {
         sh "gpg --batch --sign --pinentry-mode=loopback --passphrase 
\"${SIGNING_KEY_PASSWORD}\" --output ${signatureTarget} --detach-sig ${file}"
     }
 }
 
+def gpgSignFileDetachedSignatureWithoutPassword(String file, String 
signatureTarget) {
+    sh "gpg --batch --sign --pinentry-mode=loopback --output 
${signatureTarget} --detach-sig ${file}"
+}
+
 boolean gpgIsValidDetachedSignature(String file, String signature) {
     return sh(returnStatus: true, script: "gpg --batch --verify ${signature} 
${file}") == 0
 }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to