在项目中引入Jenkins

503 阅读4分钟

项目的开发过程:

以上图为例:代码在本地开发完成后,通过git,svn等版本控制工具部署至仓库中,在仓库中配置CI检查工具,对提交的代码进行必要的检查,以及将代码发布。代码检查与发布的过程,可以用Jenkins完成。

1.什么是Jenkins

\quad [Jenkins是一款由Java编写的开源的持续集成工具。Jenkins提供了软件开发的持续集成服务。它运行在Servlet容器中(例如Apache Tomcat)。它支持软件配置管理(SCM)工具(包括AccuRev SCM、CVS、Subversion、Git、Perforce、Clearcase和RTC),可以执行基于Apache Ant和Apache Maven的项目,以及任意的Shell脚本和Windows批处理命令。]1.引用来自-维基百科

2.Jenkins的两种安装方式

  1. war包方式:
    • 简单方便
    • 和服务器环境绑定,所以需要配置服务器
    在linux(ubuntu20.04)上安装Jenkins: 首先安装Java,使用命令:
    wget https://wtff.oss-cn-shanghai.aliyuncs.com/jdk/jdk-8u241-linux-x64.tar.gz
    

    安装完成后,查看安装结果:

    jdk1.8.0_241/bin/java -version
    

    配置环境变量:

    • 使用vim打开/etc/profile文件,在其中加入:
    export JAVA_HOME=/home/yy/yy/java/jdk1.8.0_24 #根据自己的jdk安装路径而定
    export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
    export PATH=$PATH:$JAVA_HOME/bin
    
    • source /etc/profile 使更改生效
    • javac -version 查看环境变量是否生效

    安装完java后,接下来安装Jenkins,由于使用war包安装,所以先去下载jenkins.war包,Jenkins官网就可以直接下载,但是速度也是非常之慢,这里推荐使用开源镜像,对于linux,使用如下命令:

    wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war/latest/jenkins.war
    

    Windows就直接把里面的url粘贴出来,访问即可。接下来使用命令:

    java -jar jenkins.war --httpPort=8083
    

    启动jenkins并指定端口(jenkins默认是8080端口),启动完成后: 访问自己的ip:端口,即可看到Jenkins初始化页面:

    解锁Jenkins,使用启动Jenkins时,复制页面上的这串密钥到其中,完成验证。选择插件栏,不选择任何插件,因为下载很慢: 创建root用户: 完成后,即可进入Jenkins的欢迎页面:

    如果需要退出,则访问:

    http://{id}:{port}/exit
    

    如图: 重启则访问:

    http://{id}:{port}/restart
    
  2. Docker方式
  3. Docker方式安装就比较简单,可以直接去官网抄命令:
    docker network create jenkins
    
    docker run --name jenkins-docker --rm --detach \
      --privileged --network jenkins --network-alias docker \
      --env DOCKER_TLS_CERTDIR=/certs \
      --volume jenkins-docker-certs:/certs/client \
      --volume jenkins-data:/var/jenkins_home \
      --publish 2376:2376 docker:dind
    

    这一步,我启动的是jenkinsci/blueocean镜像,

    docker run --name jenkins-blueocean --rm --detach \
      --network jenkins --env DOCKER_HOST=tcp://docker:2376 \
      --env DOCKER_CERT_PATH=/certs/client --env DOCKER_TLS_VERIFY=1 \
      --publish 8080:8080 --publish 50000:50000 \
      --volume jenkins-data:/var/jenkins_home \
      --volume jenkins-docker-certs:/certs/client:ro \
      jenkinsci/blueocean
    

    命令执行完毕后,docker ps查看进程启动情况: 同时:可以在本机的8080端口,看到Jenkins的初始化页面: 解锁Jenkins使用docker logs {pid}查看密钥: 接下来重复上面的步骤即可。

3.安装完成后,进行必要的配置

\quad 由于Jenkins持续集成需要配合Maven、Git等插件,所有需要在Jenkins进行配置。首先配置下载插件所使用的镜像源。 在高级选项中: 替换默认镜像源: 镜像源可以根据实际情况,自己设置,贴出我自己用的:

https://gitlab.com/jenkins-zh/update-center-mirror/-/blob/master/tsinghua/current/update-center.json

插件安装, 列举一些常用插件:

因为我前面docker启动的是jenkinsci/blueocean的镜像,所以会有自带的插件。

4.如何写Jenkinsfile完成项目的构建

\quad Jenkins构建项目的方式有两种,一种可以通过Jenkins配置: \quad 指定项目的代码仓库,执行的操作等,这种方式的有点在于简单直接,按照Jenkins的指示完成即可。但是,缺点在于重复,并且构建过程没有版本控制,无法定位某一状态的构建过程。
\quad 通过编写Jenkinsfile的方式,通过代码的方式,实现项目的自动构建。
\quad 在项目根目录下创建Jenkinsfile文件,在其中配置需要执行的命令:

pipeline {
    agent {
        docker { image 'circleci/openjdk:8u212-jdk-stretch' }
    }

    stages {
        stage('Test') {
            steps {
                sh 'mvn clean verify'
            }
        }
    }
}

内容很简单:指定docker的镜像,并且每次构建项目的时候,执行mvn clean verify命令。接下来在Jenkins中new Item->选择多分支流水线->选择代码仓库地址

在log中可以看到Jenkinsfile文件被找到了

进入项目分支,点击build now即可开始构建: