Jenkins Pipeline配置根据代码分支及自定义版本号构建打包
Posted 西风未眠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins Pipeline配置根据代码分支及自定义版本号构建打包相关的知识,希望对你有一定的参考价值。
有好长一段时间没有使用Jenkins了,最近因项目需要,配置了pipeline构建job,做个记录。
环境描述:
Jenkins版本:2.322
代码库:gitlab
本文案例项目:nacos
实现目标:
- Jenkins从gitlab拉取代码构建打包,build docker镜像并推送到私有harbor仓库
- Jenkins自动获取Gitlab的分支号,选择分支号构建
- 构建镜像版本时,支持手动输入镜像版本号。
- 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配置根据代码分支及自定义版本号构建打包的主要内容,如果未能解决你的问题,请参考以下文章