美文网首页
Linux下配置Jenkins+gitlab持续集成构建流程

Linux下配置Jenkins+gitlab持续集成构建流程

作者: 夏末未安 | 来源:发表于2018-03-15 19:49 被阅读909次

    本文将简单介绍如何在Linux下配置Jenkins+gitlab持续集成构建流程

    目标:

    1. 能构建成功并发布到测试环境
    2. gitlab推指定分支代码可以触发构建
    3. 设置开发者邮箱通知

    流程

    1. linux基础
    2. 环境:java node jenkins git yarn
      注意:全局环境变量的配置
    3. Jenkins 配置
    4. gitlab->webhook 配置
      • webhook: webhook插件允许你建立或设置GitLab上订阅某些事件。当其中一个事件被触发时,我们将发送一个HTTP POST负载到webhook的配置URL。webhook可以用来更新外部问题跟踪器、触发CI构建、更新备份镜像,甚至部署到生产服务器。

    linux基础

    • 命令
      • pwd: 查看当前目录
      • vi 目录: 进入编辑该目录
        • esc + : + q + !: 强制退出不保存
        • esc + : + w + q: 保存并退出
      • source /etc/profile: 修改后的/etc/profile文件立即生效
        • shift + g: 到达文件底部
        • mv 原名称 新名称: 重命名
      • yum命令

    步骤

    软件安装

    wget

    yum install wget
    

    unzip

    yum install unzip
    

    nodejs

    • 查看Linux系统位数
    uname -a
    
    uname
    • 进入安装目录(/usr/local/src)

    • 下载对应安装包

    wget https://nodejs.org/dist/v8.5.0/node-v8.5.0-linux-x64.tar.xz
    
    • 解压并进入
    tar -zxvf node-v8.5.0-linux-x64.tar.xz
    

    z: 有gzip属性的
    x: 解压
    v: 显示所有过程
    f: 使用档案名字,该参数只能放在最后


    tarerror

    出现如上错误说明这个压缩包没有用gzip格式压缩,所以上述解压命令去掉z就行

    • 配置全局变量
      • 编辑 /etc/profile文件
      • 在文件尾部添加如下代码,保存并退出文件
    export NODE_PATH=/usr/local/src/node-v8.5.0-linux-x64/bin
    export PATH=$PATH:$NODE_PATH    
    
    • 检验是否配置为全局变量
    node -v
    npm -v
    

    yarn

    npm install --global yarn@13.2
    

    java

    1. 安装
    wget http://download.oracle.com/otn-pub/java/jdk/8u161-b12/2f38c3b165be4555a1fa6e98c45e0808/jdk-8u161-linux-x64.tar.gz?AuthParam=1521104652_72aaa3f990b00fe806f0156100c8c245
    
    1. 重命名
    mv jdk-8u161-linux-x64.tar.gz?AuthParam=1521104652_72aaa3f990b00fe806f0156100c8c245  java-jdk.tar.gz 
    
    1. 解压
    tar xzf java-jdk.tar.gz
    
    1. 配置全局变量
    export JAVA_HOME=/usr/local/jdk1.8.0_91
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    

    git

    • 下载,压缩,进入目录
    wget https://github.com/git/git/archive/v1.7.1.zip
    unzip v1.7.1.zip
    cd git-1.7.1
    
    • 安装需要的插件
    yum -y install curl-devel expat-devel gettext-devel openssl-devel zlib-devel gcc perl-ExtUtils-MakeMaker
    
    • 编译, 安装
    make prefix=/usr/local/git all
    make prefix=/usr/local/git install
    
    • 配置全局环境变量
      • 编辑/etc/profile
      • 文件尾部添加如下代码,保存并退出文件
    export PATH=/usr/local/git/bin:$PATH
    
    • 配置git
      • 设置user,生成ssh key
    git config --global user.name "xxx"
    git config --global user.email "mailto:xxx@gmail.com"
    ssh-keygen -t rsa -C "mailto:qiubing.it@gmail.com"
    
    • 将上述生成的ssh key添加到gitlab
    cat ~/.ssh/id_rsa.pub
    

    复制内容,头部加上ssh-rsa

    Jenkins

    wget http://updates.jenkins-ci.org/download/war/2.109/jenkins.war
    

    Jenkins + gitlab 配置

    Jenkins配置(1)===》推荐使用

    • 启动Jenkins
    nohup java -jar /root/app/jenkins.war --httpPort=8080 2>&1 &
    

    &:当在前台运行某个作业时,终端被该作业占据;可以在命令后面加上& 实现后台运行
    nohup: 当使用&命令后,作业被提交到后台运行,当前控制台没有被占用,但是一旦把当前控制台关掉(退出账户时),作业就会停止运行。nohup命令可以在用户退出账户之后继续运行相应的进程。
    注: 1. 第一次启动时需要输入一个秘钥(xshell中可看到)
    2. 默认admin登录的话密码在.jenkins/secrets/initialAdminPassword文件里(下次登录使用)
    3. 也可以修改密码

    • 新建一个项目


      project
    • jenkins配置hookplugin
      • 安装插件:系统管理 --> 管理插件 --> 可选插件 --> 选择安装 gitplugin,gitlab ,gitlab plugin,gitlab hook plugin, Build Authorization Token, gitlab Authorization
      • 项目配置
        • general: 填写项目名称
        • 源码管理: code
        • 构建触发器: cf
          • 正则过滤触发分支
          • 记录下url
          • 记录下token
    • 写打包命令 cmd

    Jenkins配置(2)===》不知如何选择触发分支

    • 随机生成token
    openssl rand -hex 12
    

    会生成一串token,保存下来

    • 构建触发器
      • 勾选‘触发远程构建(例如,使用脚本)’,在身份验证令牌栏输入随机生成的token:上面保存的 url
        • 记录url
      • 勾选上‘gitlab hook trigger for gitScm polling’

    gitlab配置

    • 添加ssh key
    • 配置webhook
      • 选择项目 --> setting --> webhook webhook
      • 填写上面保存的url
      • 填写上面保存的token
      • 添加webhook
      • test(测试流程是否能跑通) test
        • 报错403,未登录啥的,解决方法就是将url的'http://'后面加上 用户名:密码 的形式
        • 报错no valid crumb was included in th request,解决方法:进入jenkins系统管理 --> 全局安全配置 --> 取消选中:防止跨站点请求伪造

    Jenkins邮箱通知配置

    • 系统管理 ---> 系统设置

      • 设置管理员邮件地址 e1
      • Extended E-mail Notification e2
        • 未选中‘allow sending to unregistered users’报错信息: e2error
        • 选中后: e2ok
      • 邮件通知 e3
        • 可以通过发送测试邮件看下是否成功 etest
    • 项目设置

      • 增加构建后操作步骤,选择E-mail Notification,Editable E-mail Notification add
      • E-mail Notification en
      • Editable E-mail Notification--->Advances Settings,添加Triggers ed1

    相关文章

      网友评论

          本文标题:Linux下配置Jenkins+gitlab持续集成构建流程

          本文链接:https://www.haomeiwen.com/subject/nwfkqftx.html