詹金斯搭建_在詹金斯管道中检查人工工厂

詹金斯搭建

我的一个项目使用Artifactory作为存储库管理器。 不幸的是,在进行Jenkins 管道构建时,有时会忘记确保Artifactory服务器先启动,并在运行一段时间后发现作业失败。

我已经在我的Jenkinsfile文件中添加了一些脚本,该脚本将尽早检查Artifactory服务器,如果未运行,则会快速失败。

人工检查

出于我的目的,我只是尝试ping Artifactory服务器 。 这可以通过发送http请求来完成: http:// [您的Artifactory URL] / artifactory / api / system / ping ,如果成功,则应返回字符串“ OK”。

詹金斯管道示例

此特定示例要求安装HTTP请求插件 。 在实际构建Artifactory检查之前,我在管道中添加了一个声明阶段。

在此阶段,如果响应状态代码在默认范围内(100到399),并且响应内容包括字符串“ OK”,则来自插件的HTTP请求调用将成功。 如果响应不满足这些条件,那么詹金斯的工作将很快失败。

 pipeline { 
   agent any 
   options { 
     // Stop the build early in case of compile or test failures 
     skipStagesAfterUnstable() 
   } 
   stages { 
     stage( 'Build' ) { 
       environment { 
         // artifactory server url 
         artifactoryUrl = ' http:// [Your Artifactory URL]/artifactory' 
      } 
     // stage to check the Artifactory server is up, else will fail the job 
     stage( 'Artifactory check' ) { 
       steps { 
         script { 
           echo 'Pinging Artifactory' 
           // for a successful ping, the response status code must be in default acceptable range (100:399) 
           // and contain 'OK' in the content 
           def pingResponse = httpRequest url: "${artifactoryUrl}/api/system/ping" , validResponseContent: 'OK' 
           echo "Ping response status code: ${pingResponse.status}" 
           echo "Ping response: ${pingResponse.content}" 
         } 
       } 
     } 
     // continue with other stages for the job 

或者,如果您不希望Artifactory检查使作业失败,则只需将HTTP请求的参数更改为允许所有响应状态代码和任何响应内容通过。 然后,如果ping操作失败,则可以设置一个标志,发送通知,打印一些信息等,然后让作业继续进行。

 stage( 'Artifactory check' ) { 
   steps { 
     script { 
       // Allow all response codes returned from the Artifactory ping request so it doesn't fail, 
       // normal allowable codes are 100:399. 
       def pingResponse = httpRequest url: "${artifactoryUrl}${artifactoryPingPath}" , validResponseCodes: '100:599' 
       echo "Ping response status code: ${pingResponse.status}" 
       echo "Ping response: ${pingResponse.content}" 
       if (pingResponse.status == 200 && pingResponse.content == 'OK' ) 
         // flag successful check 
       else 
         // flag ping failure 
     } 
   }  } 

翻译自: https://www.javacodegeeks.com/2020/05/checking-for-artifactory-in-a-jenkins-pipeline.html

詹金斯搭建

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值