zoukankan      html  css  js  c++  java
  • jenkins获取gitlab代码自动构建流程

    一、创建项目

    1.创建项目

    1)创建新任务

    2)填写项目名称

    3)填写项目备注

    4)项目执行过程添加一个命令

    5)构建项目

    6)查看构建过程

    7)查看服务器文件(对应创建了一个文件)

    二、jenkins获取git项目

    1.到码云网站获去源码

    https://gitee.com/lovexzq/XingYunDaZhuanPan?_from=gitee_search
    

    2.把代码导入gitlab

    1)创建新项目

    2)导入项目

    3)复制代码ssh导入

    这边仅作为显示,可在码云中找到开源代码,进行代码拉取

    4)导入代码

    3.jenkins获取项目代码

    1)jenkins与gitlab做免密

    1.jenkins生成密钥对
    [root@jenkins ~]# ssh-keygen
    
    2.将在jenkins中公钥写入gitlab,相当于jenkins能对gitlab进行操作
    
    3.此处仅作为对此项目有可控权限
    




    2)jenkins配置获取git的代码

    3)构建拉取代码

    4)查看代码拉取到服务器

    三、jenkins构建代码推送至web服务器

    1.搭建nginx

    2.jenkins写脚本推送代码

    • 1)jenkins服务器与web服务器做免密
    [root@jenkins ~]# ssh-copy-id 172.16.1.7
    
    • 2)测试连接
    [root@jenkins jenkins获取git的代码项目]# ssh 172.16.1.7
    Last login: Wed Sep 23 23:21:29 2020 from 10.0.0.1
    [root@web01 ~]# logout
    Connection to 172.16.1.7 closed.
    
    • 3)jenkins配置推送代码脚本
    [root@jenkins ~]# mkdir /scripts
    [root@jenkins ~]# vim /scripts/code.sh
    #!/bin/bash 
    Web_Ip=10.0.0.7
    Old_Code_Dir=/tmp/${JOB_NAME}_$BUILD_NUMBER
    ssh root@$Web_Ip "[ -d $Old_Code_Dir ] || mkdir -p $Old_Code_Dir"
    ssh root@$Web_Ip "mv /code/* $Old_Code_Dir/"
    scp -rp $WORKSPACE/* root@${Web_Ip}:/code/
    [root@jenkins ~]# chmod +x /scripts/code.sh
    
    • 4)jenkins页面配置推送

    • 5)构建测试

    • 6)访问页面测试

    3.代码回滚

    • 1)配置脚本
    # 通过书写脚本方式实现部署和回滚功能,因脚本中case语句有两种选择,所以在后续jenkins构建时同样需要选择两种方式
    [root@jenkins ~]# vim /scripts/deploy_rollback.sh
    #!/bin/bash 
    Web_Ip=172.16.1.7
    Old_Code_Dir="/tmp/${JOB_NAME}/$BUILD_NUMBER"
    case $Status in 
        Deploy)
            echo "Status:$Status"
            ssh root@$Web_Ip "[ -d $Old_Code_Dir ] || mkdir -p $Old_Code_Dir"
            ssh root@$Web_Ip "mv /code/* $Old_Code_Dir"
            scp -rp $WORKSPACE/* root@${Web_Ip}:/code/
            echo "Completing!"
            ;;
        Rollback)
            echo "Status:$Status"
            echo "Version:$Version"
            ssh root@$Web_Ip "[ -d $Old_Code_Dir ] || mkdir -p $Old_Code_Dir"
            ssh root@$Web_Ip "/usr/bin/cp -a /tmp/${JOB_NAME}/$Version/* /code/"
            ;;
        *)
            exit
            ;;
    esac
    
    • 2)jenkins页面配置

    • 3)测试代码更新

    • 4)测试回滚

    四、触发器自动构建

    1.配置触发器

    2.配置gitlab

    3.测试

    • 1)测试事件

    • 2)出现问题

    • 3)解决方式配置jenkins安全

    • 4)修改gitlab代码

    • 5)页面自动构建

    五、返回构建结果

    1.设置gitlab获取token


    2.jenkins配置token




    3.jenkin设置构建后操作


    4.测试

    • 1)修改代码提交

    • 2)查看jekins自动构建

    • 3)查看gitlab上面jenkins构建返回的结果


  • 相关阅读:
    python【第五篇】常用模块学习
    (三)训练HMM模块
    (二)杂项准备
    (四)看看成果
    (一)准备训练语音文件
    HTK语音识别示例(Ubuntu)
    RoboCup仿真3D TC笔记(2014年合肥中国公开赛 仿真3D比赛环境搭建)
    WebFont与页面font-icon图标研究
    Font Awesome使用方法
    css sprites拼合
  • 原文地址:https://www.cnblogs.com/tcy1/p/13721238.html
Copyright © 2011-2022 走看看