diff --git a/Jenkinsfile-version-increment/Jenkinsfile b/Jenkinsfile-version-increment/Jenkinsfile new file mode 100644 index 0000000..fcee33d --- /dev/null +++ b/Jenkinsfile-version-increment/Jenkinsfile @@ -0,0 +1,63 @@ +#!/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') =~ '(.+)' + 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-repo', 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 { + echo 'deploying docker image to EC2...' + } + } + } + stage('commit version update') { + steps { + script { + withCredentials([usernamePassword(credentialsId: 'gitlab-credentials', passwordVariable: 'PASS', usernameVariable: 'USER')]) { + // git config for the first time run + sh "git remote set-url origin https://${USER}:${PASS}@gitlab.com/nanuchi/java-maven-app.git" + sh 'git add .' + sh 'git commit -m "ci: version bump"' + sh 'git push origin HEAD:jenkins-jobs' + } + } + } + } + } +}