人生难得几回搏,此时不搏待何时。这篇文章主要讲述Jenkins Pipeline配置根据代码分支及自定义版本号构建打包相关的知识,希望能为你提供帮助。
有好长一段时间没有使用Jenkins了,最近因项目需要,配置了pipeline构建job,做个记录。
环境描述:【Jenkins Pipeline配置根据代码分支及自定义版本号构建打包】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
文章图片
文章图片
在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))agentany
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-tharbor.test.com/library/nacos:\\$branch .
docker push harbor.test.com/library/nacos:\\$branch
else
docker build-tharbor.test.com/library/nacos:\\$version.\\$branch .
docker push harbor.test.com/library/nacos:\\$version.\\$branch
fi
"""
写好构建脚本保存配置后,点击“Build with Parameters”,即可看到目标已经实现:
文章图片
推荐阅读
- 50-centos 安装jdk
- #给定一个五位数,输出各个位置对应的数字,依次打印个十百千万位置
- 诺基亚猫棒G-010S-P刷机解决设备SN认证上网问题
- LINUX用户组管理及提权
- 百度信誉保障服务架构全解析
- 容器技术|Docker三剑客之docker-compose
- Linux 内核进程优先级与调度策略 ① ( SCHED_FIFO 调度策略 | SCHED_RR 调度策略 | 进程优先级 )
- Linux 内核 内存管理优化内存屏障 ① ( barrier 优化屏障 | 编译器优化 | CPU 执行优化 | 优化屏障源码 barrier 宏 )
- 基于 Serverless 架构的头像漫画风处理小程序