1

ЦельPass Артефакт или Строка выше по течению работы в Дженкинс трубопроводе

Я пытаюсь организовать цепочку зависимостей, используя организацию плагиной GitHub вместе с трубопроводом Дженкинс.

Поскольку у продуктов, которые я создаю, есть ряд общих зависимостей, я использую пакеты nuget для управления версиями и обновлениями зависимостей.

Однако у меня возникли проблемы с получением необходимых артефактов/информации для проектов, выполняющих оркестровку.

Стратегия

На SCM изменять добывающие разделяемые библиотеки должны создать пакет NuGet и организовать любой вниз по течению сборки, которые нужны новые ссылки:

  1. Я жестко прописывать вниз по течению оркестровки в каждом проекте вверх по течению , Итак, если A построен, B и C с зависимостями от A будут построены с последним артефактом из A. После этого D с зависимостями от B и C и E с зависимостями от A и C будут построены с последними артефактами от A, B, C по мере необходимости. И так далее. Все они будут запускаться из файла Jenkins A поэтапно, поскольку зависимости создаются с использованием синтаксиса «Составить задание: имя-задания». Я не мог найти решение, с помощью которого я мог бы просто передать оркестровку вниз по течению на каждом шаге, поскольку зависимости расходятся и сходятся вниз по течению, и я не хочу запускать несколько сборок одного и того же проекта вниз по течению с разными ссылками на проекты с восходящим потоком.
  2. Я могу передать информацию об артефакте для родительского проекта вплоть до любых последующих задач, но проблема, с которой я сталкиваюсь, заключается в том, что родительский проект не имеет информации об управлении версиями для артефактов ниже по течению (необходимо для организации заданий далее по течению). Stash/Unstash, похоже, не имеет перекрестных функций, и архив/unarchive устарел.

TLDR: мне нужен метод либо передавая строку или текстовый файл выше на работу в середине выполнение (от нескольких последующих заданий) или мне нужен метод для нескольких рабочих мест dowstream с общими нижестоящими зависимостями координировать и совместно передавать информацию в нисходящую задачу (вызывая ее только один раз).

Спасибо!

ответ

0

Я закончил с использованием встроенного «архивного» шага (see syntax in pipeline syntax) в сочетании с copyArtifact plugin (должен использовать шаг стиля Java с именем класса).

Я предпочел бы иметь возможность объединить рабочий процесс, а не настраивать нисходящие сборки в каждой сборке с чем-либо, чтобы строить вниз по течению, но пока не смог найти никаких решений для этой цели.

0

Вы можете использовать buildVariables результата сборки.

Основная работа - конфигурация: трубопровод работа

node { 
    x = build job: 'test1', quietPeriod: 2 
    echo "$x.buildVariables.value1fromx" 
} 

test1 - конфигурация: трубопровод Работа

node { 
    env.value1fromx = "bull" 
    env.value2fromx = "bear" 
} 
+0

Благодаря, это все еще гармоническое тогда, хотя и достигается штраф, используя артефакт плагин. Я думаю, что некоторые из последних плагинов конвейера имеют возможность обрабатывать тот рабочий процесс, в котором я нуждаюсь, но у меня еще не было времени для их реализации. – tphuoc

1

Эта статья может быть полезна для вас - необходимо https://www.cloudbees.com/blog/using-workflow-deliver-multi-componentapp-pipeline

иногда Артефакт способом. вверх по течению работа:

void runStaging(String VERSION) { 
    stagingJob = build job: 'staging-start', parameters: [ 
     string(name: 'VERSION', value: VERSION), 
    ] 
    step ([$class: 'CopyArtifact', 
     projectName: 'staging-start', 
     filter: 'IP', 
     selector: [$class: 'SpecificBuildSelector', 
      buildNumber: stagingJob.id 
     ] 
    ]); 
    IP = sh(returnStdout: true, script: "cat IP").trim() 
    ... 
} 

вниз по течению вакансии

sh 'echo 10.10.0.101 > IP' 
archiveArtifacts 'IP' 
Смежные вопросы