Как насчет того, если у вас есть удаленный хост-опрос Дженкинса, чтобы узнать, была ли последняя сборка успешной. Возможно, cron поможет вам запланировать его. Затем, если последний статус == «УСПЕХ» вытащит последнее изображение git/docker и запустится.
Я нашел этот сценарий на serverfault.com, https://serverfault.com/questions/309848/how-can-i-check-the-build-status-of-a-jenkins-build-from-the-command-line
Первый параметр скрипта название проекта Дженкинс. Сценарий будет подключен к вашему экземпляру Jenkins, см. Параметр jenkinsURL и проверьте, была ли последняя сборка успешной.
#!/usr/bin/python
#
# author: ajs
# license: bsd
# copyright: re2
import json
import sys
import urllib2
jenkinsUrl = "https://jenkins.example.com/job/"
if len(sys.argv) > 1 :
jobName = sys.argv[1]
else :
sys.exit(1)
try:
jenkinsStream = urllib2.urlopen(jenkinsUrl + jobName + "/lastBuild/api/json")
except urllib2.HTTPError, e:
print "URL Error: " + str(e.code)
print " (job name [" + jobName + "] probably wrong)"
sys.exit(2)
try:
buildStatusJson = json.load(jenkinsStream)
except:
print "Failed to parse json"
sys.exit(3)
if buildStatusJson.has_key("result"):
print "[" + jobName + "] build status: " + buildStatusJson["result"]
if buildStatusJson["result"] != "SUCCESS" :
exit(4)
else:
sys.exit(5)
sys.exit(0)
Это может быть решение, но я использую Github OAuth плагин, который перенаправляет меня на GitHub страницу, если я не уполномочен Кроме того, наши корпоративные стандарты не позволяют иметь SSH соединение на сервере развертывания ... Так что я положил Дженкинс в контейнере докеров, который также запускается на одном сервере развертывания в режиме «--privileged», чтобы иметь возможность запускать докер в докере. И код от Jenkins развернут на хосте ssh – Art