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]# 

image-20230219183414690

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来进行部署和回滚。

posted @ 2024-12-11 23:10  尹正杰  阅读(41)  评论(0)    收藏  举报