ну я думал сделать на все репо один и тот же хук на одну джобу, которая динамически будет перенаправлять на вызов других билд джоб
Читать полностью…есть такая идея
есть системный репо devops-config, который имеет values.yaml каждого репо, нужного для сборки и деплоя
при изменении в любом репозитории в ветке мастер вебхук стучится в дженкинс, вызывающий Jenkinsfile в devops-config, который
собирает values.yaml проекта, проверяет, нет ли там параметра на запрет автоматической сборки после изменений в мастер-ветке
если все норм, тогда скрипт ищет джобу в дженкинсе (все джобы имеют имя, идентичное названию проекта в гитлабе) через Jenkins.instance.getAllItems(Job.class), если находит то запускает
Defines a regular expression of branch names which will be triggered automatically, for example (?!release.*).* or PR-\d+. All branches which names don't match the regular expression could be only scheduled manually or via CLI/REST.Читать полностью…
это тебе надо с гитом разобраться. ИД коммита ты имеешь в переменной окружения, оттуда и можешь плясать, смотреть какие изменения в этом коммите.
У меня конкретно, формируется список изменений относительно бранча main
причина из за чего мы отказались от них это репозитории где количество веток привышает 100
Читать полностью…первое что на ум приходит, это сделать эту проверку в самом пайплайне. Посмотрел список измененных файлов и там уже решаешь, в каком объеме запускать процессы.
У нас для монорепозитория работает.
Коллеги, всем привет.
Как вы регулируете запуск multibranch pipeline для бранчей и ПР.
У меня есть список файлов и каталогов:
test/**
.ci/**
README.md
.gitignore
И задача по сути банальная:
- если изменения только в файлах которые есть в списке выше то не запускаем pipeline или если так нельзя то завершаем с СЮКЕС.
- если изменения не затрагивают игнор файлы то запускаем pipeline
- если изменения затрагивают игнор файлы, но при этом затрагивают и другие файлы то запускаем pipeline.
Я был уверен,что это тривиальная задача, но что-то до меня не доходит как ее решить и чтобы это одинаково хорошо работало как для branch так и для Pull request в multibranch pipeline в моей организации.
Буду сильно благодарен за примеры коды :)
Всем хорошего дня и добра!
а если вообще с нуля,
то да нужен в дженке плагин
А потом сама джобу научится делать с git
тут подсмотреть можно
https://habr.com/ru/articles/654483/
Подскажите, пожалуйста, какие вариант реализовать эту штуку есть?
есть гитлаб (хранилка кода), при коммите нужно дёргать дженкинс джобу
желательно нормальный вариант решения
ну у тебя в гите эта сотня бранчей... ну и в дженкинсе тоже сотня. Ну как бы а чего на них смотреть-то...!?
Ну уменьшить число бранчей в гите надо значит.
Я например в дженкинс вообще не смотрю... он только галочки в гитхабе проставляет (зеленые и красные) и как-бы и все.
Если кто-то подменит дженкинс, то я могу даже об этом не узнать.
для этого надо что бы люди об этом задумывались а не просто создавали мультбранч джобу где сотни бранчей - это был кошмар
Читать полностью…Возможно у вас есть пример?
Я пытаюсь именно так реализовать, но что-то не выходит)
Есть мысль, что дело в дефолтном чекауте и его нужно отключить...и регулировать самостоятельно
мы вообще отказались от multibranch pipeline - это жуткое изобретение человечества
есть кто то же их не использует ?
а еще такой вариант нашел
https://stackoverflow.com/questions/59425623/how-to-copy-a-file-from-jenkins-agent-node-to-a-remote-server-using-jenkinsfile
remote = [:]Читать полностью…
remote.name = "name"
remote.host = "remote_ip"
remote.allowAnyHosts = true
remote.failOnError = true
withCredentials([usernamePassword(credentialsId: 'credentials_name', passwordVariable: 'password', usernameVariable: 'username')]) {
remote.user = username
remote.password = password
}
sshPut remote: remote, from: 'myfile', into: 'folder_on_remote_host'
должен быть, а если нет, включу, пока просто собираю данные
ещё читал про плагин jenkins gitlab plugin
ну я целился в функцию раскидать конфиги, и скрипт уже заготовленый. поэтому так сказал
Читать полностью…