pipeline { agent { node { label 'maven' } } environment { KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig' REGISTRY = 'docker.io' NAMESPACE = 'zq975684' APP = 'devops-java-sample' } stages { stage('checkout scm') { steps { git(url: 'https://gitee.com/stevenqingcloud/devops-java-sample.git', credentialsId: 'gitee-id', branch: 'master', changelog: true, poll: false) } } stage('unit test') { steps { container('maven') { sh 'mvn clean -o -gs `pwd`/configuration/settings.xml test' } } } stage('build and push') { steps { container('maven') { sh 'mvn -o -Dmaven.test.skip=true -gs `pwd`/configuration/settings.xml clean package' sh 'docker build -f Dockerfile-online -t $REGISTRY/$NAMESPACE/$APP:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER .' withCredentials([usernamePassword(credentialsId : 'dockerhub-id' ,passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,)]) { sh 'echo "$DOCKER_PASSWORD" | docker login $REGISTRY -u "$DOCKER_USERNAME" --password-stdin' sh 'docker push $REGISTRY/$NAMESPACE/$APP:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER' } } } } stage('stage-artifacts') { steps { archiveArtifacts 'target/*.jar' } } stage('deploy to dev') { steps { // input(message: '@admin', submitter: 'admin') container ('maven') { withCredentials([ kubeconfigFile( credentialsId: env.KUBECONFIG_CREDENTIAL_ID, variable: 'KUBECONFIG') ]) { sh 'envsubst < deploy/dev-ol/devops-sample.yaml | kubectl apply -f -' sh 'envsubst < deploy/dev-ol/devops-sample-svc.yaml | kubectl apply -f -' } } } } } }