实现 jenkins 在构建完毕后自动执行某些脚本

实现 jenkins 在构建完毕后自动执行某些脚本,那就需要再安装一个插件【Post build task】

回到首页,点击 【Manage Jenkins(系统管理)】-【Manage Plugins(插件管理)】-【可选插件】-输入框中输入【Post build task】

安装 【Post build task】插件,并重启 jenkins。

刷新页面,重新登录 jenkins,回到首页,点击项目名称:

点击配置:

依次点击【构建后操作】-【增加构建后操作步骤】-【post build task】

在【Log text】下填写内容 test (固定)。

在 【Script】填写以下脚本:

#!/bin/bash
# 这里可替换为你的 war 或 jar 包路径
APP_NAME=mblog-4.0.0.jar
APP_PATH=/www/wwwroot/mblog
LOG_NAME=start.log
LOG_PATH=/www/wwwroot/mblog

# 检查程序是否在运行
pid=`ps -ef|grep $APP_NAME|grep -v grep|awk '{print $2}' `
date > $LOG_PATH/$LOG_NAME
if [ -z "${pid}" ]; then
    echo '程序目前正在启动...' >> $LOG_PATH/$LOG_NAME
    # 如果程序不存在直接启动程序,根据个人需求是否需要指定端口号
    cp -r target/lib /www/wwwroot/mblog/lib
    cp target/mblog-4.0.0.jar $APP_PATH/$APP_NAME
    nohup java -jar  $APP_PATH/$APP_NAME --spring.profiles.active=pro >> $LOG_PATH/$LOG_NAME 2>&1 &
else
    # 如果已经执行,将程序停止
    echo '程序目前启动中,正在关闭程序...' >> $LOG_PATH/$LOG_NAME
    kill -9 $pid
    echo '已关闭运行中的程序~' >> $LOG_PATH/$LOG_NAME
    # 停止之后启动程序,根据个人需求是否需要指定端口号
    cp -r target/lib /www/wwwroot/mblog/lib
    cp target/mblog-4.0.0.jar $APP_PATH/$APP_NAME
    nohup java -jar  $APP_PATH/$APP_NAME --spring.profiles.active=pro >> $LOG_PATH/$LOG_NAME 2>&1 &
fi

脚本需要注意的地方

jenkins 【post build task】下的脚本,当前操作的目录在:~/.jenkins/workspace/任务名称下。

java -jar $APP_NAME 可以加属性参数,如端口号、应用名称、环境选择等。

上述的脚本,当程序以及运行时,会自动把已启动的程序停止,然后重新运行程序(也是程序重新发布的操作)。

$LOG_PATH 为输出日志,可自己定义输出文件的位置。

然后点击保存。

 

回到首页,再次点击构建,等待构建成功。

 

之后我们每次修改了代码,只需要将代码上传到 gitee 中,然后在 jenkins 中点击构建,即可实现重新发布项目。


已有 0 条评论

    欢迎您,新朋友,感谢参与互动!