Как установить свойства заданий для заданий в рамках проекта многоотраслевого конвейера Jenkins?

Кто-нибудь знает правильный метод для установки свойств задания, в частности триггеров сборки, из Jenkinsfile? (Декларативный конвейерный скрипт, в многоотраслевом конвейерном задании).

Для ясности мне нужно установить конкретные триггеры сборки для базовых заданий в многоотраслевом проекте. Триггеры для всеобъемлющего многоотраслевого проекта, который я могу настроить в графическом интерфейсе.

Испробовал методы, перечисленные здесь: многоотраслевой конвейер Jenkins и спецификация вышестоящих проектов

Дженкинс: запуск многоотраслевого конвейера при восходящем изменении

Как использовать шаг свойств Jenkins Pipeline?

Я получаю сообщение об ошибке, утверждающее, что начиная с версии 0.8 мне следует использовать шаг опций: https://jenkins.io/doc/book/pipeline/syntax/

Но я не вижу никаких шагов, перечисленных там, которые позволяют устанавливать триггеры сборки в директиве параметров.

В каждой из разветвленных папок на сервере есть файл config.xml, но я думаю, что он будет перезаписан при повторном запуске задания, так как они находятся под многоотраслевым заданием.

Существует также возможность передавать разные свойства в разные ветви (делать исключения для веток), но я вижу только один вариант - подавить коммиты SCM.


Моя общая цель в этом состоит в том, чтобы попытаться создать единый файл Jenkinsfile, который динамически позволяет запускать все базовые задания в многоотраслевом проекте из-за зависимых сборок.

Шаг 1: Поработайте, как установить свойства вообще:)

Шаг 2: Заполните каждую сборку динамически свойствами восходящей зависимости, что означает, что они запускаются после завершения определенных сборок.

Вопрос касается только шага 1, шаг 2 как раз к чему я пытаюсь добраться.

1 ответ

Решение

Шаг 1: Есть много свойств, которые вы можете определить. Те, которые вы конкретно ищете, перечислены ниже:

options{timestamps()}  --> Adds timestamp to console output
triggers{pollSCM('H/15 * * * *')} --> Polling SCM 
triggers{cron('H/15 * * * *')} --> Trigger build every 15 minutes. Similarly you can set the build trigger to any specific time to build it periodically.

Более того, вы можете найти все свойства, которые можно определить, используя параметры свойств в "Синтаксисе конвейера", который доступен в каждом задании. Пожалуйста, перейдите к синтаксису PIpeline (в любом из заданий) -> выберите свойства: установите свойства задания.

Примерный декларативный конвейер может быть следующим:

#!groovy
pipeline{
agent any
options{timestamps()}
triggers{pollSCM('H/15 * * * *')}
parameters{
 ..........
}
environment{
............
}
stages{
stage{
steps{
..............
}
}
}
post{
always{
build job: '/foldername/job1', parameters: [string(name: 'parameter1', value: "${params.parameter1}")] , propagate: false
}
}
}

Шаг 2: Вы можете запустить другой проект из файла Jenkins, используя команду "build". Обратитесь к разделу "Пост" выше, чтобы запустить то же самое с параметрами

Пожалуйста, дайте мне знать, если вам потребуется дополнительная информация.

Другие вопросы по тегам