保障Pipeline脚本在Devops中成功应用的四大核心

保障Pipeline脚本在Devops中成功应用的四大核心

作者:测试开发Kevin 2021-10-15 09:16:05

云计算 想设计复杂的pipeline脚本在devops中成功应用,我们需要从脚本的稳定性.脚本执行的超时处理.构建结果处理.对于groovy脚本的调用四个方面进行考虑。

[[429059]]

想设计复杂的pipeline脚本在devops中成功应用,我们需要从如下几个方面进行考虑:

1.脚本的稳定性:使用异常处理机制保证在发生异常的情况下脚本能够捕获异常并持续运行;

2.脚本执行的超时处理:构建时需要考虑超时机制避免花费大量时间等待而浪费执行时间;

3.构建结果处理:通过异常处理机制,jenkins build的结果都是SUCCESS,如果想对build的结果或者是stage的结果进行控制分析,我们需要进一步对构建结果进行处理;

4.对于groovy脚本的调用:引入其他groovy脚本来实现某些更为复杂的功能

代码的设计基础样式

写一个脚本的通常形式是

  1. node { 
  2. stage('Build') { 
  3. // git 下载代码 
  4. // mvn clean install 构建代码 
  5. stage('unit Test') { 
  6. // 执行单元测试 
  7. stage('Test') { 
  8. // 执行自动化测试脚本,进行核心功能覆盖 
  9. stage('Deploy') { 
  10. //执行运维脚本,部署程序上线 

对脚本进行稳定性处理

  1. stage('Test'){ 
  2. try { 
  3. //需要处理的代码 
  4. }catch(err) { 
  5. //处理error的代码 
  6. catch(exp) { 
  7. //处理exception的代码 

脚本执行超时的处理

某些场景我们需要对脚本进行超时处理,例如maven构建超时、测试代码执行超时等等,那么我们可以这样设计代码。

 

  1. try { 
  2. timeout(timeout) { 
  3. //超时处理的代码 
  4. catch (exp) { 
  5. //捕获超时异常,便于大家做进一步的处理 
  6. def error_msg = exp.getCauses()[0].toString() 
  7. if (error_msg.find("TimeoutStepExecution") =="TimeoutStepExecution") { 
  8. //处理逻辑 

构建结果的处理

通过使用try… catch…的处理,jenkins build的结果都是SUCCESS,如果想对build的结果或者是stage的结果进行控制,可以按照下面的方法进行处理:

build结果包括:SUCCESS, UNSTABLE,或者FAILURE (返回null ,build正在进行中)

使用变量currentBuild.result可以设置build的最终结果

currentBuild.result =‘FAILURE’//设置build结果为失败

对各个stage的结果处理,需要使用catchError

catchError(buildResult: ‘SUCCESS’, stageResult: ‘FAILURE’) {}//设置build结果为成功,而改stage结果为失败

引入其他groovy脚本

调用groovy类中的api

  1. ClassDemo.groovy 
  2. class MyClass { 
  3. void test1() { 
  4. println("test1"
  5. static void test2() { 
  6. println("test2"
  7. return new MyClass() 

注意一定要给调用者一个返回值,即return new MyClass()返回一个实例

调用groovy脚本中的函数

  1. Demo.groovy 
  2. def fun1(){ 
  3. println("func1"
  4. def fun2(){ 
  5. fun1() 
  6. println("func2"
  7. def fun3(){ 
  8. fun1() 
  9. println("func3"
  10. return this 

同样注意一定要给调用者一个返回值,即return this

在pipeline中调用groovy脚本

使用load引入脚本即可,代码如下

  1. node { 
  2. def f=load ("/opt/scripts/test/Demo.groovy"
  3. f.fun1() 
  4. def f2=load ("/opt/scripts/test/ClassDemo.groovy"
  5. f2.test1() 

jenkins share libary方式

可以使用share的方法,请参考官方文档:

https://www.jenkins.io/doc/book/pipeline/shared-libraries/

 

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/229325.html<

(0)
运维的头像运维
上一篇2025-04-18 17:26
下一篇 2025-04-18 17:27

相关推荐

  • 个人主题怎么制作?

    制作个人主题是一个将个人风格、兴趣或专业领域转化为视觉化或结构化内容的过程,无论是用于个人博客、作品集、社交媒体账号还是品牌形象,核心都是围绕“个人特色”展开,以下从定位、内容规划、视觉设计、技术实现四个维度,详细拆解制作个人主题的完整流程,明确主题定位:找到个人特色的核心主题定位是所有工作的起点,需要先回答……

    2025-11-20
    0
  • 社群营销管理关键是什么?

    社群营销的核心在于通过建立有温度、有价值、有归属感的社群,实现用户留存、转化和品牌传播,其管理需贯穿“目标定位-内容运营-用户互动-数据驱动-风险控制”全流程,以下从五个维度展开详细说明:明确社群定位与目标社群管理的首要任务是精准定位,需明确社群的核心价值(如行业交流、产品使用指导、兴趣分享等)、目标用户画像……

    2025-11-20
    0
  • 香港公司网站备案需要什么材料?

    香港公司进行网站备案是一个涉及多部门协调、流程相对严谨的过程,尤其需兼顾中国内地与香港两地的监管要求,由于香港公司注册地与中国内地不同,其网站若主要服务内地用户或使用内地服务器,需根据服务器位置、网站内容性质等,选择对应的备案路径(如工信部ICP备案或公安备案),以下从备案主体资格、流程步骤、材料准备、注意事项……

    2025-11-20
    0
  • 如何企业上云推广

    企业上云已成为数字化转型的核心战略,但推广过程中需结合行业特性、企业痛点与市场需求,构建系统性、多维度的推广体系,以下从市场定位、策略设计、执行落地及效果优化四个维度,详细拆解企业上云推广的实践路径,精准定位:明确目标企业与核心价值企业上云并非“一刀切”的方案,需先锁定目标客户群体,提炼差异化价值主张,客户分层……

    2025-11-20
    0
  • PS设计搜索框的实用技巧有哪些?

    在PS中设计一个美观且功能性的搜索框需要结合创意构思、视觉设计和用户体验考量,以下从设计思路、制作步骤、细节优化及交互预览等方面详细说明,帮助打造符合需求的搜索框,设计前的规划明确使用场景:根据网站或APP的整体风格确定搜索框的调性,例如极简风适合细线条和纯色,科技感适合渐变和发光效果,电商类则可能需要突出搜索……

    2025-11-20
    0

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注