Jenkinsfile: Как получить триггер сборки - PullRequest
0 голосов
/ 21 мая 2018

Я пытаюсь выяснить, как определить, что послужило причиной запуска сборки из сценария Jenkinsfile.Причина в том, что у меня есть сценарий в контейнере Docker, который я хочу запустить в задании cron, поэтому, когда запускается задание cron, я просто хочу, чтобы он запустил контейнер, но когда я нажимаю изменения, я хочу, чтобы он проверилкод, перестроить контейнер, запустить статический анализ кода, запустить тесты и т. д. Все это не требуется при запуске cron.

Как узнать причину?Я пытался currentBuild.getCauses(), но я получал

groovy.lang.MissingMethodException: No signature of method: org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper.getCauses() is applicable for argument types: () values: []

Я пытался println currentBuild.getRawBuild().getCauses(), но получил

org.jenkinsci.plugins.scriptsecurity.sandbox.RejectedAccessException: Scripts not permitted to use method org.jenkinsci.plugins.workflow.support.steps.build.RunWrapper getRawBuild

Как мне узнать причину сборки в моем файле jenkinsfile?

Ответы [ 2 ]

0 голосов
/ 13 октября 2018

Имя проекта запускающей сборки ( getUpstreamProject ) и номер сборки ( getUpstreamBuild ):

currentBuild.rawBuild.getCauses().get(0).getUpstreamProject()
currentBuild.rawBuild.getCauses().get(0).getUpstreamBuild()

Или другой способ, который, на мой взгляд, может не сработатьнеобходимы изменения прав доступа: currentBuild.getUpstreamBuilds (). get (0) .getProjectName ()

Мне нужна ветвь вышестоящего проекта, в которой я работаю:

currentBuild.getUpstreamBuilds().get(0).getRawBuild().getEnvVars().get("BRANCH_NAME", "")

Вот документы по этому вопросу: getEnvVars ()

Кстати, вам придется включить беспорядок разрешений.

0 голосов
/ 22 мая 2018
manager.build.causes

для использования, вам нужно будет утвердить эти подписи

method org.jvnet.hudson.plugins.groovypostbuild.GroovyPostbuildRecorder$BadgeManager getBuild
method hudson.model.Run getCauses

надеюсь, это поможет

...