jenkins(十八):Jenkins-pipeline(2):开发阶段pipeline:gitlab和Jenkins-pipeline自动集成

Jenkins-pipeline(2):开发阶段pipeline:gitlab和Jenkins-pipeline自动集成

步骤

  • Jenkins配置gitlab,系统管理-系统设置
  • Gitlab生成API token给Jenkins配置
  • Jenkins增加构建触发器,勾选gitlab,同时生成token
  • Gitlab创建webhook,填写Jenkins job的URL和token

 

Jenkins系统管理

安装Gitlab Authentication plugin、GitLab Plugin这两个插件。

 

 

 

 

gitlab生成token

 

 

 

 

huHJisZgK2_KGN23BtMe

 

 

 

Jenkins配置token

 

 

 

Jenkins-job设置

 

 

 

gitlab新建分支

 

 

 

jenkins生成token

 

 

2e128d8103ebd6320ff45e3af7603b21

 

gitlab添加jenkins-job的token

 

 

 

 

 

 

 

 

测试一下

我的Jenkins配置

 

 

node ("master"){

    stage('第1步拉代码'){

        echo "拉代码"

        git credentialsId: '03fd8295-c536-4871-9794-1c37394676e0', url: 'git@gitlab.corp.zhaonongzi.com:wangxu/ops.git'

    }

    stage('第2步编译'){

        echo "编译"

        sh "source /etc/profile && /usr/local/maven/bin/mvn clean compile"

    }

    stage('第3步发送文件'){

        echo "打包,有一个mail模块是系统级别的,需要sudo"

        sh "sudo /usr/local/maven/bin/mvn package"

        echo "完成后 修改一下权限,否则下一次麻烦"

        sh "sudo chown -R  jenkins: ."

        sh "find -name '*SNAPSHOT.jar' "

    }

    stage('第四步单元测试'){

        echo "单元测试"

    }

    stage("放到下载服务器上"){

        sh "sudo cp ./account-email/target/account-email-1.0.0-SNAPSHOT.jar /home/admin/webserver/html/download && sudo chown  -R admin: /home/admin/webserver/html/download"

    }

}

 

 

 

我们下载dev分支,提交一个测试文件

 

 

 

我们刚提交完成,Jenkins就自动构建了一次

 

 

 

我们去workspace查看一下刚才提交的测试文件是否被下载下来

 

 

 

 

我通过gitlab页面再提交一个

 

 

 

 

 

 

我们再查看一下gitlab-构建

 

 

 

gitlab显示pipeline

都没问题,我们要提交merge request,但我们想把Jenkins上构建成功的状态带过去。gitlab上也能直接跳转Jenkins上查看相关构建过程,让领导merge master的时候更有说服力。

你需要在Jenkins上添加 gitlabCommitStatus

 

node ("master"){

    gitlabCommitStatus {

        stage('第1步拉代码'){

            echo "拉代码"

            git credentialsId: '03fd8295-c536-4871-9794-1c37394676e0', url: 'git@gitlab.corp.XXX.com:wangxu/ops.git'

        }

        stage('第2步编译'){

            echo "编译"

            sh "source /etc/profile && /usr/local/maven/bin/mvn clean compile"

        }

        stage('第3步发送文件'){

            echo "打包,有一个mail模块是系统级别的,需要sudo"

            sh "sudo /usr/local/maven/bin/mvn package"

            echo "完成后 修改一下权限,否则下一次麻烦"

            sh "sudo chown -R  jenkins: ."

            sh "find -name '*SNAPSHOT.jar' "

        }

        stage('第四步单元测试'){

            echo "单元测试"

        }

        stage("放到下载服务器上"){

            sh "sudo cp ./account-email/target/account-email-1.0.0-SNAPSHOT.jar /home/admin/webserver/html/download && sudo chown  -R admin: /home/admin/webserver/html/download"

        }

    }

   

}

 

 

 

 

 

.

posted on 2019-07-09 12:58  光阴8023  阅读(1514)  评论(0编辑  收藏  举报