Я правильно понимаю, что это должно быть в пайпе описано?
Что тогда оставить в настройках джобы? any?
Всем привет!
Подскажите, если у меня изначально было настроено, что ветка при старте джобы */${gitlabSourceBranch}
, как лучше доделать, чтобы не только по тригеру из гитлаба сборка стартовала, но и можно было выбрать ветку и с ней собраться?
ставите selenoid и пачку образов всех браузеров из его комплекта на агенты и у вас красивый UI и пул любых браузеров то есть пункт 2 + из коробки запись логов и видео имеется коллегам из тестирования пригодятся
https://aerokube.com/selenoid/latest/
G, тебя заблокировали (CAS)
Сообщение содержит призыв скачать чек-лист, что может указывать на рекламный или мошеннический контент.
это можно сделать по-разному
в вашем случае - поменьше декларатива
Читать полностью…
stages {
stage('Sequence run') {
when {
expression {
return true
}
}
steps {
script{
Map buildMap = [:]
buildMap[1] = {
node('my-label1') {
stage("Build 1") {
echo "Build 1"
echo "Current node: ${env.NODE_NAME}"
}
}
}
buildMap[2] = {
node('my-label2') {
stage("Build 2") {
echo "Build 2"
echo "Current node: ${env.NODE_NAME}"
}
}
}
buildMap.each { key, value ->
value()
}
}
}
}
}
если второй вариант то будет использоваться один и тот же агент, а это же не то, что надо
если динамически еще и агенты, то можно завернуть в node { label 'labelName' }
да так будет работать, еще можно этот же файл на лету готовить в самом пайпе. только надо учесть что там енв RUNNER_DBUSER для параметра --db-user , а в json могло быть --db-user прямо прописано
Читать полностью…Есть Multibranch Pipeline с репо Bitbucket. В этом pipeline вебхуком триггерится запуск CI для pull request'ов. Хочу сделать так, чтобы изменения в PR от конкретного пользователя не запускали джобу (вообще, чтобы даже не стартовала).
Нашёл плагин "Ignore Committer Strategy", добавил в конфиг pipeline'а и прописал email пользователя, но билды всё равно стартуют. Но в эвентах этого Multibranch Pipeline появляется ошибка у каждого эвента теперь (ERROR: Exception:...):
[Fri Nov 29 21:42:11 UTC 2024] com.cloudbees.jenkins.plugins.bitbucket.hooks.PushHookProcessor$1 UPDATED event from 104.192.140.243 ⇒ https://myjenkins.com:8080/bitbucket-scmsource-hook/notify/ with timestamp Fri Nov 29 21:41:37 UTC 2024 processed in 21 sec
Initialized PR: https://bitbucket.org/myworkspace/myrepo/pull-requests/1
Checking PR-1 from myworkspace/myrepo and branch test-5
‘Jenkinsfile’ found
Met criteria
Changes detected: PR-1 (27e1b5cfa306+6e6181e8793c → ef291855adfd+6e6181e8793c)
ERROR: Exception: org.eclipse.jgit.errors.InvalidObjectIdException: Invalid id: ef291855adfd
Scheduled build for branch: PR-1
Так вы поглядывайте периодически в манэдж дженкис->ноудс, там все видно раз мониторинга нет
Читать полностью…это где значение такое?
если триггер от гитлаба - то гитлаб плагина переменные уже не null до входа в pipeline
и у тебя будет для параметризированных запусков другой параметр
вот if / else настрой чтобы приоритет имел gitlabSourceBranch на params.BRACH или что там
ввести параметры
и логику
если gitlabSourceBranch не null то это триггер с гитлаба
и так далее
надеюсь, понятно
Понял. Спасибо.
Мне как то хотелось отдать на откуп QA все эти зависимости браузеров и версий. Что бы они могли сами обновлять. Склонялся к 3 )
Но в случае с докером мы не зависим от ОС агента. Что тоже плюс.
Господа поделитесь опытом как лучше реализовать.
Есть селениум ui автотесты(java).
Нужно тесты запускать в разных браузерах(яндекс/хром/фф/едж)
Агенты jenkins на ubuntu
Собственно как лучше сделать
1. Поставить на агенты в ос все драйвера и бразуеры
2. Собрать докер имедж со всеми требуемыми браузерами
3. Добавить бинарники бразуеров и драйверов в проект
4. Какой то иной способ
agent {
docker {
docker:27.3-dind'
args '--runtime=sysbox-runc'
}
}
docker exec -it
то все ок. А как в jenkins запустить его и потом туда проволится как бы выполняя команду docker exec
? Просто запуск его выдает ошибку что серверная часть не запущена(перетирается строка запуска).
Читать полностью…
получается примерно следующее:
stage("stage 1") {
agent { label <label> }
steps{
script{
myStages.each { key, value ->
value()
}
}
}
}
myStages = [agent1: stage, agent2: stage]
script{
//some logic
}
Спасибо! Эту конструкцию надо вызывать в отдельной стадии без указания агента или можно внутри другой, где агент указан?
Читать полностью…У меня есть хэш мап, где ключ - это лейбл агента, на котором будет запускаться стадия, а значение - код самой этой стадии (cps closure). Подскажите, плиз, как сделать так, чтобы эти стадии на этих агентах выполнились последовательно (сначала на агенте 0, потом на агенте 1...)
Читать полностью…добрый день,а могли бы посдказать пожалуйста,Credentials в Jenkins работает только на пайплайн?
вопрос к тому,как убрать хрупкость из env.json?
если Credentials только для пайпа, то тогда просто пути к серверу, лог\пас мы указываем в самом пайпе (убирая это из енв) и добавляем это в кред(условно vrunner vanessa --ibconnection *** --db-user --db-pwd) или есть еще каие то варианты?
Всем доброго времени!
Пытаюсь вот такую команду провернуть
sh "ssh -i /var/jenkins_home/.ssh/stand83 root@192.168.120.83 'reboot --reboot'"
/var/jenkins_home/workspace/mercator_hil@tmp/durable-9fd18945/script.sh.copy: 1: reboot: not found