java项目构建脚本
cat /data/soft/shell/startcms.sh
#!/bin/bash
pid=`lsof -n -P -t -i :21004`
[ -n "$pid" ]&& kill -9 $pid
sleep 3
APP_HOME="/data/webdata/apps"
NAME="cms"
cd $APP_HOME
[ ! -d "bak" ]&& mkdir "bak"
if [ -f "$NAME.jar" ];then
cp $NAME.jar "bak/$NAME.jar_`date +%Y%m%d`";
fi
if [ -f $NAME.jar ];then rm -rf $NAME.jar;
else
echo "No $NAME.jar is existed";
fi
cp -fr "/var/lib/jenkins/workspace/$NAME/$NAME.server/target/$NAME.jar" "/data/webdata/apps/"
nohup `java -Xmx512m -Xms256m -jar -Dspring.profiles.active=test $APP_HOME/$NAME.jar` > /dev/null 2>&1&
根据你的项目jar的名称修改NAME的值
/var/lib/jenkins/workspace/工作空间
/data/webdata/apps项目运行时jar的位置
vue构建脚本
vue项目配置
1.新建一个自由风格的软件项目
2.源码管理配置git地址和版本号,授权账号
3.构建触发器选择Generic Webhook Trigger
Optional filter选择Poll SCM,定时表达式填写* */2 * * *
4.构建环境选择Provide Node & npm bin/ folder to PATH(如果没有先跳过保存,在管理界面中的菜单:系统管理->管理插件-可选插件,右上角搜索 nodejs,在列表中选择安装)
5.构建脚本如下
echo $PATH
node -v
npm -v
npm install -g cnpm --registry=https://registry.npm.taobao.org
cnpm install
npm run build
cd dist
/bin/cp -fr ./* /data/webdata/apps/zwy_exchange_web
安装淘宝镜像cnpm为全局
最后拷贝编译后的文件到部署目录中
通过ssh执行远程服务器上的脚本
Jenkins和远程server可以互通,pub相互拷贝到~/author中
Jenkins需要ssh到远程server上并执行其服务器上的脚步;
1.系统设置
SSH remote hosts配置中新增远程服务器的ssh授权
2.新增插件
依次点击 系统管理->插件管理-> 可选插件-> 过滤搜索框中 查找如下插件:
SSH Plugin:这个插件使用 SSH 协议执行远程 shell 命令。
Deploy to container Plugin
publish over SSH,
3.其他配置如前,这里主要注意Post-Steps
1.勾选Run only if build succeeds
2.新增Execute shell script on remote host using ssh,贴如下执行命令
BUILD_ID=DONTKILLME
sh /data/soft/shell/startapp.sh epay test
参考资料:
https://blog.csdn.net/l1028386804/article/details/78669778
https://blog.csdn.net/ming19951224/article/details/80958761