从零打造自己的CI/CD系统|使用Jenkins作为操作入口
通常情况下,并不是每个人都能熟练操作命令行,特别重要的一点是很容易发生误操作,今天我们就来实现下如何提供一个web界面让用户操作,自己开发可能时间成本有点高(看功能复杂度吧),这里我们直接使用Jenkins来实现。
github仓库地址[1]
环境需求
参考上几篇篇文档
从零打造自己的CI/CD系统|php项目部署v1版本
从零打造自己的CI/CD系统|php项目部署v2版本
从零打造自己的CI/CD系统|php项目部署v3版本
jenkins插件准备
•Active Choices[2]•Git[3]
jenkins设置
效果图
我们把环境,分支和执行动作抽出来作为动态传参的形式来体现,其他的参数全部采用落地到配置文件的方式实现。具体效果如如下图所示:
动态选项设置
这里的实现是groovy的简单代码实现,感兴趣的小伙伴可以去看下官方文档。
分支选择
把git_repo换成你的仓库地址即可,尽可能是ssh方式,前提是确保发布机器可以通过ssh方式访问你的代码托管平台
代码语言:javascript复制def gettags = ("git ls-remote -h git_repo").execute()
gettags.text.readLines().collect { it.split()
[1].replaceAll('refs/heads/', '') }.unique()
动作选择
这里支持的动作是发布和回滚两个,当然如果你想扩展也可以,比如实现重启操作(选择一键重启所有机器,还是选择性的重启某台机器等)
代码语言:javascript复制return [
"deploy",
"rollback",
]
后续跟进文档
•回滚roles操作的编写•如何秒级别创建job并关联对应的项目的palybook
文件•总结篇
总结
今天是连更的第32天,坚持下来真的是有点难度,这里要感谢我媳妇和我家娃,要不然真的是没时间去写东西,尽可能的每天写的都精简些,避免长篇大论,多讲解些细节性的东西, 另外要提的一点是,甭管是自己开发的还是结合开源工具组装出来的产物,一定是要让别人使用的时候足够简单,并不是每个人都会按照你的设定去操作,不要沦落到互骂傻逼的场景。
引用链接
[1]
github仓库地址: https://github.com/zhuima/kylin
[2]
Active Choices: https://plugins.jenkins.io/uno-choice/
[3]
Git4.2.2: https://plugins.jenkins.io/git/