Browse Source

jenkins node项目部署脚本,服务端,前端都可以用

lrf 3 years ago
parent
commit
3f657d4d3d
1 changed files with 51 additions and 0 deletions
  1. 51 0
      jenkins-node项目脚本

+ 51 - 0
jenkins-node项目脚本

@@ -0,0 +1,51 @@
+#搜索 "按需修改" ,修改对应位置变量
+#项目类型 server-服务端/web-前端 -按需修改
+projectType=server
+#该类型项目根目录
+rootPath=/usr/local/workspace/${projectType}
+#进入该类型项目的根目录
+cd /usr/local/workspace/server
+
+#此项目所在的目录,换地方得写 -按需修改
+rootDir=zhwl
+
+#需要检查的文件/文件夹,确定是否下载依赖
+checkDir=node_modules
+
+#默认是已经有项目了 0=true/1=false
+isNew=1
+
+#pm2 名称,因为pm2 stop 可以用id,也可以用规定好的名称
+pm2Name=service-zhwl
+
+#检测创建 此项目的所在目录
+if [ ! -d ${rootDir} ];then
+	mkdir ${rootDir}
+fi
+
+#进入该项目的目录
+cd ${rootDir}
+#检测项目是否存在,如果不存在,就用上面写好的git地址 在jenkins的全局变量去下项目
+if [ ! -d ${JOB_BASE_NAME} ];then
+	git clone ${GIT_URL}
+    isNew=0
+fi
+#进入项目根目录,如果Jenkins的该工程名和文件夹名不一致,此处会进不去文件夹
+cd ${JOB_BASE_NAME}
+
+#PS:下面适用的是node项目(vue;eggjs等)
+if [ -f ${isNew} ];then
+	npm i
+else
+	git pull
+	#判断旧项目是否有依赖,没有依赖直接下
+	if [ ! -d ${checkDir} ];then
+		npm i
+	fi
+fi
+#有依赖了.判断是server/web,然后执行对应部署操作
+if [ ${projectType} -eq "server" ];then
+	[ pm2 stop pm2Name && pm2 start ] || pm2 start
+else
+	npm run build
+fi