Linux Jenkins自动化部署

流程

在这里插入图片描述

一、环境

1.git

yum install git -y

2.jdk

java官网下载jdk8,上传后解压到/usr/local/java下

vim /etc/profile
# 末尾添加
JAVA_HOME=/usr/local/java/jdk1.8.0_121
JRE_HOME=$JAVA_HOME/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib/rt.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH
source /etc/profile

3.maven

maven官网下载maven,上传后解压到/usr/local/maven下

a.配置maven环境

vim /etc/profile
# 末尾添加
MAVEN_HOME=/usr/local/maven/apache-maven-3.8.2
PATH=$MAVEN_HOME/bin:$PATH
export MAVEN_HOME PATH
source /etc/profile

b.修改setting.xml(镜像和本地仓库)

镜像

<mirror>
    <id>nexus-aliyun</id>
    <mirrorOf>central</mirrorOf>
    <name>Nexus aliyun</name>
    <url>http://maven.aliyun.com/nexus/content/groups/public</url>
</mirror>

仓库
在这里插入图片描述

4.Jenkins home

vim /etc/profile
export JENKINS_HOME=/usr/local/jenkins
source /etc/profile

二、启动

Jenkins官网下载Jenkins war包
命令启动

java -jar -Dhudson.security.csrf.GlobalCrumbIssuerConfiguration.DISABLE_CSRF_PROTECTION=true jenkins.war --httpPort=8888

第一次启动,密码会在控制台打印
或者

cat /root/.jenkins/secrets/initialAdminPassword

输入初始密码后,需要安装插件,采用推荐插件即可
后续可以依据此来删除不必要的插件,例如Gradle(看个人情况)
在这里插入图片描述
完成后创建管理员用户
在这里插入图片描述
接着一路确认即可

三、配置

在这里插入图片描述
在这里插入图片描述

1.Manage Plugins

在这里插入图片描述

2.Configuration System

a.Jenkins Location

在这里插入图片描述

b.Publish over SSH

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

c.Extended E-mail Notification

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3.Configure Global Security

在这里插入图片描述

4.Global Tool Configuration

a.Maven setting.xml

在这里插入图片描述

b.jdk

在这里插入图片描述

c.git

在这里插入图片描述

d.maven

在这里插入图片描述

四、使用

在这里插入图片描述
在这里插入图片描述

1.General

在这里插入图片描述

2.源码管理

在这里插入图片描述

3.构建触发器

在这里插入图片描述

4.构建环境

在这里插入图片描述

5.构建

在这里插入图片描述

6.构建后操作

a.Send build artifacts over SSH

在这里插入图片描述
在这里插入图片描述

b.Email

在这里插入图片描述

五、钩子

去git上添加钩子,url在构建触发器里有说明

附、代码

html

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>
</head>

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4" offset="0">
    <div width="95%" cellpadding="0" cellspacing="0"
        style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">
        <div>本邮件由系统自动发出,无需回复!
            <br />
            <br>各位同事,大家好,以下为${PROJECT_NAME }自动化测试项目构建信息
            <br />
            <div>
                <font color="#CC0000">构建结果 - ${BUILD_STATUS}</font>
            </div>
        </div>
        <div>
            <h4>
                <font color="#0B610B">构建信息</font>
            </h4>
            <hr size="2" width="100%" />
            <ul>
                <li>项目名称 : ${PROJECT_NAME}</li>
                <li>构建编号 : 第${BUILD_NUMBER}次构建</li>
                <li>触发原因: ${CAUSE}</li>
                <li>构建状态: ${BUILD_STATUS}</li>
                <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a>
                <li>工作目录&nbsp;&nbsp;<a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>
                </li>
                <li>构建 Url : <a href="${BUILD_URL}">${BUILD_URL}</a>
                </li>
                <li>项目 Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a>
                </li>
            </ul>
        </div>
        <div>
            <h4>
                <font color="#0B610B">测试报告</font>
            </h4>
            <hr size="2" width="100%" />
            <b>点击查看测试报告: <a href="${PROJECT_URL}ws/report/report.html">${PROJECT_URL}ws/report/report.html</a></b>
        </div>
        <!-- <div>
            <h4>
                <font color="#0B610B">测试结果</font>
            </h4>
            <hr size="2" width="100%" />
            <div>
                本次测试共执行<b>${TEST_COUNTS}</b>个用例,成功<b style="color: green">${TEST_COUNTS,var="pass"}</b>个,失败<b
                    style="color: red">${TEST_COUNTS,var="fail"}</b>个,跳过<b
                    style="color: #FFEB3B">${TEST_COUNTS,var="skip"}</b>个。
            </div>
        </div> -->
        <div>
            <h4>
                <font color="#0B610B">构建日志 (最后20行):</font>
                <hr size="2" width="100%" align="center" />
            </h4>
        </div>
        <div>
            <ul>
                <li>${BUILD_LOG, maxLines=22}</li>
            </ul>
        </div>
    </div>
</body>

</html>

run.sh

#!/bin/bash
#!/bin/bash
if [ -e ./archive ];then
echo -e "\e[1;42m archive文件夹存在 \e[0m\t"
else
echo -e "\e[1;41m archive文件夹不存在,自动创建 \e[0m\t"
mkdir archive
fi

if [ -e ./*.jar ];then
mv *.jar "`date +%Y-%m-%d`-pipeline.jar"
mv *.jar archive/
fi

source /etc/profile
rm -rf *.out
JAR_PATH='./archive'
JAR_NAME=$(find $JAR_PATH -name '*.jar' -printf '%f\n' | sort -rn | head -1)
echo -e "\e[1;42m 运行jar包为:$JAR_PATH/$JAR_NAME \e[0m\t"
java -jar "$JAR_PATH/$JAR_NAME" &

stop.sh

#!/bin/bash
#每个jar名字不同,需要区分
pid=`ps -ef |grep java|grep pipeline.jar|awk '{print $2}'`
if [ -n "$pid" ]
then
kill -9 $pid
echo -e "\e[1;42m 进程:$pid 已杀死 \e[0m\t"
else
echo -e "\e[1;41m 程序没有运行 \e[0m\t"
fi
rm -rf *.out
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值