Sign and generate hash for compiler and plugin zip
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import com.github.jengelman.gradle.plugins.shadow.tasks.ShadowJar
|
||||
import org.gradle.crypto.checksum.Checksum
|
||||
import org.gradle.plugins.ide.idea.model.IdeaModel
|
||||
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
|
||||
import proguard.gradle.ProGuardTask
|
||||
@@ -42,6 +43,8 @@ plugins {
|
||||
idea
|
||||
id("jps-compatible")
|
||||
id("org.jetbrains.gradle.plugin.idea-ext")
|
||||
id("org.gradle.crypto.checksum") version "1.2.0"
|
||||
signing
|
||||
}
|
||||
|
||||
pill {
|
||||
@@ -834,6 +837,33 @@ val zipPlugin by task<Zip> {
|
||||
}
|
||||
}
|
||||
|
||||
fun Project.secureZipTask(zipTask: TaskProvider<Zip>): RegisteringDomainObjectDelegateProviderWithAction<out TaskContainer, Task> {
|
||||
val checkSumTask = tasks.register("${zipTask.name}Checksum", Checksum::class) {
|
||||
dependsOn(zipTask)
|
||||
val compilerFile = zipTask.get().outputs.files.singleFile
|
||||
files = files(compilerFile)
|
||||
outputDir = compilerFile.parentFile
|
||||
algorithm = Checksum.Algorithm.SHA256
|
||||
}
|
||||
|
||||
val signTask = tasks.register("${zipTask.name}Sign", Sign::class) {
|
||||
description = "Signs the archive produced by the '" + zipTask.name + "' task."
|
||||
sign(zipTask.get())
|
||||
}
|
||||
|
||||
return tasks.registering {
|
||||
dependsOn(checkSumTask)
|
||||
dependsOn(signTask)
|
||||
}
|
||||
}
|
||||
|
||||
signing {
|
||||
useGpgCmd()
|
||||
}
|
||||
|
||||
val zipCompilerWithSignature by secureZipTask(zipCompiler)
|
||||
val zipPluginWithSignature by secureZipTask(zipPlugin)
|
||||
|
||||
configure<IdeaModel> {
|
||||
module {
|
||||
excludeDirs = files(
|
||||
|
||||
Reference in New Issue
Block a user