Jenkins Pipeline配置根据代码分支及自定义版本号构建打包

Posted 西风未眠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins Pipeline配置根据代码分支及自定义版本号构建打包相关的知识,希望对你有一定的参考价值。

有好长一段时间没有使用Jenkins了,最近因项目需要,配置了pipeline构建job,做个记录。

环境描述:

Jenkins版本:2.322
代码库:gitlab
本文案例项目:nacos

实现目标:

  1. Jenkins从gitlab拉取代码构建打包,build docker镜像并推送到私有harbor仓库
  2. Jenkins自动获取Gitlab的分支号,选择分支号构建
  3. 构建镜像版本时,支持手动输入镜像版本号。
  4. docker镜像命名规则:
    在构建时如手动输入了版本号,镜像名称为:harbor仓库url/$gitlab项目名称:$版本号.$分支名
    如没有输入版本号,版本号为空,镜像名称为:harbor仓库url/$gitlab项目名称:$分支名

    实现步骤

    1. 安装 Git Parameter插件

    系统管理——插件管理——搜索“Git Parameter”,确认是否已经安装插件,没有安装则先安装插件

    2. 创建pipeline类型构建job:nacos1


3. 配置分支参数:

在General部分,勾选“参数化构建过程”,选择“Git参数”

填写参数信息:

4. 配置版本字符参数

在分支参数后,继续添加字符参数

填写参数信息:

5. 配置流水线

流水线有“Pipeline script from SCM”和“Pipeline script”两种方式,任选其一。两种方法的构建脚本内容一样。
方法一:Pipeline script from SCM

方法二: Pipeline script

构建脚本内容:

pipeline    
    options
        buildDiscarder(logRotator(numToKeepStr: 100, daysToKeepStr: 30, artifactNumToKeepStr: 30))
    

    agent  any
    stages 
        stage(拉取代码) 
            steps 
                echo "======= 拉取gitlab源码 ======="
                checkout([$class: GitSCM, branches: [[name: */$branch]], doGenerateSubmoduleConfigurations: false, extensions: [], submoduleCfg: [], userRemoteConfigs: [[credentialsId: $当前环境credentialsId, url: $代码地址]]])
            
        
        stage(构建代码) 
            #此处省略
        
        stage(build&push镜像) 
            steps 
              echo "======= build&push镜像 ======="
              sh """
                #此处省略

                #判断version参数拼接docker镜像名
                if [ "$version" = "" ]
                then
                  docker build  -t  harbor.test.com/library/nacos:\\$branch .
                  docker push harbor.test.com/library/nacos:\\$branch
                else
                  docker build  -t  harbor.test.com/library/nacos:\\$version.\\$branch .
                  docker push harbor.test.com/library/nacos:\\$version.\\$branch
                fi
              """
            
        
    

写好构建脚本保存配置后,点击“Build with Parameters”,即可看到目标已经实现:

以上是关于Jenkins Pipeline配置根据代码分支及自定义版本号构建打包的主要内容,如果未能解决你的问题,请参考以下文章

Jenkinsfile的pipeline配置

Jenkins-pipeline查看内置的env种类及取值

Jenkins之Pipeline代码流水线配置

Jenkins之Pipeline代码流水线

Jenkins 多分支构建中的邮件配置

jenkins pipeline部署实践及重点问题分析