Commit 2bcc55053b86634c9c45710fb131bc2e3940c941

Authored by 芋道源码
Committed by Gitee
2 parents dcfed9f0 91baf418

!38 添加 Jenkinsfile;用于支持Jenkins的部署

Merge pull request !38 from weir/devops
Jenkinsfile 0 → 100644
  1 +#!groovy
  2 +pipeline {
  3 +
  4 + agent any
  5 +
  6 + parameters {
  7 + string(name: 'TAG_NAME', defaultValue: '', description: '')
  8 + }
  9 +
  10 + environment {
  11 + // DockerHub 凭证 ID(登录您的 DockerHub)
  12 + DOCKER_CREDENTIAL_ID = 'dockerhub-id'
  13 + // GitHub 凭证 ID (推送 tag 到 GitHub 仓库)
  14 + GITHUB_CREDENTIAL_ID = 'github-id'
  15 + // kubeconfig 凭证 ID (访问接入正在运行的 Kubernetes 集群)
  16 + KUBECONFIG_CREDENTIAL_ID = 'demo-kubeconfig'
  17 + // 镜像的推送
  18 + REGISTRY = 'docker.io'
  19 + // DockerHub 账号名
  20 + DOCKERHUB_NAMESPACE = 'docker_username'
  21 + // GitHub 账号名
  22 + GITHUB_ACCOUNT = 'https://gitee.com/zhijiantianya/ruoyi-vue-pro'
  23 + // 应用名称
  24 + APP_NAME = 'yudao-admin-server'
  25 + // 应用部署路径
  26 + APP_DEPLOY_BASE_DIR = '/media/pi/KINGTON/data/work/projects/'
  27 + }
  28 +
  29 + stages {
  30 + stage('检出') {
  31 + steps {
  32 + git url: "https://gitee.com/will-we/ruoyi-vue-pro.git",
  33 + branch: "devops"
  34 + }
  35 + }
  36 +
  37 + stage('构建') {
  38 + steps {
  39 + // TODO 解决多环境链接、密码不同配置临时方案
  40 + sh 'if [ ! -d "' + "${env.HOME}" + '/resources" ];then\n' +
  41 + ' echo "配置文件不存在无需修改"\n' +
  42 + 'else\n' +
  43 + ' cp -rf ' + "${env.HOME}" + '/resources/*.yaml ' + "${env.APP_NAME}" + '/src/main/resources\n' +
  44 + ' echo "配置文件替换"\n' +
  45 + 'fi'
  46 + sh 'mvn clean package -Dmaven.test.skip=true'
  47 + }
  48 + }
  49 +
  50 + stage('部署') {
  51 + steps {
  52 + sh 'cp -f ' + ' bin/deploy.sh ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}"
  53 + sh 'cp -f ' + "${env.APP_NAME}" + '/target/*.jar ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" +'/build/'
  54 + archiveArtifacts "${env.APP_NAME}" + '/target/*.jar'
  55 + sh 'chmod +x ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh'
  56 + sh 'bash ' + "${env.APP_DEPLOY_BASE_DIR}" + "${env.APP_NAME}" + '/deploy.sh'
  57 + }
  58 + }
  59 + }
  60 +}
0 \ No newline at end of file 61 \ No newline at end of file
bin/deploy.sh
@@ -8,7 +8,7 @@ set -e @@ -8,7 +8,7 @@ set -e
8 8
9 DATE=$(date +%Y%m%d%H%M) 9 DATE=$(date +%Y%m%d%H%M)
10 # 基础路径 10 # 基础路径
11 -BASE_PATH=/work/projects/yudao-admin-server 11 +BASE_PATH=/media/pi/KINGTON/data/work/projects/yudao-admin-server
12 # 编译后 jar 的地址。部署时,Jenkins 会上传 jar 包到该目录下 12 # 编译后 jar 的地址。部署时,Jenkins 会上传 jar 包到该目录下
13 SOURCE_PATH=$BASE_PATH/build 13 SOURCE_PATH=$BASE_PATH/build
14 # 服务名称。同时约定部署服务的 jar 包名字也为它。 14 # 服务名称。同时约定部署服务的 jar 包名字也为它。
@@ -24,11 +24,11 @@ HEAP_ERROR_PATH=$BASE_PATH/heapError @@ -24,11 +24,11 @@ HEAP_ERROR_PATH=$BASE_PATH/heapError
24 JAVA_OPS="-Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$HEAP_ERROR_PATH" 24 JAVA_OPS="-Xms512m -Xmx512m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$HEAP_ERROR_PATH"
25 25
26 # SkyWalking Agent 配置 26 # SkyWalking Agent 配置
27 -export SW_AGENT_NAME=$SERVER_NAME  
28 -export SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.0.84:11800  
29 -export SW_GRPC_LOG_SERVER_HOST=192.168.0.84  
30 -export SW_AGENT_TRACE_IGNORE_PATH="Redisson/PING,/actuator/**,/admin/**"  
31 -export JAVA_AGENT=-javaagent:/work/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar 27 +#export SW_AGENT_NAME=$SERVER_NAME
  28 +#export SW_AGENT_COLLECTOR_BACKEND_SERVICES=192.168.0.84:11800
  29 +#export SW_GRPC_LOG_SERVER_HOST=192.168.0.84
  30 +#export SW_AGENT_TRACE_IGNORE_PATH="Redisson/PING,/actuator/**,/admin/**"
  31 +#export JAVA_AGENT=-javaagent:/work/skywalking/apache-skywalking-apm-bin/agent/skywalking-agent.jar
32 32
33 # 备份 33 # 备份
34 function backup() { 34 function backup() {
@@ -159,7 +159,7 @@ function deploy() { @@ -159,7 +159,7 @@ function deploy() {
159 # 启动 Java 服务 159 # 启动 Java 服务
160 start 160 start
161 # 健康检查 161 # 健康检查
162 - healthCheck 162 +# healthCheck
163 } 163 }
164 164
165 deploy 165 deploy
yudao-admin-server/src/main/resources/logback-spring.xml
@@ -65,7 +65,7 @@ @@ -65,7 +65,7 @@
65 </root> 65 </root>
66 </springProfile> 66 </springProfile>
67 <!-- 其它环境 --> 67 <!-- 其它环境 -->
68 - <springProfile name="default"> 68 + <springProfile name="dev,default">
69 <root level="INFO"> 69 <root level="INFO">
70 <appender-ref ref="STDOUT"/> 70 <appender-ref ref="STDOUT"/>
71 <appender-ref ref="ASYNC"/> 71 <appender-ref ref="ASYNC"/>
yudao-admin-ui/.env.production
@@ -3,3 +3,8 @@ ENV = &#39;production&#39; @@ -3,3 +3,8 @@ ENV = &#39;production&#39;
3 3
4 # 芋道管理系统/生产环境 4 # 芋道管理系统/生产环境
5 VUE_APP_BASE_API = '/prod-api' 5 VUE_APP_BASE_API = '/prod-api'
  6 +# 根据服务器或域名修改
  7 +PUBLIC_PATH = 'http://you_ip.cn/yudao-admin/'
  8 +# 二级部署路径
  9 +VUE_APP_APP_NAME ='yudao-admin'
  10 +
yudao-admin-ui/Jenkinsfile 0 → 100644
  1 +#!groovy
  2 +pipeline {
  3 +
  4 + agent any
  5 +
  6 + tools { nodejs "nodejs" }
  7 +
  8 + parameters {
  9 + string(name: 'TAG_NAME', defaultValue: '', description: '')
  10 + }
  11 +
  12 + environment {
  13 + APP_NAME = 'yudao-admin'
  14 + PROJECT_DIR='yudao-admin-ui'
  15 + NGINX_WORKDIR = '/home/pi/mydata/nginx/html/'
  16 + }
  17 +
  18 + stages {
  19 + stage('检出') {
  20 + steps {
  21 + git url: "https://gitee.com/will-we/ruoyi-vue-pro.git",
  22 + branch: "devops"
  23 + }
  24 + }
  25 +
  26 + stage('构建') {
  27 + steps {
  28 + sh 'cnpm --prefix '+ "${env.PROJECT_DIR}" +' install'
  29 + sh 'cnpm --prefix '+ "${env.PROJECT_DIR}" +' run build:prod'
  30 + }
  31 + }
  32 +
  33 + stage('部署') {
  34 + steps {
  35 + sh 'rm -f ' + "${env.APP_NAME}" + '/'+ "${env.APP_NAME}" + '.tar.gz'
  36 + sh 'mkdir -p ' + "${env.NGINX_WORKDIR}" + "${env.APP_NAME}"
  37 + sh 'cp -rf ' + "${env.PROJECT_DIR}" + '/dist/. ' + "${env.NGINX_WORKDIR}" + "${env.APP_NAME}"
  38 + sh 'tar -zcvf ' + "${env.PROJECT_DIR}" + '/'+ "${env.PROJECT_DIR}" + '.tar.gz ' + "${env.PROJECT_DIR}" + '/dist/'
  39 + archiveArtifacts "${env.PROJECT_DIR}" + '/'+ "${env.PROJECT_DIR}" + '.tar.gz'
  40 + //TODO 考虑刷新缓存的问题
  41 + }
  42 + }
  43 + }
  44 +}
yudao-admin-ui/src/router/index.js
@@ -122,6 +122,7 @@ export const constantRoutes = [ @@ -122,6 +122,7 @@ export const constantRoutes = [
122 ] 122 ]
123 123
124 export default new Router({ 124 export default new Router({
  125 + base: process.env.VUE_APP_APP_NAME ? process.env.VUE_APP_APP_NAME : "/",
125 mode: 'history', // 去掉url中的# 126 mode: 'history', // 去掉url中的#
126 scrollBehavior: () => ({ y: 0 }), 127 scrollBehavior: () => ({ y: 0 }),
127 routes: constantRoutes 128 routes: constantRoutes
yudao-dependencies/pom.xml
@@ -41,7 +41,7 @@ @@ -41,7 +41,7 @@
41 <podam.version>7.2.6.RELEASE</podam.version> 41 <podam.version>7.2.6.RELEASE</podam.version>
42 <jedis-mock.version>0.1.16</jedis-mock.version> 42 <jedis-mock.version>0.1.16</jedis-mock.version>
43 <!-- 工具类相关 --> 43 <!-- 工具类相关 -->
44 - <lombok.version>1.16.14</lombok.version> 44 + <lombok.version>1.18.12</lombok.version>
45 <mapstruct.version>1.4.1.Final</mapstruct.version> 45 <mapstruct.version>1.4.1.Final</mapstruct.version>
46 <hutool.version>5.6.1</hutool.version> 46 <hutool.version>5.6.1</hutool.version>
47 <easyexcel.verion>2.2.7</easyexcel.verion> 47 <easyexcel.verion>2.2.7</easyexcel.verion>