def call(String appName, String helmChartPath, String helmRepoName,String helmChartVersion, String dockerBuildFunction) { stage('Make jar') { steps { script { buildJar(true) } } } stage('Package helm chart') { steps { script { makeHelmChart("${helmChartPath}/${appName}") } } } stage('Upload helm chart') { steps { script { uploadHelmChart("${appName}-${helmChartVersion}", env.NEXUS_URL, "admin", env.NEXUS_PASS) } } } stage('Docker build & push') { steps { script { this."${dockerBuildFunction}"(env.NEXUS_DOCKER_URL, appName, "./Dockerfile", "target", "admin", env.NEXUS_DOCKER_PASS) } } } stage('Add Helm Repo') { steps { script { addHelmRepo(helmRepoName, env.NEXUS_URL) } } } stage('Deploy Helm Chart') { steps { script { deployHelm( appName, helmRepoName, appName, helmChartVersion, env.KUBERNETES_API, env.KUBERNETES_TOKEN, ["app.image": "localhost:31050/my-docker-repo/${appName}:latest", "app.ports.http": 8090, "app.secret": "nexus-secret"] ) } } } }