交个朋友-献给流水线开发者的一份FAQ文档

本篇文章主要讲述调试流水线的过程中遇到的问题和解决方法,相信值得每一位调试过流水线的伙伴都看下。经验丰富的同学我们再复习一遍,刚开始学习的同学你更得要看了,这可是防踩坑指南哇。哈哈!

来说说今天很多同学在做流水线的时候遇到的一些问题,我把问题整理下来分享给更多的人。能少踩坑就少踩一点点。

遇到的问题一

+

同学A:之前通过Git参数获取分支信息,后面用python的gitlab库完成分支获取。

答:这位同学做的非常好,通过自己的研究完成了自己想要的结果。(估计很Happy)其实使用python在流水线中还是有些重的,为什么说有点重呢?如果用python的库默认自带的还好些,现在linux都有python开发环境。而不是默认自带的库,需要手动安装更新维护成本的。而HTTP方式会更轻一些。这里推荐使用httpRequest插件来完成HTTP接口调用。


遇到的问题二

+

同学B:想要使用凭据的明文内容进行操作,调试过程中屡次出现问题。通过credentials 无法获取凭据的明文信息。信息知道如何获取了,但是又出现了无法解析变量的问题。

答:这位同学真的很努力,在经过屡次失败后依然在不断调试。推荐一种在流水线中使用凭据的明文数据的方法。我经常这样使用。withCredentials {}语句块可以帮助我们实现,核心是通过凭据ID定位凭据,然后获取其原始的明文信息。这在流水线中经常用到,尤其是在自己写sharelibrary的过程中。例如:发送Http请求需要认证token。最后无法解析变量是因为单引号和双引号导致的,切记变量要用双引号。


遇到的问题三

+

同学C: jenkins sonar 扫描 vue项目代码,是不是只能用sonar-scanner的方式?

答:是的,sonar官方提供了一些与第三方工具集成的插件,但其本身还是使用的sonar-scanner。例如:与maven集成的插件、JenkinsSonar插件等等。


遇到的问题四

+

同学D:  Git Parameter参数无法获取分支信息。您现在拉取代码用的是什么参数哈?

答:这个问题我之前也是遇到过,只是后来因为改变了项目的创建模式就不在研究了。这个插件参数实现的是获取Git仓库的分支和标签信息。默认你在项目中定义了SCM信息和Jenkinsfile的SCM信息,会出现最后获取的Jenkinsfile的代码库的分支信息。很明显我们要获取的项目的代码库中的分支信息。所以这种情况下可以在参数的高级设置中指定代码库。 说说为什么我现在不用了,不是插件问题。而是在企业如果有了第三方的平台能够实现与此插件相同的功能,更稳定更简单些。还有一个主要的原因是我们配置的提交触发构建,需求变更触发构建可以将分支参数动态的传递给了项目,就不需要被动的获取了。


遇到的问题五

+

同学E:我在调试Harbor接口,字符串如何转换成json?

答:可以使用readJSON 格式化数据,需要安装插件"Pipeline Utility Step "。这个插件的使用方法可以在片段生成器中查看。非常好用,如果你介意安装插件那可以使用原生的解决方法。

//原生方法
import groovy.json.*


@NonCPS
def GetJson(text){
    def prettyJson = JsonOutput.prettyPrint(text) 
    new JsonSlurperClassic().parseText(prettyJson)
}


遇到的问题六

+

同学F:http request插件的返回结果是状态码,怎么拿到文本信息?

答:使用 response.content 获取的是文本信息,response.status获取返回的状态码。


遇到的问题七

+

同学G:声明式流水线具有从指定阶段重新运行功能,jenkins的api有提供这个功能么?

答:我很好奇,之前也有想法使用这个接口,但是后来不知道因为什么问题都忘记了。直接在浏览器中查看了下抓包数据,发现了接口的使用方式,还是比较简单的。直接发送一个Post请求和要运行的阶段名称就可以了。


遇到的问题八

+

同学H:choice选项,这个Abort可以自定义字符串吗?

答:没有参数可以修改。


遇到的问题九

+

同学I:是否遇到过类似的问题呢?Jenkins项目前几天触发的一直在构建,点❌还关闭不了[泪奔]。

答:告诉大家一个小技巧,不用重启。按照下面的操作试试:点击构建id,弹出当前构建的页面。然后在url后面加个kill 回车。强制关闭构建。


遇到的问题十

+

同学J:如何分割git地址中的仓库项目名称?

答:可以使用split进行分割然后通过索引获取数据。例如:

repoUrl  = "http://gitlab.com/demo/demo-test-service.git"
projectName = repoUrl.split("/")[-1] - ".git"

送给大家的话:

今年上线的《DevOps流水线实践教程》已经销量突破300+,首先感谢各位伙伴的支持!每次看到同学们学完后反馈自己的进步对于我们来说真的太开心了。希望大家通过《DevOps流水线实践教程》学习,活学活用,主要学习的是思路和实践的经验。多么希望每一位学员通过学习这门课程能够将把经验变成自己的,经验拿下涨薪都是小事情。

新同学可以看下这份教程基于Jenkins的DevOps流水线实践

后面我会把处理的问题记录到星球管理,你也可以在星球直接提问!

每周坚持公开课分享,感兴趣的同学交个朋友。加入我们,你不再感到孤单。

制作通俗易懂且实践性强的教程,这也算是推进DevOps的一种手段吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值