68 lines
2.3 KiB
Groovy
68 lines
2.3 KiB
Groovy
import com.example.DockerBuilder
|
|
|
|
def call(String appName, String helmChartPath, String helmRepoName, String namespace, String helmChartVersion, Boolean useCustomDocker, Boolean useInsecureRegistry, Integer appPort) {
|
|
def dockerBuilder = new DockerBuilder()
|
|
def containerName = useCustomDocker ? 'custom-docker' : 'docker'
|
|
|
|
stage('Make jar') {
|
|
script {
|
|
buildJar(true)
|
|
}
|
|
}
|
|
stage('Package helm chart') {
|
|
script {
|
|
makeHelmChart("${helmChartPath}/${appName}")
|
|
}
|
|
}
|
|
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,
|
|
"./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": "postgresql",
|
|
"app.env.QUARKUS_DATASOURCE_USERNAME": quarkusDBName,
|
|
"app.env.QUARKUS_DATASOURCE_PASSWORD": quarkusDBPass,
|
|
"app.env.QUARKUS_DATASOURCE_JDBC_URL": "jdbc:postgresql://mydb-service:5432/mydb"
|
|
]
|
|
)
|
|
}
|
|
}
|
|
}
|