• 对于注定会优秀的人来说,他所需要的,只是时间----博主
  • 手懒得,必受贫穷,手勤的,必得富足----《圣经》
  • 帮助别人,成就自己。愿君在本站能真正有所收获!
  • 如果你在本站中发现任何问题,欢迎留言指正!
  • 宝剑锋从磨砺出,梅花香自苦寒来!
  • 本站开启了防爆破关小黑屋机制,如果您是正常登录但被关进小黑屋,请联系站长解除!

<三十四>Jenkins-pipeline学习笔记–多分支构建的实践与思考(四)

Jenkins eryajf 1个月前 (09-15) 262°C 已收录 0个评论
本文预计阅读时间 6 分钟
文章目录[隐藏]

系列汇总

这是一个系列文章,大大小小到今天惊然发现竟然已经累计二十篇了,也就不得不做一个小汇总。回想当初写第一篇文章的时候,就已经决心事无巨细,一应认真的走下来,回头遮望,看着皇皇这么多文章,一股强烈的成就感就此油然而生,于是便有了这些汇总整理。在这个过程当中,好像也帮助过不少的人,这是让我尤其开心的事情,同时也结识了一些志同道合的朋友,再没有比这更让人觉得愉悦的事情啦!也希望以后写出更多类似的系列文章。

文章汇总地址如右:Jenkins入门教程。

如果相中哪个,点击进去便是。希望正在读这段话的你能够在这个小系列中获得自信以及喜悦!

之前配置项都是基于单分支的构建,很多时候,我们更需要配置一个多分支的场景以应对更为多元的工作场景。

比如,我希望项目的测试环境以及预发环境都是推送代码之后自动构建的,这个时候,就可以在Jenkins中创建一个多分支pipeline项目,来满足如上场景。

首先创建一个新的项目,风格选择多分支pipeline,然后进行简单配置:

然后在项目根目录创建Jenkinsfile文件:

pipeline {
    agent any
    environment {
        remote_dir = "/opt/hello"
    }
    triggers{
        gitlab( triggerOnPush: true,
                triggerOnMergeRequest: true,
                branchFilterType: 'All',
                secretToken: "${env.git_token}")
    }
    options {
        buildDiscarder(logRotator(numToKeepStr: '10'))
        disableConcurrentBuilds()
        timeout(time: 10, unit: 'MINUTES')
        timestamps()
    }
    stages {
        stage('部署到测试环境'){
            when {
                branch 'test'
            }
            steps{
                sh '''
                    rsync -avz --progress -e 'ssh -p 22' --exclude='Jenkinsfile' --exclude='.git' --delete ${WORKSPACE}/  root@192.168.3.68:$remote_dir
                '''
            }
        }
        stage('部署到线上环境') {
            when {
                branch 'master'
            }
            steps {
                sh '''
                    rsync -avz --progress -e 'ssh -p 22' --exclude='Jenkinsfile' --exclude='.git' --delete ${WORKSPACE}/  root@192.168.3.61:$remote_dir
                '''
            }
        }
        stage('delete') {
            steps {
                echo '清理工作目录'
                cleanWs()
            }
        }
    }
    post {
        success {
            sh "echo 成功了"
        }
        failure {
            sh "echo 失败了"
        }
    }
}

配置了自动构建,然后使用when参数将不同分支代码分发到不同的部署环境中去,当我们的日常开发工作已经形成规范,那么这种多分支构建是非常方便的,开发者可以随便新建分支开发,合并到test并push就会触发测试环境的构建,同理亦然。

当我们把Jenkinsfile推上去,然后又创建了test分支,这里手动点击检索,两个分支就拉下来了,然后配置也会落位到两个分支中去,现在可以点开test分支配置看一眼:

!

这里可以看到Jenkins已经自动将test配置落位到对应环境中了,以便于我们推送代码之后自动构建。

当然了,如果有更加复杂的需求情况,可以发散自己的思维,结合前边的Jenkinsfile语法,配置出更加丰富的功能出来。


weinxin
扫码订阅本站,第一时间获得更新
微信扫描二维码,订阅我们网站的动态,另外不定时发送WordPress小技巧,你可以随时退订,欢迎订阅哦~

二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明<三十四>Jenkins-pipeline学习笔记–多分支构建的实践与思考(四)
喜欢 (0)
[如果想支持本站,可支付宝赞助]
分享 (0)
eryajf
关于作者:
学无止境,我愿意无止境学。书山有路,我愿意举身投火,淬炼成金!

您必须 登录 才能发表评论!