目录

  • 一、创建项目
  • 1.创建项目
  • 二、jenkins获取git项目
  • 1.到码云网站获去源码
  • 2.把代码导入gitlab
  • 3.jenkins获取项目代码
  • 三、jenkins构建代码推送至web服务器
  • 1.搭建nginx
  • 2.jenkins写脚本推送代码
  • 3.代码回滚
  • 四、触发器自动构建
  • 1.配置触发器
  • 2.配置gitlab
  • 3.测试
  • 五、返回构建结果
  • 1.设置gitlab获取token
  • 2.jenkins配置token
  • 3.jenkin设置构建后操作
  • 4.测试

一、创建项目

1.创建项目

1)创建新任务

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web

2)填写项目名称

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_02

3)填写项目备注

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_03

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

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_04

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_05

5)构建项目

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_06

6)查看构建过程

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_07

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_08

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

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_09

二、jenkins获取git项目

1.到码云网站获去源码

2.把代码导入gitlab

1)创建新项目

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_10

2)导入项目

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_11

3)复制代码ssh导入

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

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_12

4)导入代码

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_13

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_14

3.jenkins获取项目代码

1)jenkins与gitlab做免密

1.jenkins生成密钥对
[root@jenkins ~]# ssh-keygen

2.将在jenkins中公钥写入gitlab,相当于jenkins能对gitlab进行操作

3.此处仅作为对此项目有可控权限

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_15


Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_16

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_17


Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_18


2)jenkins配置获取git的代码

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_19


Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_20

3)构建拉取代码

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_21

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

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_22

三、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页面配置推送

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_23

  • 5)构建测试
  • Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_24


  • Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_25

  • 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页面配置

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_26

  • 3)测试代码更新

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_27

  • 4)测试回滚

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_28

四、触发器自动构建

1.配置触发器

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_29

2.配置gitlab

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_30

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_31

3.测试

  • 1)测试事件
  • Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_32

  • 2)出现问题

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_33

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

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_34

  • 4)修改gitlab代码
  • 5)页面自动构建

五、返回构建结果

1.设置gitlab获取token

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_35

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_36


Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_37

2.jenkins配置token

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_38


Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_39


Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_40


Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_41

3.jenkin设置构建后操作

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_42


Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_43

4.测试

  • 1)修改代码提交
  • 2)查看jekins自动构建

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_git_44

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

Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Web_45


Jenkins如何拉取develop分支的代码 jenkins自动拉取代码_Code_46