У меня есть декларативные конвейеры Jenkins для нескольких различных репозиториев, запускающих обновление базы данных, и модульные тесты, зависящие от базы данных. Эти задания Jenkins запускаются запросами на вытягивание в GitHub.
Чтобы избежать конфликтов ресурсов, мне нужно предотвратить одновременное выполнение этих заданий - как в рамках каждого проекта, так и между проектами.
Плагин "Throttle Concurrent Builds", кажется, создан для этого.
Я установил плагин и настроил такую категорию:
И я добавил параметр "throttle" в Jenkinsfile в одном из репозиториев, сборки которого должны быть ограничены:
pipeline {
agent any
options {
throttle(['ci_database_build'])
}
stages {
stage('Build') {
parallel {
stage('Build source') {
steps {
// etc etc...
Однако это не мешает одновременному выполнению 2 заданий. В качестве доказательства здесь одновременно выполняются 2 задания (оба содержат указанное выше изменение Jenkisfile):
Что мне не хватает?