53 lines
1.9 KiB
Groovy
53 lines
1.9 KiB
Groovy
#!/usr/bin/env groovy
|
|
|
|
pipeline {
|
|
agent any
|
|
tools {
|
|
maven 'Maven'
|
|
}
|
|
stages {
|
|
stage('increment version') {
|
|
steps {
|
|
script {
|
|
echo 'incrementing app version...'
|
|
sh 'mvn build-helper:parse-version versions:set \
|
|
-DnewVersion=\\\${parsedVersion.majorVersion}.\\\${parsedVersion.minorVersion}.\\\${parsedVersion.nextIncrementalVersion} \
|
|
versions:commit'
|
|
def matcher = readFile('pom.xml') =~ '<version>(.+)</version>'
|
|
def version = matcher[0][1]
|
|
env.IMAGE_NAME = "$version-$BUILD_NUMBER"
|
|
}
|
|
}
|
|
}
|
|
stage('build app') {
|
|
steps {
|
|
script {
|
|
echo "building the application..."
|
|
sh 'mvn clean package'
|
|
}
|
|
}
|
|
}
|
|
stage('build image') {
|
|
steps {
|
|
script {
|
|
echo "building the docker image..."
|
|
withCredentials([usernamePassword(credentialsId: 'docker-hub', passwordVariable: 'PASS', usernameVariable: 'USER')]) {
|
|
sh "docker build -t nanajanashia/demo-app:${IMAGE_NAME} ."
|
|
sh "echo $PASS | docker login -u $USER --password-stdin"
|
|
sh "docker push nanajanashia/demo-app:${IMAGE_NAME}"
|
|
}
|
|
}
|
|
}
|
|
}
|
|
stage('deploy') {
|
|
steps {
|
|
script {
|
|
withKubeConfig([credentialsId: 'k8s-credentials', serverUrl: 'https://7293fae4-4c9d-4629-bc82-262d0a2b8e3c.eu-central-2.linodelke.net']) {
|
|
sh 'envsubst < kubernetes/deployment.yaml | kubectl apply -f -'
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|