簡體   English   中英

通過命令行查找Jenkins作業

[英]Find Jenkins job through command line

目前我搜索:

ps axf | grep jenkins

以這種格式看我的工作:

51412 ?        S      0:00  \_ /bin/sh -xe /var/lib/jenkins/tmp/jenkins2641742926206351383.sh

這份工作的名字是GOOD_JOB

如何僅在命令行中返回基於GOOD_JOB的 jenkins2641742926206351383.sh

換句話說,如果我只有GOOD_JOB,如何通過命令行返回jenkins2641742926206351383.sh

有可能更簡單的方法來做到這一點,但你可以用這樣的awk做到這一點:

ps axf | grep jenkins | awk -F'/' '{print $8}'

IIUC你想“在給定一個工作名稱的情況下找到一個Jenkins'構建臨時構建腳本名稱。” 在下面的代碼中,我假設您想要最后一次構建,或者知道構建號。

Jenkins有許多API可能會揭示這一點,但作為一個舊的CLI greybeard,這是一個快速的bash配方,可以通過Jenkins構建日志中的模式'grep':

JENKINS_HOME=/path/to/Jenkins/home
find_jenkins_sh() {
    local jobname bldnum log res
    jobname=$1
    bldnum=$2
    ### if we don't get a build number, find the latest one
    if [ -z "$bldnum" ] ; then
         bldnum=$(cd $JENKINS_HOME/jobs/$jobname/builds &&
                  /bin/ls -trd [0-9]* | tail -1)
    fi
    ### now we can locate the log and grep for our pattern
    local log=$JENKINS_HOME/jobs/$jobname/builds/$bldnum/log
    res=$(grep -m1 jenkins[0-9]*.sh $log)   # first mention: -m1
    res=${res//*jenkins/jenkins}            # strip up to 'jenkins'
    echo "$log: $res"
}

# if you know the job number
find_jenkins_sh GOOD_JOB 1234

# use the last job number
find_jenkins_sh GOOD_JOB

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM