最近花了一段时间研究jenkins这个工具。所以写下这篇文章,算是当做记录吧!

jenkins是什么?

Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson(Hudson是商用的),主要用于持续、自动的构建/测试软件项目、监控外部任务的运行(这个比较抽象,暂且写上,不做解释)。Jenkins用Java语言编写,可在Tomcat等流行的servlet容器中运行,也可独立运行。通常与版本管理工具(SCM)、构建工具结合使用。常用的版本控制工具有SVN、GIT,构建工具有Maven、Ant、Gradle。

jenkins的作用?

如果我们没用到jenkins,我们项目中,要发版了,我们都有些什么流程?

非jenkins

  1. 项目打包 mvn package。
  2. 上传到服务器。
  3. 执行启动脚本 start.sh 或者 java -jar …。

jenkins

  1. 点击构建,没了。

哇,不会吧,jenkins这么厉害?我要学,我要学!!!!!!
低调低调,常规操作!!

下面我看下,jenkins是如何安装的。

以下安装是基于linux系统,jenkins安装是有前提的哦,jdk和maven这两个环境是必须的哦。

  1. 下载jenkins的安装包,我在网上找到的是jenkins的war包,并且上传到linux上,这里我就不演示了哈。
  2. 启动war包
nohup java -jar  /home/jenkins.war --httpPort=8888 >/usr/local/jenkins/jenkins.out  2>&1 &

/home/jenkins.war 是你linux上的路径
/usr/local/jenkins/jenkins.out  是日志输出文件

你没看错,就是这么简单,jenkins服务就启动起来了,我们可以愉快的localhost:8888访问了

卧槽~~ 这是啥,解锁,好高级的样子。

jenkins fingerprint是什么 jenkins有什么用_svn


白眼一瞟,要密码,不要慌,图片中红色位置已经告诉你密码的位置了,你只需要cat下即可

cat /root/.jenkins/secrets/initialAdminPassword

关键时刻来了,登陆进去之后,又来个选择,不要慌,按推荐的走。

jenkins fingerprint是什么 jenkins有什么用_jenkins_02


开始 安装 插件

jenkins fingerprint是什么 jenkins有什么用_jenkins_03

安装完成后,创建用户名和密码

jenkins fingerprint是什么 jenkins有什么用_maven_04


这样jenkins安装就完成了。

这里有的同学就会说到,不是说要用到jdk和maven吗?在哪儿用到了?

这位同学,坐好,不要急,下面我们就开说说在哪儿用到了。

配置环境

点击配置,我们先配置一波工作环境,方便后续开发。

jenkins fingerprint是什么 jenkins有什么用_svn_05

jenkins fingerprint是什么 jenkins有什么用_svn_06

jenkins fingerprint是什么 jenkins有什么用_svn_07


jenkins fingerprint是什么 jenkins有什么用_maven_08


刚刚那位同学,别睡觉了,敲黑板了,这里是不是就用到了jdk和maven环境了。

工作环境都配置完成了,我们开始构建项目~

构建项目

点击构建项目,开启配置项目之旅。

jenkins fingerprint是什么 jenkins有什么用_jenkins_09


简单描述下而已,不要偷懒哦。

jenkins fingerprint是什么 jenkins有什么用_maven_10


如果是svn就配置svn地址,git的话,就配置git地址。

然后第一次的话,第二行是显示无的,可以点后面的添加,把git或者svn的账号密码添加进去即可。

jenkins fingerprint是什么 jenkins有什么用_jenkins_11


jenkins fingerprint是什么 jenkins有什么用_jenkins_12


这里的项目地址是/root/.jenkins/workspace这个目录下的哦,然后里面文件夹是构建项目名称来了,一个构建项目一个文件夹。第一次对这个路劲不熟的,你可以先这样配置这,build完之后,去这个文件里面看看是什么,就进行配置修改即可。

jenkins fingerprint是什么 jenkins有什么用_svn_13

#!/bin/bash
#maven打包
mvn clean package
echo 'package ok!'
echo 'build start!'
cd ./ljdy-auth
service_name="ljdy-auth"
service_prot=3000
#查看镜像id
IID=$(docker images | grep "$service_name" | awk '{print $3}')
echo "IID $IID"
if [ -n "$IID" ]
then
    echo "exist $SERVER_NAME image,IID=$IID"
    #删除镜像
    docker rmi -f $service_name
    echo "delete $SERVER_NAME image"
    #构建
    docker build -t $service_name .
    echo "build $SERVER_NAME image"
else
    echo "no exist $SERVER_NAME image,build docker"
    #构建
    docker build -t $service_name .
    echo "build $SERVER_NAME image"
fi
#查看容器id
CID=$(docker ps | grep "$SERVER_NAME" | awk '{print $1}')
echo "CID $CID"
if [ -n "$CID" ]
then
    echo "exist $SERVER_NAME container,CID=$CID"
    #停止
    docker stop $service_name
    #删除容器
    docker rm $service_name
else
    echo "no exist $SERVER_NAME container"
fi
#启动
docker run -d --name $service_name --net=host -p $service_prot:$service_prot $service_name
#查看启动日志
#docker logs -f  $service_name

一切配置完成,我们点击保存,然后点击下面的build now,开始构建。

jenkins fingerprint是什么 jenkins有什么用_jenkins_14


构建的过程中,这个位置是有个进度条的,你可以点击进度条看日志

jenkins fingerprint是什么 jenkins有什么用_jenkins_15


最后,从安装到构建就全部完成了,下次要版,只需小手点一点即可完成。