Вы можете получить информацию о восходящем потоке (и многое другое) через Groovy. Следующий сценарий в «Execute системы Groovy сценария» шаг сборки будет делать то, что вы хотите: выход
import jenkins.model.*
// find latest upstream build that triggerd this run (there may be several iff queued)
def latestCause = build.causes.findAll {
it.class.toString() == 'class hudson.model.Cause$UpstreamCause'
}.max({ it.getUpstreamBuild() })
// determine upstream project name and build number
def upstreamProjectName = latestCause.upstreamProject
def upstreamBuildNum = latestCause.upstreamBuild
println "upstreamProject = ${upstreamProjectName}"
println "upstreamBuildNum = ${upstreamBuildNum}"
// find corresponding upstream job and build objects
def upstreamJob = Jenkins.instance.getItemByFullName(upstreamProjectName)
def upstreamBuild = upstreamJob.getBuildByNumber(upstreamBuildNum)
// print subversion revision info
def state = upstreamBuild.getAction(hudson.scm.SCMRevisionState.class)
state.revisions.each { location, revision ->
println "upstream url/rev: ${location}/${revision}"
}
Пример:
upstreamProject = svn-upstream-project
upstreamBuildNum = 16
upstream url/rev: https://svn.example.com/foo/bar/12345
Вам не нужно проходить какие-либо «вверх» информация явно к нисходящему проекту. Это проще в обслуживании, а также поведение очередности нисходящего потока не изменится (см. Мой комментарий к другому ответу). Это важно, если ваше выполнение в нисходящем потоке занимает больше времени, чем то, что доступно между версиями выше по течению - в противном случае у вас будет постоянно растущая очередь сборки.
Вы можете изготовить особенно хорошие решения, если вы использовать сценарий, как выше и объединить его с Script SCM plugin. Например, вы можете синхронизировать нижестоящие изменения (уведомления об уведомлениях об участниках) и восходящие проекты без подключения нисходящего потока к SCM. Это типичная настройка при подключении «задания сборки» и одного (или более) «тестовых заданий».
Это будет работать, но обратите внимание, что введение параметров изменит поведение очередей - будет создана нисходящая сборка для _each и each upstream_ run. Обычно (без параметров) Дженкинс объединяет несколько триггеров нисходящего потока, если его выполнение не может идти в ногу с восходящим потоком. Такой сценарий довольно распространен, когда у вас есть относительно быстрое задание построения с медленным заданием вниз по течению для выполнения тестов регрессии. –
Это правда, я бы сказал, что эти два решения дополняют друг друга в зависимости от того, какое поведение вы не достигли ... Однако вопрос неясен. –
К сожалению, я не думаю, что могу использовать это - проект downstram не подключен к svn и не является параметризованной сборкой. Извините, я не был так ясен с моим вопросом. это полезная информация для меня, независимо от того, как я могу ее использовать в других местах.спасибо – Tim