Fix image building.

This commit is contained in:
Michael Lipp 2024-06-23 12:52:18 +02:00
parent 12ca211fdb
commit 7df0cc386c
5 changed files with 86 additions and 84 deletions

View file

@ -37,4 +37,4 @@ jobs:
java-version: '21' java-version: '21'
distribution: 'temurin' distribution: 'temurin'
- name: Push with Gradle - name: Push with Gradle
run: ./gradlew -Pwebsite.push.token=${{ secrets.WEBSITE_PUSH_TOKEN }} -Pdocker.registry=ghcr.io/${{ github.actor }} stage pushImages run: ./gradlew -Pwebsite.push.token=${{ secrets.WEBSITE_PUSH_TOKEN }} -Pdocker.registry=ghcr.io/${{ github.actor }} stage publishImage

View file

@ -40,7 +40,7 @@ publish-images:
dependencies: dependencies:
- build-jars - build-jars
script: script:
- ./gradlew -Pdocker.registry=$CI_REGISTRY_IMAGE pushImage - ./gradlew -Pdocker.registry=$CI_REGISTRY_IMAGE publishImage
.pages-job: .pages-job:
extends: .any-job extends: .any-job

View file

@ -46,6 +46,7 @@ application {
} }
project.ext.gitBranch = grgit.branch.current.name.replace('/', '-') project.ext.gitBranch = grgit.branch.current.name.replace('/', '-')
def registry = "${project.rootProject.properties['docker.registry']}"
task buildImage(type: Exec) { task buildImage(type: Exec) {
dependsOn installDist dependsOn installDist
@ -61,20 +62,23 @@ task pushImage(type: Exec) {
// Don't push without testing first // Don't push without testing first
dependsOn test dependsOn test
def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'push', '--tls-verify=false', \ commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}:${project.gitBranch}", \ "${project.name}:${project.gitBranch}", \
"${registry}/${project.name}:${project.gitBranch}" "${registry}/${project.name}:${project.gitBranch}"
}
if (!project.version.contains("SNAPSHOT")) {
commandLine 'podman', 'tag', \ task tagWithVersion(type: Exec) {
"${registry}/${project.name}:${project.gitBranch}",\ dependsOn pushImage
"${registry}/${project.name}:${project.version}"
} enabled = !project.version.contains("SNAPSHOT")
commandLine 'podman', 'push', \
"${project.name}:${project.gitBranch}",\
"${registry}/${project.name}:${project.version}"
} }
task tagAsLatest(type: Exec) { task tagAsLatest(type: Exec) {
dependsOn pushImage dependsOn tagWithVersion
enabled = !project.version.contains("SNAPSHOT") enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \ && !project.version.contains("alpha") \
@ -83,17 +87,22 @@ task tagAsLatest(type: Exec) {
&& project.rootProject.properties['docker.registry'] \ && project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry'] == project.rootProject.properties['docker.testRegistry']
def registry = "${project.rootProject.properties['docker.registry']}" commandLine 'podman', 'push', \
commandLine 'podman', 'tag', \ "${project.name}:${project.gitBranch}",\
"${registry}/${project.name}:${project.version}",\
"${registry}/${project.name}:latest" "${registry}/${project.name}:latest"
} }
task publishImage {
dependsOn pushImage
dependsOn tagWithVersion
dependsOn tagAsLatest
}
task pushForTest(type: Exec) { task pushForTest(type: Exec) {
dependsOn buildImage dependsOn buildImage
commandLine 'podman', 'push', '--tls-verify=false', \ commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}:${project.gitBranch}", \ "${project.name}:${project.gitBranch}", \
"${project.rootProject.properties['docker.testRegistry']}" \ "${project.rootProject.properties['docker.testRegistry']}" \
+ "/${project.name}:test" + "/${project.name}:test"
} }

View file

@ -32,8 +32,9 @@ application {
} }
project.ext.gitBranch = grgit.branch.current.name.replace('/', '-') project.ext.gitBranch = grgit.branch.current.name.replace('/', '-')
def registry = "${project.rootProject.properties['docker.registry']}"
task buildArchImage(type: Exec) { task buildImageArch(type: Exec) {
dependsOn installDist dependsOn installDist
inputs.files 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.arch' inputs.files 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.arch'
@ -42,23 +43,26 @@ task buildArchImage(type: Exec) {
'-f', 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.arch', '.' '-f', 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.arch', '.'
} }
task pushArchImage(type: Exec) { task pushImageArch(type: Exec) {
dependsOn buildArchImage dependsOn buildImageArch
def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'push', '--tls-verify=false', \ commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}-arch:${project.gitBranch}", \ "${project.name}-arch:${project.gitBranch}", \
"${registry}/${project.name}-arch:${project.gitBranch}" "${registry}/${project.name}-arch:${project.gitBranch}"
}
if (!project.version.contains("SNAPSHOT")) {
commandLine 'podman', 'tag', \ task tagWithVersionArch(type: Exec) {
"${registry}/${project.name}-arch:${project.gitBranch}",\ dependsOn pushImageArch
"${registry}/${project.name}-arch:${project.version}"
} enabled = !project.version.contains("SNAPSHOT")
commandLine 'podman', 'push', \
"${project.name}-arch:${project.gitBranch}",\
"${registry}/${project.name}-arch:${project.version}"
} }
task tagAsLatestArch(type: Exec) { task tagAsLatestArch(type: Exec) {
dependsOn pushArchImage dependsOn tagWithVersionArch
enabled = !project.version.contains("SNAPSHOT") enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \ && !project.version.contains("alpha") \
@ -67,13 +71,12 @@ task tagAsLatestArch(type: Exec) {
&& project.rootProject.properties['docker.registry'] \ && project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry'] == project.rootProject.properties['docker.testRegistry']
def registry = "${project.rootProject.properties['docker.registry']}" commandLine 'podman', 'push', \
commandLine 'podman', 'tag', \ "${project.name}-arch:${project.gitBranch}",\
"${registry}/${project.name}-arch:${project.version}",\
"${registry}/${project.name}-arch:latest" "${registry}/${project.name}-arch:latest"
} }
task buildAlpineImage(type: Exec) { task buildImageAlpine(type: Exec) {
dependsOn installDist dependsOn installDist
inputs.files 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine' inputs.files 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine'
@ -82,23 +85,26 @@ task buildAlpineImage(type: Exec) {
'-f', 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine', '.' '-f', 'src/org/jdrupes/vmoperator/runner/qemu/Containerfile.alpine', '.'
} }
task pushAlpineImage(type: Exec) { task pushImageAlpine(type: Exec) {
dependsOn buildAlpineImage dependsOn buildImageAlpine
def registry = "${project.rootProject.properties['docker.registry']}"
commandLine 'podman', 'push', '--tls-verify=false', \ commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}-alpine:${project.gitBranch}", \ "localhost/${project.name}-alpine:${project.gitBranch}", \
"${registry}/${project.name}-alpine:${project.gitBranch}" "${registry}/${project.name}-alpine:${project.gitBranch}"
}
if (!project.version.contains("SNAPSHOT")) {
commandLine 'podman', 'tag', \ task tagWithVersionAlpine(type: Exec) {
"${registry}/${project.name}-alpine:${project.gitBranch}",\ dependsOn pushImageAlpine
"${registry}/${project.name}-alpine:${project.version}"
} enabled = !project.version.contains("SNAPSHOT")
commandLine 'podman', 'push', \
"${project.name}-alpine:${project.gitBranch}",\
"${registry}/${project.name}-alpine:${project.version}"
} }
task tagAsLatestAlpine(type: Exec) { task tagAsLatestAlpine(type: Exec) {
dependsOn pushAlpineImage dependsOn tagWithVersionAlpine
enabled = !project.version.contains("SNAPSHOT") enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \ && !project.version.contains("alpha") \
@ -107,19 +113,16 @@ task tagAsLatestAlpine(type: Exec) {
&& project.rootProject.properties['docker.registry'] \ && project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry'] == project.rootProject.properties['docker.testRegistry']
def registry = "${project.rootProject.properties['docker.registry']}" commandLine 'podman', 'push', \
commandLine 'podman', 'tag', \ "${project.name}-alpine:${project.gitBranch}",\
"${registry}/${project.name}-alpine:${project.version}",\
"${registry}/${project.name}-alpine:latest" "${registry}/${project.name}-alpine:latest"
} }
task pushImage { task publishImage {
dependsOn pushArchImage dependsOn pushImageArch
dependsOn pushAlpineImage dependsOn tagWithVersionArch
}
task tagAsLatest {
dependsOn tagAsLatestArch dependsOn tagAsLatestArch
dependsOn pushImageAlpine
dependsOn tagWithVersionAlpine
dependsOn tagAsLatestAlpine dependsOn tagAsLatestAlpine
} }

View file

@ -5,44 +5,36 @@ plugins {
dependencies { dependencies {
} }
project.ext.gitBranch = grgit.branch.current.name.replace('/', '-')
def registry = "${project.rootProject.properties['docker.registry']}"
task buildImage(type: Exec) { task buildImage(type: Exec) {
inputs.files 'Containerfile' inputs.files 'Containerfile'
commandLine 'podman', 'build', '--pull', commandLine 'podman', 'build', '--pull',
'-t', "${project.name}:${project.version}",\ '-t', "${project.name}:${project.gitBranch}",\
'-f', 'Containerfile', '.' '-f', 'Containerfile', '.'
} }
task tagLatestImage(type: Exec) {
dependsOn buildImage
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}:${project.version}",\
"${project.name}:latest"
}
task buildLatestImage {
dependsOn buildImage
dependsOn tagLatestImage
}
task pushImage(type: Exec) { task pushImage(type: Exec) {
dependsOn buildImage dependsOn buildImage
commandLine 'podman', 'push', '--tls-verify=false', \ commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}:${project.version}", \ "${project.name}:${project.gitBranch}", \
"${project.rootProject.properties['docker.registry']}" \ "${registry}/${project.name}:${project.gitBranch}"
+ "/${project.name}:${project.version}" }
task tagWithVersion(type: Exec) {
dependsOn pushImage
enabled = !project.version.contains("SNAPSHOT")
commandLine 'podman', 'push', \
"${project.name}:${project.gitBranch}",\
"${registry}/${project.name}:${project.version}"
} }
task pushLatestImage(type: Exec) { task tagAsLatest(type: Exec) {
dependsOn buildLatestImage dependsOn tagWithVersion
enabled = !project.version.contains("SNAPSHOT") enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \ && !project.version.contains("alpha") \
@ -51,18 +43,16 @@ task pushLatestImage(type: Exec) {
&& project.rootProject.properties['docker.registry'] \ && project.rootProject.properties['docker.registry'] \
== project.rootProject.properties['docker.testRegistry'] == project.rootProject.properties['docker.testRegistry']
commandLine 'podman', 'push', '--tls-verify=false', \ commandLine 'podman', 'push', \
"localhost/${project.name}:${project.version}", \ "${project.name}:${project.gitBranch}",\
"${project.rootProject.properties['docker.registry']}" \ "${registry}/${project.name}:latest"
+ "/${project.name}:latest"
} }
task pushImages { task publishImage {
// Don't push without testing first
dependsOn pushImage dependsOn pushImage
dependsOn pushLatestImage dependsOn tagWithVersion
dependsOn tagAsLatest
} }
test { test {
enabled = project.hasProperty("k8s.testCluster") enabled = project.hasProperty("k8s.testCluster")