1. 程式人生 > >jenkins groovy postbuild print and example 列印訊息和log收集例子

jenkins groovy postbuild print and example 列印訊息和log收集例子

jenkins groovy postbuild print and example 列印訊息和log收集

轉載自 https://gist.github.com/halyph/4610274

another script snipet

http://codegist.net/code/jenkins-groovy-script-print-to-console/

import hudson.model.*
import com.tikal.jenkins.plugins.multijob.*;

void log(msg) {
  manager.listener.logger.println(msg)
}

threshold = Result.SUCCESS

void aggregate_results() {
    failed = false

    mainJob = manager.build.getProject().getName()
    job = hudson.model.Hudson.instance.getItem(mainJob)

    log "---------------------------------------------------------------------------------------------------------------"
    log "Aggregated status report"
    log "---------------------------------------------------------------------------------------------------------------"

    log("${mainJob}    #${manager.build.getNumber()} - ${manager.build.getResult()}")

    job.getLastBuild().getSubBuilds().each { subBuild->
      subJob = subBuild.getJobName() 
      subJobNumber = subBuild.getBuildNumber()
      job = hudson.model.Hudson.instance.getItem(subBuild.getJobName())
      log "${subJob}   #${subJobNumber} - ${job.getLastCompletedBuild().getResult()}"
      log job.getLastCompletedBuild().getLog()

      //println subBuild
      dePhaseJob = hudson.model.Hudson.instance.getItem(subBuild.getJobName())
      dePhaseJobBuild = dePhaseJob.getBuildByNumber(subBuild.getBuildNumber())
      dePhaseJobBuild.getSubBuilds().each { childSubBuild ->
        try {
            log "   ${childSubBuild.jobName}"

            job = hudson.model.Hudson.instance.getItem(childSubBuild.getJobName())
            build = job.getBuildByNumber(childSubBuild.getBuildNumber())

            indent = "  "    
            log "${indent} #${build.getNumber()}  - ${build.getResult()}" 
            log build.getLog()

            if(!failed && build.getResult().isWorseThan(threshold) ) {
              failed = true
            }
        } catch (Exception e) {    
            log("ERROR: ${e.getMessage()}")
            failed = true
        }
      }
    }

    if(failed) {manager.build.setResult(hudson.model.Result.FAILURE)}
}

try {
  aggregate_results()
} catch(Exception e) {
  log("ERROR: ${e.message}")
  log("ERROR: Failed Status report aggregation")
  manager.build.setResult(hudson.model.Result.FAILURE)
}

相關推薦

jenkins groovy postbuild print and example 列印訊息log收集例子

jenkins groovy postbuild print and example 列印訊息和log收集 轉載自 https://gist.github.com/halyph/4610274 another script snipet http://codegist.ne

Jenkins外掛groovy-postbuild使用(一)-獲取jenkins環境變數值獲取build結果

因為要在構建完成後,需要上傳下構建的結果,找了很久找到了這個外掛:groovy-postbuild 感覺groovy-postbuild外掛還是很強大的,畢竟寫groovy指令碼很方便 如何獲取構建

for each/in/of的解釋and example

for in and turn break 情況下 數字 一個 myarray 一個數 for-of 循環:代碼示例for (var value of myArray) {console.log(value);}循環的對象需為一個數組 無法記錄索引 可以相應break、co

for each/in/of的解釋and example for each/in/of的解釋and example

    for each/in/of的解釋and example for-of 迴圈:程式碼示例for (var value of myArray) {console.log(value

在Unity中“Debug.LogPrint”兩種列印方式的區別

先寫個指令碼“PrintAndDebug”,掛在Main Camera 元件上,在指令碼的 Start 函式裡通過這兩種方式列印一段內容 然後執行u3d,看控制檯列印日誌,如下圖 在這裡可以明瞭的看到Debug.Log是直接打印出來的 而Print是繼承自MonoBehaviour的,

Groovy Postbuild 歷史引數外掛構建過程

Date Parameter Plugin 時間外掛Groovy Postbuild 歷史引數外掛 用法介紹:Groovy Postbuild 1、新增構建後操作引數2、配置對應需要顯示的引數,不需要勾選這個if(manager.build.result.isBetterOrEqualTo(hudson.m

Python--列印列表結尾用and結合列印

Python–列印列表結尾用and結合列印 假定有下面這樣的列表:spam = [‘apples’, ‘bananas’, ‘tofu’, ‘cats’]編寫一個函式,它以一個列表值作為引數,返回一個字串。該字串包含所有表項,表項之間以逗號和空格分隔,並在最後

maven 列印訊息或輸出訊息列印日誌

在maven中沒有如Ant中的echo命令,只有藉助於外部外掛來列印訊息,這些外掛用起來都很繁瑣,如果maven能提供一個這樣的命令,無疑是極好的。 下面列出幾種可利用的列印訊息的方法,都採用了maven外掛的方式進行處理,各方式特點總結: 1、方式1,3,4均支援輸出多條

linux初學核心之列印訊息

  核心版本:Linux version 3.0.15(cat /proc/version)   剛開始接觸程式設計,從第一句打印出hello world一直用的是printf,直到接觸linux核心,這一使用方法開始改變!   printk()和printf()之間的一個

Leetcode 655. Print Binary Tree 列印二叉樹 解題報告

給一個二叉樹,要求進行列印,也就是在一個高度*寬度的矩陣裡面列印就好了,每個子樹的root列印在當前子區間的中間就好了 Print a binary tree in an m*n 2D string

Python3 Print 同一行列印顯示進度條效果

# -*- coding:utf-8 -*- ''' print 中的 end = '\r' 是一個轉義符,作用是讓游標重新回到首行 預設是'\n'換行符,windows系統下如果設定後不改回預設值會

微信機器人--定時給朋友傳送訊息and 自動回覆訊息

定時給朋友傳送訊息:from __future__ import unicode_literals from threading import Timer from wxpy import * import requests # bot=Bot() # 從快取中獲取登入資訊

Jenkins構建專案後傳送釘釘訊息推送

前言 釘釘是我們日常工作的溝通工具,在Jenkins構建持續整合專案配合釘釘機器人的功能,可以讓我們在持續整合測試環節快速接收到測試結果的訊息推送。 一:新建一個釘釘群,選擇自定義機器人 二:新增機器人,獲取到access token   三:Jenkins安裝dingding plugin外

React 設計模式 --- Container and Presentational pattern(容器展示組件分離)

htm con o-c 進行 style ade 不同 後綴 其他   在React開發中,一個典型的React組件通常會混雜著邏輯操作部分和展示部分。邏輯操作部分指的是和頁面UI無關的內容,如API的調用,數據的處理,事件處理函數。 展示部分則指的是創建頁面UI 的內容,

Jenkins集成Docker實現鏡像構建線上發布

gis and ash macro tom 說明 align docker add 原文地址:http://www.cnblogs.com/keithtt/p/6410229.html 大概過程如下圖: 由於需要用到docker打包鏡像,jenkins宿主機上

[LeetCode] 535. Encode and Decode TinyURL 編碼解碼短URL

blog ack decode nco his algorithm highlight return 解碼 Note: This is a companion problem to the System Design problem: Design TinyURL.Tiny

全網最詳細的hive-site.xml配置文件裏添加<name>hive.cli.print.header</name><name>hive.cli.print.current.db</name>前後的變化(圖文詳解)

xml配置 note 個人博客 default 詳情 公眾 class 人生苦短 CA   不多說,直接上幹貨!     比如,你是從hive-default.xml.template,復制一份,改名為hive-site.xml     一

jenkins 執行shell命令出錯command not found No such file or directory

image 圖片 分享圖片 root not found wid 腳本 local 成功 [root@localhost usr]# sh test.sh command not found [root@localhost ~]# cd usr-bash: cd: us

透傳訊息非透傳訊息

版權宣告:本文為博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/zhiyi2010/article/details/50845456 目前的訊息推送方式主要有兩種:通知和透傳。 什麼是透傳?透傳即是透明傳送,即傳送網路無論傳輸業務如何,只負責將需要傳送的業務傳送

RecurrenceRule 實體訊息方法

今天偶然發現這個RecurrenceRule 實體訊息和方法 ,所不知道是什麼嗎,記錄一下吧 適用於: Dynamics 365 (online),Dynamics 365 (on-premises),Dynamics CRM 2016,Dynamics CRM Online 定期規則 表示