У нас есть экземпляр Jenkins, полностью настроенный через Cas C. Как только мы выпустили эту версию, мы заметили некоторые проблемы с поведением github-branch-source
и workflow-multibranch
.
Мы пытаемся сканировать организацию, идентифицируя все репозитории с помощью Jenkinsfile, но не запуская задания сборки, особенно для веток, где изменилась только цель (мастер). Мы достигли определенного уровня успеха со следующей конфигурацией:
- Отключены «Триггеры дочернего сканирования»
- Параметр «Игнорировать перестроение ветвей слияния, когда изменилась только целевая ветвь» с
basic-branch-build-strategies
- Настройка «Пропустить начальную сборку при индексировании первой ветки»
С их помощью мы можем идентифицировать новые репозитории с помощью Jenkinsfile во время OrgScan, но не запускать какую-либо сборку PR без необходимости.
Приведенные выше конфигурации работают нормально, если Jenkins не перезапустится. В случае любого перезапуска триггеры сканирования репозитория, и хотя у нас есть «Игнорировать перестроение ветвей слияния, когда изменилась только целевая ветвь», планируется построить PR, в которых изменился только мастер, как показано ниже,
Checking pull request #5417
‘Jenkinsfile’ found
Met criteria
Changes detected: PR-5417 (7202a80c95188db87f98ccf62157fdd76d41a206+81e38fbefa404bcbad7968ad07cd522acf68be8b (3017360542722f016bb24c584bf55b3fa88f4921) → 7202a80c95188db87f98ccf62157fdd76d41a206+65343d82d5966e02b2889a4b2c9582e8d3e46362 (02e307214a15d7f192236994695578d6b8dacb08))
Scheduled build for branch: PR-5417
Это огромная проблема, особенно с учетом того, что в какой-то момент у нас может быть одновременно открыто более 50 PR для одного репозитория в этой организации, не говоря уже о других репозиториях. Это не только потребляет много ресурсов, но и делает наш Jenkins бесполезным до тех пор, пока этот большой объем не будет обработан.
Есть ли способ гарантировать, что сканирование новых репозиториев не будет запущено перезапуском Jenkins? Или, что еще лучше, есть ли способ принудительно игнорировать перестроение ветвей слияния, когда только целевая ветка изменилась на уровне репозитория?