Unverified Commit 59b7677e authored by Alexey Tsvetkov's avatar Alexey Tsvetkov Committed by GitHub

Add option to configure signing using env variables (#66)

parent e093afc7
...@@ -315,17 +315,17 @@ fun localSign(signer: String, lib: File) { ...@@ -315,17 +315,17 @@ fun localSign(signer: String, lib: File) {
} }
} }
fun remoteSign(sign_host: String, lib: File) { fun remoteSign(signHost: String, lib: File) {
println("Remote signing $lib on $sign_host") println("Remote signing $lib on $signHost")
val user = project.properties["sign_host_user"] as String val user = skiko.signUser ?: error("signUser is null")
val token = project.properties["sign_host_token"] as String val token = skiko.signToken ?: error("signToken is null")
val out = file("${lib.absolutePath}.signed") val out = file("${lib.absolutePath}.signed")
val cmd = """ val cmd = """
TOKEN=`curl -fsSL --user $user:$token --url "$sign_host/auth" | grep token | cut -d '"' -f4` \ TOKEN=`curl -fsSL --user $user:$token --url "$signHost/auth" | grep token | cut -d '"' -f4` \
&& curl --no-keepalive --http1.1 --data-binary @${lib.absolutePath} \ && curl --no-keepalive --http1.1 --data-binary @${lib.absolutePath} \
-H "Authorization: Bearer ${'$'}TOKEN" \ -H "Authorization: Bearer ${'$'}TOKEN" \
-H "Content-Type:application/x-mac-app-bin" \ -H "Content-Type:application/x-mac-app-bin" \
"$sign_host/sign?name=${lib.name}" -o "${out.absolutePath}" "$signHost/sign?name=${lib.name}" -o "${out.absolutePath}"
""".trimIndent() """.trimIndent()
val proc = ProcessBuilder("bash", "-c", cmd) val proc = ProcessBuilder("bash", "-c", cmd)
.redirectOutput(ProcessBuilder.Redirect.PIPE) .redirectOutput(ProcessBuilder.Redirect.PIPE)
...@@ -389,14 +389,14 @@ tasks.withType(LinkSharedLibrary::class.java).configureEach { ...@@ -389,14 +389,14 @@ tasks.withType(LinkSharedLibrary::class.java).configureEach {
doLast { doLast {
val dylib = outputs.files.files.singleOrNull { it.name.endsWith(".dylib") } val dylib = outputs.files.files.singleOrNull { it.name.endsWith(".dylib") }
(project.properties["signer"] as String?)?.let { signer -> logger.info("Resulting dylib: $dylib")
dylib?.let { lib -> if (dylib != null) {
localSign(signer, lib) (project.properties["signer"] as String?)?.let { signer ->
localSign(signer, dylib)
} }
}
(project.properties["sign_host"] as String?)?.let { sign_host -> skiko.signHost?.let { signHost ->
dylib?.let { lib -> remoteSign(signHost, dylib)
remoteSign(sign_host, lib)
} }
} }
} }
......
...@@ -114,6 +114,18 @@ class SkikoProperties(private val myProject: Project) { ...@@ -114,6 +114,18 @@ class SkikoProperties(private val myProject: Project) {
val composeRepoKey: String val composeRepoKey: String
get() = System.getenv("COMPOSE_REPO_KEY") ?: "" get() = System.getenv("COMPOSE_REPO_KEY") ?: ""
val signHost: String?
get() = System.getenv("JB_SIGN_HOST")
?: (myProject.findProperty("sign_host") as? String)
val signUser: String?
get() = System.getenv("JB_SIGN_USER")
?: (myProject.findProperty("sign_host_user") as? String)
val signToken: String?
get() = System.getenv("JB_SIGN_TOKEN")
?: (myProject.findProperty("sign_host_token") as? String)
val dependenciesDir: File val dependenciesDir: File
get() = myProject.rootProject.projectDir.resolve("dependencies") get() = myProject.rootProject.projectDir.resolve("dependencies")
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment