游乐游手机版
首页/系统平台/文章详情

Jenkins构建分支选择与执行日志展示

时间:2026-08-13 07:40
运维 | DevOps | Jenkins 构建分支选择及执行日志展示基于 Jenkins 2 541 3 的实战案例,演示如何在 Jenkins 中完成分支选择、Git 提交日志展示、远程 Shell 执行日志展示以及应用日志查看。主要操作分支选择git提交日志展示远程shell执行日志展示展示应

运维 | DevOps | Jenkins 构建分支选择及执行日志展示

基于 Jenkins 2.541.3 的实战案例,演示如何在 Jenkins 中完成分支选择、Git 提交日志展示、远程 Shell 执行日志展示以及应用日志查看。

主要操作

分支选择
git提交日志展示
远程shell执行日志展示
展示应用日志

分支选择

分支选择的核心是 Git Parameter Plugin 插件,通过该插件可以在构建时动态选择分支,提升 Jenkins 多分支构建的灵活性。

插件安装

分支参数配置

拉取git源码地方

将上面参数名 BRANCH 配置到 Branches to build 中,即 ${BRANCH},从而实现按选择分支拉取源码。

构建前后功能变化

  • 配置前

  • 配置后

git提交日志展示

执行命令日志结果展示

插件ssh安装

系统配置ssh

任务配置调整

  • 点击 【增加构建步骤】 不是 【增加构建后操作步骤】
  • 先把【SSH Server】配置好,然后再继续配置【SSH site】。

    注意 SSH Publishers 里面【Exec command】 为空
  • SSH Server

  • SSH site

配置脚本如下:
#!/bin/bash
app_name="app"
app_pattern="${app_name}-*.jar"
port=8081
temp_path=/usr/local/temp
deploy_path=/usr/local
JA VA_HOME=/usr/local/jdk-21.0.11
log_path=/data/log
log_file=${log_path}/app.log
deploy_log=${log_path}/deploy-app-$(date +%Y%m%d_%H%M%S).log

mkdir -p "${log_path}"

# 定义日志函数:同时输出到控制台和日志文件(带时间戳)
log() {
echo "$(date '+%Y-%m-%d %H:%M:%S') $*" | tee -a "${deploy_log}"
}

log "=====部署开始 ${app_name}====="

# 等待Jar包上传完成,最多10s
new_jar=""
for ((i=0;i<10;i++)); do
new_jar=$(find "${temp_path}" -maxdepth 1 -name "${app_pattern}" | head -1)
[ -f "${new_jar}" ] && break
log "等待Jar包上传 $i/10"
sleep 1
done
[ ! -f "${new_jar}" ] && log "错误:未找到Jar包" && exit 1

jar_name=$(basename "${new_jar}")
target_jar="${deploy_path}/${jar_name}"
log "待部署包:${new_jar}"

# 停止旧进程并等待进程消亡
run_pid=$(ps -ef | grep "ja va -jar" | grep "${app_name}" | grep -v grep | awk '{print $2}')
if [ -n "${run_pid}" ]; then
log "终止旧进程 ${run_pid}"
kill -15 "${run_pid}"
for ((i=0;i<8;i++)); do
! ps -p "${run_pid}" >/dev/null && break
log "等待旧进程退出..."
sleep 2
done
if ps -p "${run_pid}" >/dev/null; then
log "超时,强制杀死 ${run_pid}"
kill -9 "${run_pid}"
sleep 2
fi
fi

# 端口兜底释放
while lsof -t -i:"${port}" >/dev/null; do
log "端口${port}占用,等待释放"
sleep 2
done

# 更新jar
rm -f "${deploy_path}/${app_pattern}"
mv "${new_jar}" "${target_jar}"

# 启动服务
log "启动应用 port:${port}"
nohup ${JA VA_HOME}/bin/ja va -jar
-Dserver.port=${port}
-Xmx512m -Xms256m
"${target_jar}" >> "${log_file}" 2>&1 &
new_pid=$!
log "新进程PID: ${new_pid}"

sleep 3
if ! ps -p "${new_pid}" >/dev/null; then
log "警告:进程启动异常,请查看日志 ${log_file}"
fi

rm -rf "${temp_path:?}"/*
log "=====部署完成====="
exit 0

执行命令日志

展示应用日志

  • 可以通过新增 SSH 命令的方式来实现应用日志展示。

    配置如下

命令

#!/bin/bash
# 等待5秒,让服务完成启动输出日志
sleep 5
# 查看最后300行日志,自行调整行数
tail -n 300 /data/log/app.log

展示结果

来源:https://segmentfault.com/a/1190000048089034
上一篇ServerBee 部署指南:基于 Docker Compose 的轻量级监控方案 下一篇Jenkins Pipeline流程构建与DevOps运维实践指南
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
VMware安装Ubuntu完整教程:创建虚拟机与启动验证
系统平台 · 2026-09-01

VMware安装Ubuntu完整教程:创建虚拟机与启动验证

本教程详细演示如何在VMware中创建Ubuntu虚拟机,涵盖ISO挂载、硬件配置、安装向导及启动验证。通过清晰的步骤与验证命令,帮助新手快速搭建可用的Linux学习环境。

Win10专业版U盘安装教程:制作启动盘与完整安装步骤
系统平台 · 2026-09-01

Win10专业版U盘安装教程:制作启动盘与完整安装步骤

本文提供Win10专业版U盘安装完整流程:准备8GB以上U盘与官方镜像,制作启动盘并核对盘符;通过F12 F11 Esc等快捷键或BIOS设置U盘为第一启动项;安装时选择专业版并谨慎分区;完成后在“设置—系统—关于”验证版本与激活状态。操作前务必备份数据。

Windows10系统字体太小怎么调大
系统平台 · 2026-08-27

Windows10系统字体太小怎么调大

Windows10系统字体太小怎么调大?只需两步:首先打开设置中的显示选项,将缩放比例调整为125%或150%;随后运行ClearType文本调谐器优化字体清晰度。此方法适用于高分屏及普通屏幕,无需修改注册表即可解决界面拥挤问题。

Win10磁盘占用100%基础排查:从监控到清理的完整步骤
系统平台 · 2026-08-27

Win10磁盘占用100%基础排查:从监控到清理的完整步骤

Windows 10系统出现磁盘占用100%会导致电脑卡顿、程序响应缓慢。本文提供基础排查方案:首先通过任务管理器确认是否为磁盘高负载,随后进入系统存储页面分析C盘占用类别,最后针对性清理临时文件。遵循此流程可有效缓解磁盘压力,避免盲目重装系统。

Windows10系统怎么显示此电脑和控制面板
系统平台 · 2026-08-27

Windows10系统怎么显示此电脑和控制面板

Windows10默认可能不显示桌面图标,导致找不到“此电脑”和“控制面板”。只需进入个性化设置,在“桌面图标设置”中勾选对应选项即可恢复。本文提供详细图文步骤,帮助快速找回系统入口。