前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >献给流水线开发者的一份FAQ文档

献给流水线开发者的一份FAQ文档

作者头像
DevOps云学堂
发布2020-04-22 10:59:28
发布2020-04-22 10:59:28
61200
代码可运行
举报
文章被收录于专栏:DevOps持续集成DevOps持续集成
运行总次数:0
代码可运行

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

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

遇到的问题一

+

同学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 "。这个插件的使用方法可以在片段生成器中查看。非常好用,如果你介意安装插件那可以使用原生的解决方法。

代码语言:javascript
代码运行次数:0
复制
//原生方法
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进行分割然后通过索引获取数据。例如:

代码语言:javascript
代码运行次数:0
复制
repoUrl  = "http://gitlab.com/demo/demo-test-service.git"
projectName = repoUrl.split("/")[-1] - ".git"
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-04-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps持续集成 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档