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 考虑刷新缓存的问题
+ }
+ }
+ }
+}