ci_guard

Posted cjyp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ci_guard相关的知识,希望对你有一定的参考价值。

技术图片
 1 #!/bin/bash
 2 # ./ci_guard.sh
 3 
 4 ERRORSTATUS=10
 5 TESTSTATUS=0
 6 USER="moonx"
 7 IPs="192.168.1.102 192.168.1.102 " # add host ip like "xx.xx.xx.xx xx.xx.xx.xx", delimit by space
 8 
 9 restart_gitlab_runner(){
10    # restart gitlab-runner ssh ${USER}@${IP}
11    for IP in ${IPs}
12    do
13        echo "restart gitlab-runner on ${IP}: ssh ${USER}@${IP}"
14        #ssh ${USER}@${IP} "sudo service gitlab-runner restart; exit"
15        #ssh ${USER}@${IP} "pidof redis-server|sudo xargs kill -9; exit"
16        ssh ${USER}@${IP} "pidof redis-server|sudo xargs kill -9; exit"
17        sleep 3
18    done
19 }
20 
21 test_(){
22    for IP in ${IPs}
23    do
24        echo "on ${IP}: ssh ${USER}@${IP}"
25        ssh ${USER}@${IP} "date >> /usr/download/testcov/log; exit"
26        sleep 3
27    done
28 }
29 
30 echo begin guard the ci.
31 #while true
32 #do
33 # get pipelines info
34 pipelinesinfo=`curl --header "PRIVATE-TOKEN: UsDsmqSpivXMmNoCHcci" 35                "https://gitlab.moonx.cn/api/v4/projects/2/pipelines" --insecure` # |python -m json.tool`
36 runnersinfo=`curl --header "PRIVATE-TOKEN: UsDsmqSpivXMmNoCHcci" 37              "https://gitlab.moonx.cn/api/v4/projects/2/runners" --insecure`
38 
39 # resolve pipelines info
40 python checkcistatus.py $pipelinesinfo $runnersinfo
41 ci_status=$?
42 
43 if [ $ERRORSTATUS == $ci_status ]
44 then
45    echo "49"
46    #restart_gitlab_runner
47 elif [ $TESTSTATUS == $ci_status ]
48 then
49    echo "55"
50    #test_ 
51 fi
52 
53 #sleep 5
54 #done
55 echo exit guard the ci.
ci_guard.sh
技术图片
 1 # coding=utf-8
 2 # python checkcistatus.py $pipelinesinfo $runnersinfo
 3 
 4 import sys
 5 import re
 6 
 7 ERRORSTATUS=10
 8 
 9 pipeidstr="id":
10 pendingpipe="status":"pending"
11 runningpipe="status":"running"
12 
13 template_str_runner="name":"gitlab-runner"
14 template_str_active_runner="active":true
15 
16 if __name__ == "__main__":
17     if len(sys.argv) < 3:
18         print "usage: python checkcistatus.py $pipelinesinfo $runnersinfo"
19         sys.exit(1)
20 
21 #for i in range(0,len(sys.argv)):
22 #    print(i, sys.argv[i])
23 pipe_num=len(re.findall(pipeidstr, sys.argv[1]))
24 runningpipe_num=len(re.findall(runningpipe, sys.argv[1]))
25 pendingpipe_num=len(re.findall(pendingpipe, sys.argv[1]))
26 print "pipe_num:%d,running:%d,pending:%d" % (pipe_num,runningpipe_num,pendingpipe_num)
27 
28 runner_num=len(re.findall(template_str_runner, sys.argv[2]))
29 active_runner_num=len(re.findall(template_str_active_runner, sys.argv[2]))
30 print "runner:%d,active_runner:%d" % (runner_num,active_runner_num)
31 
32 if 0==runningpipe_num and 0!=pendingpipe_num:
33     print "[error]no running pipeline, pending pipeline exists."
34     print "[error]need to restart gitlab-runner."
35     sys.exit(ERRORSTATUS)
36 
37 if 0!=pendingpipe_num and runningpipeline_num < active_runner_num:
38     print "[error]running pipeline less than active runner, pending pipeline exists."
39     print "[error]need to restart gitlab-runner."
40     sys.exit(ERRORSTATUS) 
41 
42 print "[info]not need to restart gitlab-runner."
43 sys.exit(0)
checkcistatus.py

 

以上是关于ci_guard的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——CSS选择器

谷歌浏览器调试jsp 引入代码片段,如何调试代码片段中的js

片段和活动之间的核心区别是啥?哪些代码可以写成片段?

VSCode自定义代码片段——.vue文件的模板

VSCode自定义代码片段6——CSS选择器

VSCode自定义代码片段——声明函数