From 919eca95f98f046509d7a5155e1523b6754a2742 Mon Sep 17 00:00:00 2001 From: weir <1261174789@qq.com> Date: Sun, 25 Jul 2021 01:24:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0Jenkinsfile?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Jenkinsfile | 91 ++++--------------- .../src/main/resources/logback-spring.xml | 1 - yudao-admin-ui/Jenkinsfile | 41 +++++++++ 3 files changed, 58 insertions(+), 75 deletions(-) create mode 100644 yudao-admin-ui/Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile index 681fea90f..318d4cb92 100644 --- a/Jenkinsfile +++ b/Jenkinsfile @@ -1,12 +1,10 @@ +#!groovy pipeline { - agent { - node { - label 'maven' - } - } + + agent any parameters { - string(name:'TAG_NAME',defaultValue: '',description:'') + string(name: 'TAG_NAME', defaultValue: '', description: '') } environment { @@ -24,87 +22,32 @@ pipeline { GITHUB_ACCOUNT = 'https://gitee.com/zhijiantianya/ruoyi-vue-pro' // 应用名称 APP_NAME = 'yudao-admin-server' + // 应用部署路径 + APP_DEPLOY_BASE_DIR = '/media/pi/KINGTON/data/work/projects/' } stages { - stage ('checkout scm') { + stage('检出') { steps { - checkout(scm) + git url: "https://gitee.com/will-we/ruoyi-vue-pro.git", + branch: "devops" } } - stage ('unit test') { + stage('构建') { steps { - container ('maven') { - sh 'mvn clean -gs `pwd`/configuration/settings.xml test' - } + sh 'mvn clean package -Dmaven.test.skip=true' } } - stage ('build & push') { + stage('部署') { steps { - container ('maven') { - sh 'mvn -Dmaven.test.skip=true -gs `pwd`/configuration/settings.xml clean package' - sh 'docker build -f Dockerfile-online -t $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER .' - withCredentials([usernamePassword(passwordVariable : 'DOCKER_PASSWORD' ,usernameVariable : 'DOCKER_USERNAME' ,credentialsId : "$DOCKER_CREDENTIAL_ID" ,)]) { - sh 'echo "$DOCKER_PASSWORD" | docker login $REGISTRY -u "$DOCKER_USERNAME" --password-stdin' - sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER' - } - } + sh 'cp -f ' + ' bin/deploy.sh ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + sh 'cp -f ' + "${env.APP_NAME}" + '/target/*.jar ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" +'/build/' + archiveArtifacts "${env.APP_NAME}" + '/target/*.jar' + sh 'chmod +x ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh' + sh 'bash ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh' } } - - stage('push latest'){ - when{ - branch 'master' - } - steps{ - container ('maven') { - sh 'docker tag $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:latest ' - sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:latest ' - } - } - } - - stage('deploy to dev') { - when{ - branch 'master' - } - steps { - input(id: 'deploy-to-dev', message: 'deploy to dev?') - kubernetesDeploy(configs: 'deploy/dev-ol/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") - } - } - stage('push with tag'){ - when{ - expression{ - return params.TAG_NAME =~ /v.*/ - } - } - steps { - container ('maven') { - input(id: 'release-image-with-tag', message: 'release image with tag?') - withCredentials([usernamePassword(credentialsId: "$GITHUB_CREDENTIAL_ID", passwordVariable: 'GIT_PASSWORD', usernameVariable: 'GIT_USERNAME')]) { - sh 'git config --global user.email "kubesphere@yunify.com" ' - sh 'git config --global user.name "kubesphere" ' - sh 'git tag -a $TAG_NAME -m "$TAG_NAME" ' - sh 'git push http://$GIT_USERNAME:$GIT_PASSWORD@github.com/$GITHUB_ACCOUNT/devops-java-sample.git --tags --ipv4' - } - sh 'docker tag $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:SNAPSHOT-$BRANCH_NAME-$BUILD_NUMBER $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$TAG_NAME ' - sh 'docker push $REGISTRY/$DOCKERHUB_NAMESPACE/$APP_NAME:$TAG_NAME ' - } - } - } - stage('deploy to production') { - when{ - expression{ - return params.TAG_NAME =~ /v.*/ - } - } - steps { - input(id: 'deploy-to-production', message: 'deploy to production?') - kubernetesDeploy(configs: 'deploy/prod-ol/**', enableConfigSubstitution: true, kubeconfigId: "$KUBECONFIG_CREDENTIAL_ID") - } - } } } \ No newline at end of file diff --git a/yudao-admin-server/src/main/resources/logback-spring.xml b/yudao-admin-server/src/main/resources/logback-spring.xml index eba05d64a..5bc181fd2 100644 --- a/yudao-admin-server/src/main/resources/logback-spring.xml +++ b/yudao-admin-server/src/main/resources/logback-spring.xml @@ -70,7 +70,6 @@ - diff --git a/yudao-admin-ui/Jenkinsfile b/yudao-admin-ui/Jenkinsfile new file mode 100644 index 000000000..5cb6d70e2 --- /dev/null +++ b/yudao-admin-ui/Jenkinsfile @@ -0,0 +1,41 @@ +#!groovy +pipeline { + + agent any + + tools { nodejs "nodejs" } + + parameters { + string(name: 'TAG_NAME', defaultValue: '', description: '') + } + + environment { + APP_NAME = 'yudao-admin-ui' + NGINX_WORKDIR = '/home/pi/mydata/nginx/html/' + } + + stages { + stage('检出') { + steps { + git url: "https://gitee.com/will-we/ruoyi-vue-pro.git", + branch: "devops" + } + } + + stage('构建') { + steps { + sh 'cnpm --prefix '+ "${env.APP_NAME}" +' install' + sh 'cnpm --prefix '+ "${env.APP_NAME}" +' run build:demo1024' + } + } + + stage('部署') { + steps { + sh 'cp -rf ' + "${env.APP_NAME}" + '/dist/. ' + "${env.NGINX_WORKDIR}" + sh 'tar -zcvf ' + "${env.APP_NAME}" + '/'+ "${env.APP_NAME}" + '.tar.gz ' + "${env.APP_NAME}" + '/dist/' + archiveArtifacts "${env.APP_NAME}" + '/'+ "${env.APP_NAME}" + '.tar.gz' + //TODO 考虑刷新缓存的问题 + } + } + } +}