本篇文章主要讲述调试流水线的过程中遇到的问题和解决方法,相信值得每一位调试过流水线的伙伴都开看下。经验丰富的同学我们再复习一遍,刚开始学习的同学你更得要看了,这可能防踩坑指南哇。哈哈!
来说说今天很多同学在做流水线的时候遇到的一些问题,我把问题整理下来分享给更多的人。能少踩坑就少踩一点点。
遇到的问题一
同学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.*@NonCPSdef GetJson(text){ def prettyJson = JsonOutput.prettyPrint(text) new JsonSlurperClassic().parseText(prettyJson)}
遇到的问题六
同学F: http request插件的返回结果是状态码,怎么拿到文本信息?
答: 使用 response.content 获取的是文本信息,response.status获取返回的状态码。
遇到的问题七
同学G:声明式流水线具有从指定阶段重新运行功能,jenkins的api有提供这个功能么?
答: 我很好奇,之前也有想法使用这个接口,但是后来不知道因为什么问题都忘记了。直接在浏览器中查看了下抓包数据,发现了接口的使用方式,还是比较简单的。 直接发送一个Post请求和要运行的阶段名称就可以了。
遇到的问题八
同学E: choice选项,这个Abort可以自定义字符串吗?
答: 不可以的。
遇到的问题九
同学F:是否遇到过类似的问题呢? Jenkins项目前几天触发的一直在构建,点❌还关闭不了[泪奔]。
答:告诉大家一个小技巧,不用重启。按照下面的操作试试: 点击构建id,弹出当前构建的页面。然后在url后面加个kill 回车。强制关闭构建。
遇到的问题十
同学G: 如何分割git地址中的仓库项目名称?
答:可以使用split进行分割然后通过索引获取数据。例如:
repoUrl = "http://gitlab.com/demo/demo-test-service.git"projectName = repoUrl.split("/")[-1] - ".git"
送给大家的话
今年上线的《DevOps流水线实践教程》已经销量突破300+,首先感谢各位伙伴的支持!希望大家通过《DevOps流水线实践教程》学习,活学活用,主要学习的是思路和实践的经验。多么希望每一位学员通过学习这门课程能够将把经验变成自己的,主要把经验拿下涨薪都是小问题。
点击扩展链接获取课程,交个朋友。