First iteration to implement jenkins shared libraries
This commit is contained in:
68
Jenkinsfile
vendored
68
Jenkinsfile
vendored
@@ -1,3 +1,5 @@
|
|||||||
|
@Library('my-shared-library@main') _
|
||||||
|
|
||||||
pipeline {
|
pipeline {
|
||||||
agent {
|
agent {
|
||||||
kubernetes {
|
kubernetes {
|
||||||
@@ -73,72 +75,52 @@ spec:
|
|||||||
stages{
|
stages{
|
||||||
stage('Make jar') {
|
stage('Make jar') {
|
||||||
steps {
|
steps {
|
||||||
container('maven') {
|
script {
|
||||||
sh 'mvn install -DskipTests'
|
buildJar(true)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Make chart') {
|
stage('Package helm chart') {
|
||||||
steps {
|
steps {
|
||||||
container('helm') {
|
script {
|
||||||
sh 'helm package example-app-helm-chart/example-app'
|
makeHelmChart("example-app-helm-chart/example-app")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Upload chart') {
|
stage('Upload helm chart') {
|
||||||
steps {
|
steps {
|
||||||
container('maven') {
|
container('maven') {
|
||||||
sh 'curl -u admin:$NEXUS_PASS --upload-file example-app-1.0.0-SNAPSHOT.tgz $NEXUS_URL'
|
uploadHelmChart("example-app-1.0.0-SNAPSHOT.tgz", "$NEXUS_URL", "admin", "$NEXUS_PASS")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Docker in Docker start') {
|
stage('Docker build & push') {
|
||||||
steps {
|
steps {
|
||||||
container('docker') {
|
script {
|
||||||
sh 'dockerd --insecure-registry http://$NEXUS_DOCKER_URL &'
|
dockerBuildAndPush("$NEXUS_DOCKER_URL", "example-app", "./Dockerfile", "target", "admin", "$NEXUS_DOCKER_PASS")
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Docker build in Docker') {
|
|
||||||
steps {
|
|
||||||
container('docker') {
|
|
||||||
sh 'docker build -t example-app -f ./Dockerfile target'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Docker repo login') {
|
|
||||||
steps {
|
|
||||||
container('docker') {
|
|
||||||
sh 'docker login http://$NEXUS_DOCKER_URL -u admin -p $NEXUS_DOCKER_PASS'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Docker image tag') {
|
|
||||||
steps {
|
|
||||||
container('docker') {
|
|
||||||
sh 'docker tag example-app $NEXUS_DOCKER_URL/my-docker-repo/example-app:latest'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
stage('Docker image push') {
|
|
||||||
steps {
|
|
||||||
container('docker') {
|
|
||||||
sh 'docker push $NEXUS_DOCKER_URL/my-docker-repo/example-app:latest'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Add Helm Repo') {
|
stage('Add Helm Repo') {
|
||||||
steps {
|
steps {
|
||||||
container('helm') {
|
script {
|
||||||
sh 'helm repo add my-helm-repo $NEXUS_URL'
|
addHelmRepo("my-helm-repo", "$NEXUS_URL")
|
||||||
sh 'helm repo update'
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
stage('Deploy Helm Chart') {
|
stage('Deploy Helm Chart') {
|
||||||
steps {
|
steps {
|
||||||
container('helm') {
|
script {
|
||||||
sh 'helm install example-app my-helm-repo/example-app --kube-apiserver $KUBERNETES_API --kube-token $KUBERNETES_TOKEN --kube-insecure-skip-tls-verify --version 1.0.0-SNAPSHOT --set app.ports.http=8090 --set app.image=localhost:31050/my-docker-repo/example-app:latest --set imagePullSecrets[0]=nexus-secret'
|
deployHelm(
|
||||||
|
"example-app",
|
||||||
|
"my-helm-repo",
|
||||||
|
"example-app",
|
||||||
|
"1.0.0-SNAPSHOT",
|
||||||
|
"$KUBERNETES_API",
|
||||||
|
"$KUBERNETES_TOKEN",
|
||||||
|
"localhost:31050/my-docker-repo/example-app:latest",
|
||||||
|
["app.ports.http": 8090, "imagePullSecrets[0]": "nexus-secret"]
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user