Jenkins

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
安装好插件后,点击系统管理-->系统设置,在系统设置界面找到配置项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 "$a,$b p" $path

#sed -i "$a,$b d" $path

#$aa=$a-1
#sed -i "$aa a\this is a test line $b" $path

sed -n -e "$branchesStartLineNum,$branchesEndLineNum{/<name>/p}" $path

#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  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

#sed -n "$a,$b p" $path

#sed -i "$a,$b d" $path

#$aa=$a-1
#sed -i "$aa a\this is a test line $b" $path

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
posted @   rbcd  阅读(25)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示