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

<三十三>Jenkins-pipeline学习笔记–自动构建的原始配置以及pipeline中的用法(三)

Jenkins eryajf 1个月前 (09-15) 571°C 已收录 0个评论
本文预计阅读时间 6 分钟

系列汇总

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

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

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

大多数时候,我们做的流水线都希望通过开发人员push代码触发Jenkins的自动构建,在还没有深入接触到Jenkinsfile语法之前,我都是用传统的配置方式对这一功能进行的配置。

今天就专门说明一下这个配置,先介绍一下传统配置流程,再介绍Jenkinsfile中的简便方式。

1,传统方式。

本文基于第一篇的从一个简单的构建开始进行补充配置,事实上也就那么几个配置项。

gitlab触发Jenkins的构建需要依赖Gitlab插件,而并不需要插件当中列出来的所谓的gitlab hook。如果直接在Jenkins当中安装插件失败,可以在国内镜像站下载对应插件,然后手动上传安装。

地址:清华大学开源软件镜像站。

安装之后,在构建触发器里边选中如下配置:

选中之后,会给到一个url地址,就是gitlab触发的回调地址,正常情况下,我们还会点开高级,生成一个匹配的token,用于安全方面的保障。

接着就是在gitlab对应项目中,创建一个回调的配置:

这里的配置,参考一张以前配置过的图片:

img

如果是首次添加,现在新版本的Gitlab可能会失败,报错 Urlis blocked: Requests to the local network are not allowed,需要选中如下:

添加之后,可以点击一下test看看流程是否能够走通,如果走通,那么我们以后开发的时候直接推送代码即可触发构建。

2,流水线中使用。

而今统一使用流水线之后,可以直接在Jenkinsfile当中进行配置,而不需要再重复如上步骤的操作了,当我们在Jenkinsfile中可以定义之后,也就意味着,以后如果新增一个项目,那么我们需要操作的步骤可能只有如下三步:

  • 1,创建Jenkinsfile,放入到项目根目录中。
  • 2,创建Jenkins项目,将项目URL写入到配置中。
  • 3,将项目回调地址写入到Gitlab钩子当中。

仅需这么三步,一个全新的项目就配置完成了,极大的简化了运维的工作内容。

那么流水线的文件内容如下:

pipeline {
    agent any
    environment {
        remote_ip = "192.168.3.66"
        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('部署到测试环境'){
            steps{
                sh '''
                    rsync -avz --progress -e 'ssh -p 22' --exclude='Jenkinsfile' --exclude='.git' --delete ${WORKSPACE}/  root@$remote_ip:$remote_dir
                '''
            }
        }
        stage('delete') {
            steps {
                echo '清理工作目录'
                cleanWs()
            }
        }
    }
    post {
        success {
            sh "echo 成功了"
        }
        failure {
            sh "echo 失败了"
        }
    }
}

这里通过triggers的参数即可配置,其中的token我已经在Jenkins配置当中添加为全局变量,这样以来,所有的项目用同一个token即可:

当我们写完这个Jenkinsfile,执行上边我说的三步工作,直接把文件放到代码根目录,然后创建Jenkins项目,Gitlab配置回调地址,第一次先手动构建一下,以后再有相关push事件,就可以自动触发构建了。


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

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

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