Jenkins实现CICD之参数化构建
作者:尹正杰
版权声明:原创作品,谢绝转载!否则将追究法律责任。
一.参数化构建
1 选项参数实现部署和回滚功能
1.1 创建项目
如上图所示,我们基于之前的脚本部署方式进行改进。
1.2 配置选项参数
如上图所示,根据步骤配置"参数化构建过程"。
1.3 应用选项参数
如上图所示,我们就可以配置选择参数啦。
如下图所示,我们就可以进行参数化构建啦。
1.4 更新gitlab源代码
如上图所示,我们可以更新源代码。
1.5 基于参数化构建
如上图所示,选择参数为"deploy",部署成功如下图所示。
2.字符参数实现不同分支的部署
2.1 gitlab创建dev分支
[root@ubuntu12.yinzhengjie.com tmp]# git clone git@www.yinzhengjie.com:dev/bird.git
Cloning into 'bird'...
remote: Enumerating objects: 25, done.
remote: Counting objects: 100% (25/25), done.
remote: Compressing objects: 100% (18/18), done.
remote: Total 25 (delta 7), reused 25 (delta 7), pack-reused 0
Receiving objects: 100% (25/25), 89.56 KiB | 11.19 MiB/s, done.
Resolving deltas: 100% (7/7), done.
[root@ubuntu12.yinzhengjie.com tmp]#
[root@ubuntu12.yinzhengjie.com tmp]# cd bird/
[root@ubuntu12.yinzhengjie.com bird]#
[root@ubuntu12.yinzhengjie.com bird]# git checkout -b dev
Switched to a new branch 'dev'
[root@ubuntu12.yinzhengjie.com bird]#
[root@ubuntu12.yinzhengjie.com bird]# echo "<h1 style='color: green;'>Jason Yin dev branch<h1>" > dev.html
[root@ubuntu12.yinzhengjie.com bird]#
[root@ubuntu12.yinzhengjie.com bird]# git add . ; git commit -m 'dev 分支'; git push origin dev
[dev 5c8c94f] dev 分支
1 file changed, 1 insertion(+)
create mode 100644 dev.html
Enumerating objects: 4, done.
Counting objects: 100% (4/4), done.
Delta compression using up to 2 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 326 bytes | 326.00 KiB/s, done.
Total 3 (delta 1), reused 0 (delta 0)
remote:
remote: To create a merge request for dev, visit:
remote: https://www.yinzhengjie.com/dev/bird/-/merge_requests/new?merge_request%5Bsource_branch%5D=dev
remote:
To www.yinzhengjie.com:dev/bird.git
* [new branch] dev -> dev
[root@ubuntu12.yinzhengjie.com bird]#
2.2 创建项目
如上图所示,新创建一个项目,不要直接覆盖原有项目的配置,以便于后期查看。
2.3 添加字符参数
如上图所示,选择"字符参数"。
如下图所示,为字符参数设置默认值即可。
2.4 应用字符变量
如上图所示,默认是master分支,此时我们要引用咱们自己定义的变量,以便于我们直到需要部署哪个分支。
如下图所示,我们分支使用了咱们自己定义的变量。
2.5 部署dev分支
如上图所示,我们选择dev分支进行部署。生产环境中,建议配置为选项参数,字符参数需要手动写,容易写错哟~
如下图所示,部署成功啦。
3.课堂练习
根据上述实验,请实现课堂要求如下:
- 使用选项参数实现不同分支的部署;
- 选项参数实现不同分支的部署和回滚;
二.利用git parameter插件实现拉取指定版本
1.利用git parameter插件实现拉取指定tag(推荐使用)
1.1 为代码分支打标签并推送到远程gitlab仓库
(1)打标签,如上图所示
[root@ubuntu12.yinzhengjie.com bird]# git tag v1.0 # 为当前分支打标签
[root@ubuntu12.yinzhengjie.com bird]#
[root@ubuntu12.yinzhengjie.com bird]# vim index.html
[root@ubuntu12.yinzhengjie.com bird]#
[root@ubuntu12.yinzhengjie.com bird]# git add .; git commit -m 'v2.0'; git push origin master
[dev 05e2284] v2.0
1 file changed, 1 insertion(+), 1 deletion(-)
Everything up-to-date
[root@ubuntu12.yinzhengjie.com bird]#
[root@ubuntu12.yinzhengjie.com bird]# vim index.html
[root@ubuntu12.yinzhengjie.com bird]#
[root@ubuntu12.yinzhengjie.com bird]# git add .; git commit -m 'v3.0'; git push origin master
[dev 8a1ca8e] v3.0
1 file changed, 1 insertion(+), 1 deletion(-)
Everything up-to-date
[root@ubuntu12.yinzhengjie.com bird]#
[root@ubuntu12.yinzhengjie.com bird]# git log
commit 8a1ca8ee9cad7fcf613c94b660b123917b0f54b3 (HEAD -> dev)
Author: JasonYin <jasonyin2020@qq.com>
Date: Sun Feb 19 10:15:27 2023 +0000
v3.0
commit 05e2284082718a6cc33bff6759068f43da53d5cc
Author: JasonYin <jasonyin2020@qq.com>
Date: Sun Feb 19 10:15:02 2023 +0000
v2.0
commit 5df52874cda6022c36d480584105fd9e12e5f86e (tag: v1.0, origin/dev)
Author: JasonYin <jasonyin2020@qq.com>
Date: Sun Feb 19 08:53:26 2023 +0000
dev 分支
...
[root@ubuntu12.yinzhengjie.com bird]# git tag -a v2.0 05e2284082718a6cc33bff6759068f43da53d5cc -m 'v2.0'
[root@ubuntu12.yinzhengjie.com bird]# git tag -a v3.0 8a1ca8ee9cad7fcf613c94b660b123917b0f54b3 -m 'v3.0'
[root@ubuntu12.yinzhengjie.com bird]# git log
commit 8a1ca8ee9cad7fcf613c94b660b123917b0f54b3 (HEAD -> dev, tag: v3.0)
Author: JasonYin <jasonyin2020@qq.com>
Date: Sun Feb 19 10:15:27 2023 +0000
v3.0
commit 05e2284082718a6cc33bff6759068f43da53d5cc (tag: v2.0)
Author: JasonYin <jasonyin2020@qq.com>
Date: Sun Feb 19 10:15:02 2023 +0000
v2.0
commit 5df52874cda6022c36d480584105fd9e12e5f86e (tag: v1.0, origin/dev)
Author: JasonYin <jasonyin2020@qq.com>
Date: Sun Feb 19 08:53:26 2023 +0000
dev 分支
(2)如下图所示,将所有标签推送到gitlab中
[root@ubuntu12.yinzhengjie.com bird]# git tag
v1.0
v2.0
v3.0
[root@ubuntu12.yinzhengjie.com bird]#
[root@ubuntu12.yinzhengjie.com bird]# git push origin --tags
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 2 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (8/8), 813 bytes | 813.00 KiB/s, done.
Total 8 (delta 4), reused 0 (delta 0)
To www.yinzhengjie.com:dev/bird.git
* [new tag] v1.0 -> v1.0
* [new tag] v2.0 -> v2.0
* [new tag] v3.0 -> v3.0
[root@ubuntu12.yinzhengjie.com bird]#
1.2 安装git parameter插件
如上图所示,搜索插件关键字并安装。
如下图所示,表示安装成功啦。
1.3 创建新项目
如上图所示,根据已有的项目为模板创建一个新的项目,而后稍作修改即可。
1.4 添加git参数
如上图所示,添加git参数。
如下图所示,仅需要配置相应的参数即可。
1.5 应用git参数变量
如上图所示,我们可以应用git参数变量。
1.6 基于tag进行部署
如上图所示,我们基于tag版本进行部署,选择的版本是v3.0。
如下图所示,成功部署了代码。
2.利用git parameter插件实现拉取指定commit_id(不推荐使用)
2.1 创建新项目
如上图所示,创建一个新的项目。
2.2 添加git参数变量
如上图所示,先移除不必要的变量。
如下图所示,添加git参数变量。
2.3 应用git参数变量
如上图所示,调用咱们定义的变量即可。
2.4 基于commit id构建
如上图所示,选择我们需要基于哪个commit id进行构建。生产环境中不推荐使用commit id来进行部署和回滚。
本文来自博客园,作者:尹正杰,转载请注明原文链接:https://www.cnblogs.com/yinzhengjie/p/18601178,个人微信: "JasonYin2020"(添加时请备注来源及意图备注,有偿付费)
当你的才华还撑不起你的野心的时候,你就应该静下心来学习。当你的能力还驾驭不了你的目标的时候,你就应该沉下心来历练。问问自己,想要怎样的人生。