Feature/web gui (#13)

Improve build and distribution.
This commit is contained in:
Michael N. Lipp 2023-10-22 14:19:33 +02:00 committed by GitHub
parent ae3941707a
commit c8b85b882d
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 44 additions and 12 deletions

View file

@ -43,7 +43,10 @@ patches:
patch: |- patch: |-
- op: replace - op: replace
path: /spec/template/spec/containers/0/image path: /spec/template/spec/containers/0/image
value: docker-registry.lan.mnl.de/vmoperator/org.jdrupes.vmoperator.manager:latest value: docker-registry.lan.mnl.de/vmoperator/org.jdrupes.vmoperator.manager:test
- op: replace
path: /spec/template/spec/containers/0/imagePullPolicy
value: Always
- op: replace - op: replace
path: /spec/replicas path: /spec/replicas
value: 0 value: 0

View file

@ -57,6 +57,10 @@ task buildImage(type: Exec) {
task tagLatestImage(type: Exec) { task tagLatestImage(type: Exec) {
dependsOn buildImage dependsOn buildImage
enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
&& !project.version.contains("beta") \
commandLine 'podman', 'tag', "${project.name}:${project.version}",\ commandLine 'podman', 'tag', "${project.name}:${project.version}",\
"${project.name}:latest" "${project.name}:latest"
} }
@ -78,20 +82,30 @@ task pushImage(type: Exec) {
task pushLatestImage(type: Exec) { task pushLatestImage(type: Exec) {
dependsOn buildLatestImage dependsOn buildLatestImage
enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
&& !project.version.contains("beta") \
commandLine 'podman', 'push', '--tls-verify=false', \ commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}:${project.version}", \ "localhost/${project.name}:${project.version}", \
"${project.rootProject.properties['docker.registry']}" \ "${project.rootProject.properties['docker.registry']}" \
+ "/${project.name}:latest" + "/${project.name}:latest"
} }
task pushForTest { task pushForTest(type: Exec) {
dependsOn pushImage dependsOn buildImage
dependsOn pushLatestImage
commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}:${project.version}", \
"${project.rootProject.properties['docker.registry']}" \
+ "/${project.name}:test"
} }
task pushImages { task pushImages {
// Don't push without testing first
dependsOn test dependsOn test
dependsOn pushForTest dependsOn pushImage
dependsOn pushLatestImage
} }
test { test {

View file

@ -1,21 +1,20 @@
package org.jdrupes.vmoperator.manager; package org.jdrupes.vmoperator.manager;
import static org.junit.jupiter.api.Assertions.*; import io.fabric8.kubernetes.client.Config;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
import io.fabric8.kubernetes.client.dsl.base.ResourceDefinitionContext;
import java.io.IOException; import java.io.IOException;
import java.nio.file.Files; import java.nio.file.Files;
import java.nio.file.Path; import java.nio.file.Path;
import java.util.Map; import java.util.Map;
import org.junit.jupiter.api.AfterAll; import org.junit.jupiter.api.AfterAll;
import static org.junit.jupiter.api.Assertions.*;
import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeAll;
import org.junit.jupiter.api.Test; import org.junit.jupiter.api.Test;
import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.LoaderOptions;
import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.Yaml;
import org.yaml.snakeyaml.constructor.SafeConstructor; import org.yaml.snakeyaml.constructor.SafeConstructor;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClientBuilder;
import io.fabric8.kubernetes.client.dsl.base.ResourceDefinitionContext;
import io.fabric8.kubernetes.client.Config;
class BasicTests { class BasicTests {
@ -41,7 +40,7 @@ class BasicTests {
.inNamespace("vmop-dev"); .inNamespace("vmop-dev");
resourcesInNamespace.withName("unittest-vm").delete(); resourcesInNamespace.withName("unittest-vm").delete();
// Update pod by scaling deployment // Update manager pod by scaling deployment
client.apps().deployments().inNamespace("vmop-dev") client.apps().deployments().inNamespace("vmop-dev")
.withName("vm-operator").scale(0); .withName("vm-operator").scale(0);
client.apps().deployments().inNamespace("vmop-dev") client.apps().deployments().inNamespace("vmop-dev")

View file

@ -42,6 +42,10 @@ task buildArchImage(type: Exec) {
task tagLatestArchImage(type: Exec) { task tagLatestArchImage(type: Exec) {
dependsOn buildArchImage dependsOn buildArchImage
enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
&& !project.version.contains("beta") \
commandLine 'podman', 'tag', "${project.name}-arch:${project.version}",\ commandLine 'podman', 'tag', "${project.name}-arch:${project.version}",\
"${project.name}-arch:latest" "${project.name}-arch:latest"
} }
@ -63,6 +67,10 @@ task pushArchImage(type: Exec) {
task pushArchLatestImage(type: Exec) { task pushArchLatestImage(type: Exec) {
dependsOn buildLatestArchImage dependsOn buildLatestArchImage
enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
&& !project.version.contains("beta") \
commandLine 'podman', 'push', '--tls-verify=false', \ commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}-arch:${project.version}", \ "localhost/${project.name}-arch:${project.version}", \
"${project.rootProject.properties['docker.registry']}" \ "${project.rootProject.properties['docker.registry']}" \
@ -80,6 +88,10 @@ task buildAlpineImage(type: Exec) {
task tagLatestAlpineImage(type: Exec) { task tagLatestAlpineImage(type: Exec) {
dependsOn buildAlpineImage dependsOn buildAlpineImage
enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
&& !project.version.contains("beta") \
commandLine 'podman', 'tag', "${project.name}-alpine:${project.version}",\ commandLine 'podman', 'tag', "${project.name}-alpine:${project.version}",\
"${project.name}-alpine:latest" "${project.name}-alpine:latest"
} }
@ -101,6 +113,10 @@ task pushAlpineImage(type: Exec) {
task pushAlpineLatestImage(type: Exec) { task pushAlpineLatestImage(type: Exec) {
dependsOn buildLatestAlpineImage dependsOn buildLatestAlpineImage
enabled = !project.version.contains("SNAPSHOT")
&& !project.version.contains("alpha") \
&& !project.version.contains("beta") \
commandLine 'podman', 'push', '--tls-verify=false', \ commandLine 'podman', 'push', '--tls-verify=false', \
"localhost/${project.name}-alpine:${project.version}", \ "localhost/${project.name}-alpine:${project.version}", \
"${project.rootProject.properties['docker.registry']}" \ "${project.rootProject.properties['docker.registry']}" \