import com.example.DockerBuilder def call(String appName, String helmChartPath, String helmRepoName, String namespace, String helmChartVersion, Boolean useCustomDocker, Boolean useInsecureRegistry, Integer appPort, String quarkusDBName, String quarkusDBPass) { def dockerBuilder = new DockerBuilder() def containerName = useCustomDocker ? 'custom-docker' : 'docker' stage('Make jar') { script { buildJar(true) } } stage('Package helm chart') { script { makeHelmChart("${helmChartPath}/${appName}",helmChartVersion) } } stage('Upload helm chart') { script { uploadHelmChart("${appName}-${helmChartVersion}.tgz", env.NEXUS_URL, "admin", env.NEXUS_PASS) } } stage('Docker build & push') { container(containerName) { script { sh(script: dockerBuilder.getDockerdCommand(env.NEXUS_DOCKER_URL, useInsecureRegistry), returnStdout: true) dockerBuilder.getDockerBuildCommands( env.NEXUS_DOCKER_URL, appName, helmChartVersion, "./Dockerfile", "target", "admin", env.NEXUS_DOCKER_PASS, appPort ).each { cmd -> sh(script: cmd, returnStdout:true) } } } } /* stage('Add Helm Repo') { script { addHelmRepo(helmRepoName, env.NEXUS_URL) } } stage('Deploy Helm Chart') { script { deployHelm( appName, helmRepoName, appName, namespace, helmChartVersion, env.KUBERNETES_API, env.KUBERNETES_TOKEN, [ "app.image": "localhost:31050/my-docker-repo/${appName}:latest", "app.ports.http": appPort, "app.secret": "nexus-secret", "app.env.QUARKUS_DATASOURCE_DB_KIND": "mysql", "app.env.QUARKUS_DATASOURCE_USERNAME": quarkusDBName, "app.env.QUARKUS_DATASOURCE_PASSWORD": quarkusDBPass, "app.env.QUARKUS_DATASOURCE_JDBC_URL": "jdbc:mysql://localhost:3306/mydatabase" ] ) } } */ }