45 lines
1.2 KiB
Kotlin
45 lines
1.2 KiB
Kotlin
package be.simplenotes
|
|
|
|
import org.gradle.api.Plugin
|
|
import org.gradle.api.Project
|
|
import org.gradle.kotlin.dsl.create
|
|
|
|
open class DockerPluginExtension {
|
|
var image: String? = null
|
|
var tag = "latest"
|
|
}
|
|
|
|
class DockerPlugin : Plugin<Project> {
|
|
override fun apply(project: Project) {
|
|
val extension = project.extensions.create<DockerPluginExtension>("docker")
|
|
|
|
project.task("dockerBuild") {
|
|
dependsOn("package")
|
|
|
|
group = "docker"
|
|
description = "Build a docker image"
|
|
|
|
doLast {
|
|
project.exec {
|
|
commandLine("docker", "build", "-t", "${extension.image}:${extension.tag}", ".")
|
|
workingDir(project.rootProject.projectDir)
|
|
}
|
|
}
|
|
}
|
|
|
|
project.task("dockerPush") {
|
|
dependsOn("dockerBuild")
|
|
|
|
group = "docker"
|
|
description = "Push a docker image"
|
|
|
|
doLast {
|
|
project.exec {
|
|
commandLine("docker", "push", "${extension.image}:${extension.tag}")
|
|
workingDir(project.rootProject.projectDir)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|