jenkins安装包下载
Jenkins自动触发配置
位置:Build Triggers -> Poll SCM
周一至周五每天8点13点构建
H 8,13 * * 1-5
每天8点13点构建
H 8,13 * * *
每2分钟检查下git仓库代码是否有变化,有变化时自动构建
H/2 * * * *
打包命令
clen package -U -B -e -Dmaven.test.skip=true
构建后发送到服务器配置
Source files 需要发送的文件
Remove prefix 移除Source files配置的前缀
Remove directory 发送到服务器上的目录,这个目录是在系统配置的默认目录后面
配置git仓库密码访问
在添加用户页面:
选择SSH Username with private key
填写Username
选择private key 的 Enter directly
把生成的私钥放入这个文本框保存即可
公钥需要配置在git仓库中
jenkins自动部署启动项目时出现超时问题
由于用户就是a用户,但在执行命令时又切换了a用户,由于已经是a用户,
所以再次切换a用户时,会出现输入密码的情况,所以会出现超时错误了
jenkins插件Publish Over SSH
jenkins主从结构时,需要安装插件Publish Over SSH
安装好插件后,点击系统管理
jenkins主从配置
在配置密码那里直接配置从机器的用户名、密码即可
打包之前,在命令窗口可以写打包其他分支的命令
if [ `git branch | grep branch_name` ]; then
git branch -D branch_name
fi
git checkout -b branch_name origin/branch_name
mvn -s /usr/maven/settings.xml clean install -Dmaven.test.skip=true
分支名称脚本查询branchNameQuerySingleItem.sh
#!/bin/sh
echo ""
echo "-------------------- $1 query branch name start ----------------------"
if [ ! -n "$1" ]; then
echo "parameter one not set"
exit
fi
path=/root/.jenkins/jobs/$1/config.xml
branchesStartLineNum=`sed -n -e '/<branches>/=' $path`
if [ ! -n "$branchesStartLineNum" ]; then
echo "branchesStartLineNum unable to get"
exit
fi
branchesEndLineNum=`sed -n -e '/<\/branches>/=' $path`
if [ ! -n "$branchesEndLineNum" ]; then
echo "branchesEndLineNum unable to get"
exit
fi
sed -n -e "$branchesStartLineNum,$branchesEndLineNum{/<name>/p}" $path
echo "-------------------- $1 query branch name end ----------------------"
echo ""
分支名称脚本查询jenkinsJobsItemBrandMultiQuery.sh
#!/bin/sh
echo in parameter $#
for arg in $@
do
source /usr/local/rbc/branchNameQuery/branchNameQuerySingleItem.sh $arg
done
分支名称脚本查询jenkinsJobsItemMatchBrand.sh
#!/bin/sh
if [ ! -n "$1" ]; then
echo "parameter one not set"
exit
fi
echo the parameter name is $1
cd /root/.jenkins/jobs
fileNameList=`ls | grep "^$1"`
echo matching file is $fileNameList
echo ""
echo file number `ls | grep "^$1" | wc -l`
echo ""
for fileName in $fileNameList
do
source /usr/local/rbc/branchNameQuery/branchNameQuerySingleItem.sh $fileName
done
echo ""
分支名称脚本查询jenkinsJobsItemMatchList.sh
#!/bin/sh
if [ ! -n "$1" ]; then
echo "parameter one not set"
exit
fi
echo the parameter name is $1
cd /root/.jenkins/jobs
fileNameList=`ls | grep "^$1"`
echo matching file is $fileNameList
echo ""
echo file number `ls | grep "^$1" | wc -l`
echo ""
for fileName in $fileNameList
do
echo "$fileName"
done
echo ""
分支名称脚本更新branchNameReplaceMultiItem.sh
#!/bin/sh
echo in parameter $#
branchName=${!#}
for arg in $@
do
if [ "$arg" != "$branchName" ]; then
echo $i
echo "--------------------- $arg $branchName start -------------------------"
source /usr/local/rbc/branchNameUpdate/branchNameReplaceSingleItem.sh $arg $branchName
echo "--------------------- $arg $branchName end -------------------------"
echo ""
fi
done
分支名称脚本更新branchNameReplaceSingleItem.sh
#!/bin/sh
echo ""
echo "-------------------- $1 $2 updtae branch name start ----------------------"
if [ ! -n "$1" ]; then
echo "parameter one not set"
exit
fi
if [ ! -n "$2" ]; then
echo "parameter two not set"
exit
fi
path=/root/.jenkins/jobs/$1/config.xml
branchesStartLineNum=`sed -n -e '/<branches>/=' $path`
if [ ! -n "$branchesStartLineNum" ]; then
echo "branchesStartLineNum unable to get"
exit
fi
branchesEndLineNum=`sed -n -e '/<\/branches>/=' $path`
if [ ! -n "$branchesEndLineNum" ]; then
echo "branchesEndLineNum unable to get"
exit
fi
brandsNameLineNum=`sed -n -e "$branchesStartLineNum,$branchesEndLineNum{/<name>/=}" $path`
if [ ! -n "$brandsNameLineNum" ]; then
echo "brandsNameLineNum unable to get"
exit
fi
sed -i "$brandsNameLineNum a\ <name>$2</name>" $path
sed -i "$brandsNameLineNum d" $path
echo "-------------------- $1 $2 updtae branch name end ----------------------"
echo ""
分支名称脚本更新jenkinsJobsItemBrandUpdate.sh
#!/bin/sh
if [ ! -n "$1" ]; then
echo "parameter one not set"
exit
fi
if [ ! -n "$2" ]; then
echo "parameter two not set"
exit
fi
echo the parameter name is $1 $2
branchName=$2
cd /root/.jenkins/jobs
fileNameList=`ls | grep "^$1"`
echo matching file is $fileNameList
echo ""
echo file number `ls | grep "^$1" | wc -l`
echo ""
for fileName in $fileNameList
do
source /usr/local/rbc/branchNameUpdate/branchNameReplaceSingleItem.sh $fileName $branchName
done
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)