У меня есть декларативные конвейеры Jenkins для нескольких различных репозиториев, которые запускают обновление базы данных sh, и юнит-тесты, которые зависят от базы данных. Эти задания 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):
Чего мне не хватает?