Wip/gitlab ci (#32)

Start CI/CD on a gitlab instance.
This commit is contained in:
Michael N. Lipp 2024-06-18 13:51:59 +02:00 committed by GitHub
parent 10182efea1
commit 7f80f4c6e9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 1676 additions and 1716 deletions

View file

@ -31,45 +31,34 @@ 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.version}",\
'-t', "${project.name}-arch:${project.gitBranch}",\
'-f', 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.arch', '.'
}
task tagLatestArchImage(type: Exec) {
dependsOn buildArchImage
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']
commandLine 'podman', 'tag', "${project.name}-arch:${project.version}",\
"${project.name}-arch:latest"
}
task buildLatestArchImage {
dependsOn buildArchImage
dependsOn tagLatestArchImage
}
task pushArchImage(type: Exec) {
dependsOn buildArchImage
def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}-arch:${project.version}", \
"${project.rootProject.properties['docker.registry']}" \
+ "/${project.name}-arch:${project.version}"
"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 pushArchLatestImage(type: Exec) {
dependsOn buildLatestArchImage
task tagAsLatestArch(type: Exec) {
dependsOn pushArchImage
enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
@ -78,10 +67,10 @@ task pushArchLatestImage(type: Exec) {
&& project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry']
commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}-arch:${project.version}", \
"${project.rootProject.properties['docker.registry']}" \
+ "/${project.name}-arch:latest"
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) {
@ -89,40 +78,27 @@ task buildAlpineImage(type: Exec) {
inputs.files 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine'
commandLine 'podman', 'build', '--pull',
'-t', "${project.name}-alpine:${project.version}",\
'-t', "${project.name}-alpine:${project.gitBranch}",\
'-f', 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine', '.'
}
task tagLatestAlpineImage(type: Exec) {
dependsOn buildAlpineImage
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']
commandLine 'podman', 'tag', "${project.name}-alpine:${project.version}",\
"${project.name}-alpine:latest"
}
task buildLatestAlpineImage {
dependsOn buildAlpineImage
dependsOn tagLatestAlpineImage
}
task pushAlpineImage(type: Exec) {
dependsOn buildAlpineImage
def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}-alpine:${project.version}", \
"${project.rootProject.properties['docker.registry']}" \
+ "/${project.name}-alpine:${project.version}"
"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 pushAlpineLatestImage(type: Exec) {
dependsOn buildLatestAlpineImage
task tagAsLatestAlpine(type: Exec) {
dependsOn pushAlpineImage
enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
@ -131,16 +107,19 @@ task pushAlpineLatestImage(type: Exec) {
&& project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry']
commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}-alpine:${project.version}", \
"${project.rootProject.properties['docker.registry']}" \
+ "/${project.name}-alpine:latest"
def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'tag', \
"${registry}/${project.name}-alpine:${project.version}",\
"${registry}/${project.name}-alpine:latest"
}
task pushImages {
task pushImage {
dependsOn pushArchImage
dependsOn pushArchLatestImage
dependsOn pushAlpineImage
dependsOn pushAlpineLatestImage
}
task tagAsLatest {
dependsOn tagAsLatestArch
dependsOn tagAsLatestAlpine
}

View file

@ -1,4 +1,4 @@
FROM archlinux/archlinux:latest
FROM docker.io/archlinux/archlinux:latest
RUN systemd-firstboot