Копирование артефактов из вышестоящего многоотраслевого конвейера - PullRequest
0 голосов
/ 25 апреля 2019

У меня есть следующие настройки Jenkins:

  1. Многоотраслевой конвейер, который иногда (на определенных сборках тегов) вызывает
  2. конвейер, который создает установщик из вышестоящих артефактов.

В восходящем MB-конвейере у меня есть следующие фрагменты:

options {
    copyArtifactPermission('my-downstream-project');
}

post {
   success {
       script {
           if (isRelease()) {
               build job: 'my-downstream-project'
           }
       }
   }
}

Нисходящий конвейер, затем я пытаюсь захватить артефакты:

copyArtifacts projectName: 'my-upstream-project', 
              selector: upstream(),
              filter: '*.jar',
              fingerprintArtifacts: true

Во время запуска последующей сборки происходит сбой:

ОШИБКА: невозможно найти проект для копии артефакта: hds-access-code-cache Это может быть связано с неправильным названием проекта или настройками разрешений; см. справку для имени проекта в конфигурации задания.

Мое понимание до сих пор:

  • Хотя я не могу настроить разрешение «Копировать артефакт» через пользовательский интерфейс конфигурации для MB-конвейера, эта опция принята и должна работать.
  • В примерах, которые я могу найти, будет использоваться projectName: 'my-upstream-project/tag-name', поскольку это фактическая работа. У меня нет фиксированной ветви или тега.

Как правильно получить доступ к вышестоящему артефакту?

1 Ответ

0 голосов
/ 25 апреля 2019

Можно передать имя задания в качестве параметра.

Изменить восходящий конвейер на:

build job: 'my-downstream-project',
      parameters: [string(name: 'upstreamJobName', value: env.BRANCH_NAME)]

Добавить параметр в нисходящий конвейер:

parameters { 
    text(name: 'upstreamJobName', 
        defaultValue: '', 
        description: 'The name of the job the triggering upstream build'
    )
}

И измените директиву копирования на:

copyArtifacts projectName: "my-upstream-project/${params.upstreamJobName}", 
              selector: upstream(),
              filter: '*.jar',
              fingerprintArtifacts: true

Et voila:

Скопирован 1 артефакт из сборки «My Upstream Project» my-tag »номер сборки 1

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...