VM-Operator/org.jdrupes.vmoperator.runner.qemu/build.gradle
Michael N. Lipp 7f80f4c6e9
Wip/gitlab ci (#32)
Start CI/CD on a gitlab instance.
2024-06-18 13:51:59 +02:00

125 lines
4.3 KiB
Groovy

/*
* This file was generated by the Gradle 'init' task.
*
* This project uses @Incubating APIs which are subject to change.
*/
plugins {
id 'org.jdrupes.vmoperator.java-application-conventions'
}
dependencies {
implementation 'org.jgrapes:org.jgrapes.core:[1.19.0,2)'
implementation 'org.jgrapes:org.jgrapes.io:[2.7.0,3)'
implementation 'org.jgrapes:org.jgrapes.http:[3.1.0,4)'
implementation 'org.jgrapes:org.jgrapes.util:[1.31.0,2)'
implementation project(':org.jdrupes.vmoperator.common')
implementation 'commons-cli:commons-cli:1.5.0'
implementation 'com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:[2.16.1]'
runtimeOnly 'org.slf4j:slf4j-jdk14:[2.0.7,3)'
}
application {
applicationName = 'vm-runner.qemu'
// Keep sync'd with deploy/vmop-deployment.yaml
applicationDefaultJvmArgs = ['-Xmx32m', '-XX:+UseParallelGC',
'-Djava.util.logging.manager=org.jdrupes.vmoperator.util.LongLoggingManager'
]
// Define the main class for the application.
mainClass = 'org.jdrupes.vmoperator.runner.qemu.Runner'
}
project.ext.gitBranch = grgit.branch.current.name.replace('/', '-')
task buildArchImage(type: Exec) {
dependsOn installDist
inputs.files 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.arch'
commandLine 'podman', 'build', '--pull',
'-t', "${project.name}-arch:${project.gitBranch}",\
'-f', 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.arch', '.'
}
task pushArchImage(type: Exec) {
dependsOn buildArchImage
def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}-arch:${project.gitBranch}", \
"${registry}/${project.name}-arch:${project.gitBranch}"
if (!project.version.contains("SNAPSHOT")) {
commandLine 'podman', 'tag', \
"${registry}/${project.name}-arch:${project.gitBranch}",\
"${registry}/${project.name}-arch:${project.version}"
}
}
task tagAsLatestArch(type: Exec) {
dependsOn pushArchImage
enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
&& !project.version.contains("beta") \
|| project.rootProject.properties['docker.testRegistry'] \
&& project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry']
def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'tag', \
"${registry}/${project.name}-arch:${project.version}",\
"${registry}/${project.name}-arch:latest"
}
task buildAlpineImage(type: Exec) {
dependsOn installDist
inputs.files 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine'
commandLine 'podman', 'build', '--pull',
'-t', "${project.name}-alpine:${project.gitBranch}",\
'-f', 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine', '.'
}
task pushAlpineImage(type: Exec) {
dependsOn buildAlpineImage
def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}-alpine:${project.gitBranch}", \
"${registry}/${project.name}-alpine:${project.gitBranch}"
if (!project.version.contains("SNAPSHOT")) {
commandLine 'podman', 'tag', \
"${registry}/${project.name}-alpine:${project.gitBranch}",\
"${registry}/${project.name}-alpine:${project.version}"
}
}
task tagAsLatestAlpine(type: Exec) {
dependsOn pushAlpineImage
enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
&& !project.version.contains("beta") \
|| project.rootProject.properties['docker.testRegistry'] \
&& project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry']
def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'tag', \
"${registry}/${project.name}-alpine:${project.version}",\
"${registry}/${project.name}-alpine:latest"
}
task pushImage {
dependsOn pushArchImage
dependsOn pushAlpineImage
}
task tagAsLatest {
dependsOn tagAsLatestArch
dependsOn tagAsLatestAlpine
}