由于领域特点,本号主题涉及IT、互联网、IT职场、知识管理、CPU、操作系统、编程语言等,尤其关注开源编程语言和国内信息自主生态及企业,如C#、ArtTS、OpenHarmony、龙芯、华为、团结引擎(Unity)等的发展。本号已有原创文章330+篇,欢迎关注和点击在看,了解行业知识和产品最新动态。
问题21:Jenkins定时构建怎么精确到秒?
参考:不能精确到秒。Jenkins定时构建表达式分为5部分,第一位最小,为分钟,后续依次为小时、天、月、周(0和7都表示周日)。
问题22:Pipeline如何禁止同一个任务多个构建并发执行?
参考:
options {
disableConcurrentBuilds()
}
问题23:经典类型任务里的“丢弃旧的构建”在Pipeline里怎么写?
参考:以保持构建30天,保持构建最大个数100个,发布包保留天数30天,发布包最大保留个数100个为例:
options {
buildDiscarder logRotator(artifactDaysToKeepStr: '30', artifactNumToKeepStr: '100', daysToKeepStr: '30', numToKeepStr: '100')
}
问题24:怎么学好Jenkins?
参考:大而言之,天下学问:心性之学,侧重靠心悟;记问之学,侧重靠脑记。悟是一念之间,性质发生巨变。记问之学,也就是现代的科学知识(不包括科学研究),是“死”的、固定的、逻辑化的、流线形的、分层次的、有条理的。小而言之,学习Jenkins,就是理解它的结构和运行流程以及工作中的业务结构和流程。了解Jenkins每个结构做什么事情,涉及哪些插件,每个插件又有什么功能。循序渐进、顺藤摸瓜、不怕麻烦、耐得住寂寞、层次逐渐深入,专业能力也就越来越强悍了。心性之学耗心力,记问之学耗脑力,心脑并用,境界和专业能力都能得到提升。
问题25:介绍一个珍藏的技巧。
参考:手动修改机器里的config.xml后,点击系统管理-读取配置即可让配置立即生效,无需重启Jenkins,不会影响正在执行的任务!
问题26:Pipline文件参数上传的文件在什么位置?
参考:文件参数类型,目前Pipeline是不支持的。有用户反馈过这个问题,然后官方把file类型参数从文档里去掉了……用户手工上传文件,也不利于自动化,建议把这个文件放到一个网络可以访问的位置上,然后把文件参数用字符串参数代替,字符串为网络路径;或者放到一个git仓库里管理也行,用户更改也方便,本地提交即可。思路如此,可以按自己情况来安排。
问题27:一段很长的错误调用堆栈,不知道错误原因。
参考:这里面比较关键的报错是“java.io.NotSerializableException“,这是个比较普遍的问题,所以拿出来说一下。Pipeline有一个很重要的特性,就是重启后恢复。由于这个特性的需要,Pipeline脚本里使用的类必须都是序列化了的。现在很多人刚接触Pipeline,会把它当成纯Groovy来用,其实是不行的。一般来说,尽量不要手动去引入一些类来使用,多了解已存在的Pipeline步骤,能用步骤尽量用步骤,脚本主要用来做一些参数的分析处理,不做有重量的业务动作。
问题28:Pipeline中的stage是什么作用?
参考:这个从用户角度理解,是为了让流水线有更清晰的结构,展示的时候更清晰,出错时定位问题能一眼知道是哪块出了问题。从代码维护角度来说,可以让Pipeline脚本有清晰的结构。
问题29:Jenkins要不要用k8s?
参考:脱离实际来讲这些没有意义,要看项目的规模和实际需求。有痛点,k8s又能解决你的痛点,就需要。如果没有,只是增加技术复杂性,提高了技术门槛却没有获得好处。对自己使用对技术栈足够熟悉才能快速地处理、解决问题。如果生产规模有上k8s的需求,可以上,同时个人要抓紧补充k8s的相关知识。反之可以先不上,但个人也有必要学习k8s,从个人职业规划和发展考虑,k8s是必须要啃下的骨头。
问题30:Pipeline可以执行另一个Jenkinsfile吗?
参考:不可以。但可以用build步骤触发另一个Jenkins任务。