From 02d58783911a4ad4e249aa50fc1a0f07400f5ea2 Mon Sep 17 00:00:00 2001 From: Alva Swanson Date: Tue, 29 Nov 2022 20:40:55 +0100 Subject: [PATCH] build-logic: Make FileVerificationTask cachable --- .../kotlin/bisq/gradle/electrum/ElectrumBinaryDownloader.kt | 2 ++ .../bisq/gradle/electrum/tasks/FileVerificationTask.kt | 6 ++++++ 2 files changed, 8 insertions(+) diff --git a/build-logic/electrum-binaries/src/main/kotlin/bisq/gradle/electrum/ElectrumBinaryDownloader.kt b/build-logic/electrum-binaries/src/main/kotlin/bisq/gradle/electrum/ElectrumBinaryDownloader.kt index e349a958ca..78dc6fa642 100644 --- a/build-logic/electrum-binaries/src/main/kotlin/bisq/gradle/electrum/ElectrumBinaryDownloader.kt +++ b/build-logic/electrum-binaries/src/main/kotlin/bisq/gradle/electrum/ElectrumBinaryDownloader.kt @@ -49,6 +49,8 @@ class ElectrumBinaryDownloader( detachedSignatureFile.set(signatureDownloadTask.flatMap { it.outputFile }) publicKeyUrls.set(getPublicKeyUrls()) publicKeyFingerprints.set(getPublicKeyFingerprints()) + + resultFile.set(project.layout.buildDirectory.file("$DOWNLOADS_DIR/sha256.result")) } } diff --git a/build-logic/electrum-binaries/src/main/kotlin/bisq/gradle/electrum/tasks/FileVerificationTask.kt b/build-logic/electrum-binaries/src/main/kotlin/bisq/gradle/electrum/tasks/FileVerificationTask.kt index bf50576a15..3593badd45 100644 --- a/build-logic/electrum-binaries/src/main/kotlin/bisq/gradle/electrum/tasks/FileVerificationTask.kt +++ b/build-logic/electrum-binaries/src/main/kotlin/bisq/gradle/electrum/tasks/FileVerificationTask.kt @@ -7,6 +7,7 @@ import org.gradle.api.file.RegularFileProperty import org.gradle.api.provider.SetProperty import org.gradle.api.tasks.Input import org.gradle.api.tasks.InputFile +import org.gradle.api.tasks.OutputFile import org.gradle.api.tasks.TaskAction import java.net.URL @@ -24,6 +25,9 @@ abstract class FileVerificationTask : DefaultTask() { @get:Input abstract val publicKeyFingerprints: SetProperty + @get:OutputFile + abstract val resultFile: RegularFileProperty + @TaskAction fun verify() { val signatureVerifier = SignatureVerifier( @@ -36,6 +40,8 @@ abstract class FileVerificationTask : DefaultTask() { fileToVerify = fileToVerify.get().asFile ) + resultFile.get().asFile.writeText("$isSignatureValid") + if (!isSignatureValid) { throw GradleException( "Signature verification failed for ${fileToVerify.get().asFile.absolutePath}."