Архив рубрики: Jenkins

Jenkins is an open source automation server written in Java. Jenkins helps to automate the non-human part of the software development process, with continuous integration and facilitating technical aspects of continuous delivery. It is a server-based system that runs in servlet containers such as Apache Tomcat.

Jenkins: JNLP-slave из Docker-образа

21 января 2019
 

 Имеется у нас зоопарк билд-агентов (macOS, Ubuntu), работающих в офисе. Сам Jenkins при этом запущен в AWS, на ЕС2, и обращается к агентам через проброс SSH-портов на офисном роутере. Задача — перенастроить схему, что бы агенты сами обращались к Jenkins, и, таким образом, отказаться от пробоса портов. Сесурити и вот это вот всё. Простой пример… Читать далее »

Jenkins: Remote call on JNLP4-connect connection failed

15 января 2019
 

 Имеется Jenkins, для которого подключили новый слейв. Слейв запущен на Mac Mini, и используется для iOS билдов. Но во время запуска — возникает ошибка: [EnvInject] — Injecting environment variables from a build step. [EnvInject] — Injecting as environment variables the properties file path ‘propsfile’ [EnvInject] — Variables injected successfully. FATAL: Remote call on JNLP4-connect connection… Читать далее »

Android Studio: emulator — qt_setup.cpp:28:Qt library not found

12 декабря 2018
 

 При запуске emulator (см. Appium: Android Virtual Device, Original error: Condition unmet after 60159 ms и костыль) — возникает ошибка qt_setup.cpp:28:Qt library not found: [139824804910912]:ERROR:android/android-emu/android/qt/qt_setup.cpp:28:Qt library not found at ../emulator/lib64/qt/lib Could not launch ‘/home/projectname/projectname/../emulator/qemu/linux-x86_64/qemu-system-i386’: No such file or directory Девайс запускается из Jenkins-джобы: node(‘android’) { stage(‘Run UI tests’) { ws(‘/home/projectname/projectname’) { sh ‘/usr/local/bin/appium -p 4723 —session-override… Читать далее »

Appium: Android Virtual Device, Original error: Condition unmet after 60159 ms и костыль

6 декабря 2018
 

 Проблема: UI-тесты, запускаемые с помощью Appium, падают. Задача: найти причину, и пофиксить. Что бы воспроизвести проблему —  установили Android Studio на рабочую машинку и создали устройство. Теперь — можно настроить «тестовый тест», а потом попробовать запустить наши реальные тесты. Забегая наперёд — проблема была найдена, но решения не нашёл, потому пришлось костылить в Jenkins-джобе. Сама проблема на… Читать далее »

Jenkins: запуск Prinder — Github Pull Request reminder

20 ноября 2018
 

 Задача — каждое утро отправлять уведомления об имеющихся открытых Pull Request-ах в Github-репозиторих в Slack. Используем Prinder и джобу в Jenkins, которая будет запускать по расписанию скрипт в Docker. Пост не столько о самом Prinder, сколько пример создания задачи в Jenkins с использованием Scripted Pipeline и Docker. Github API токен Тут останавливаться подробно не буду, описание процесса создания… Читать далее »

Jenkins: Github Pull-Request Builder плагин

13 ноября 2018
 

 Плагин Pull-Request Builder предназначен для запуска билдов, когда в Github репозитории создаётся новый pool request, что бы выполнить сборку до того, как PR будет добавлен в основную ветку. Результат билда будет добавлен комментарием к этому реквесту, после чего можно принимать решение — принимать реквест, или нет. Установка Jenkins и плагина Устанавливаем Docker: Запускаем Jenkins в… Читать далее »

Jenkins: задать часовой пояс

18 октября 2018
 

 По умолчанию Jenkins использует время по UTC, которое -3 часа от Киева, что, конечно, создаёт путаницу в создании cron-задач и при просмотре логов. Время хоста задано в EEST — но его Jenkins игнорирует. Проверяем текущие настройки на странице https://ci.jenkins.world/systemInfo: В документации приводится несколько вариантов, но в нашем случае заработало через JAVA_OPTS. Jenkins запускается в Docker-контейнере… Читать далее »

Jenkins: Allure reports plugin в Scripted pipeline

26 сентября 2018
 

 Allure — фреймворк для создания репортов о результатах выполнения тестов. Для Jenkins имеется плагин allure-jenkins-plugin, который сегодня и будем подключать в Scripted Pipeline Jenkins-а. Документация тут>>> и тут>>>. Устанавливаем плагин: Переходим в http://jenkinsurl/configureTools/, настраиваем Allure Commandline: Переходим в http://jenkinsurl/pipeline-syntax/, и генерируем скрипт: В результате весь скрипт наших автотестов выглядит сейчас так: #!/usr/bin/env groovy node { stage(‘Run tests’) { dir (‘ciscripts’)… Читать далее »

Python: скрипт добавления комментария в Jira из Jenkins

25 сентября 2018
 

 В продолжение поста Jenkins: добавление комментария в Jira-тикет после билда — напишем свой костыль, который будет добавлять комментарии в Jira-тикеты. Скрипт будет парсить заголовок коммита, в котором будет указан Jira-тикет, а потом через Jira API добавлять комментарий. Писать будем на Python — полгода не писал на нём, наконец-то появился повод. Парсинг git-коммита Для того, что бы… Читать далее »

Jenkins: добавление комментария в Jira-тикет после билда

21 сентября 2018
 

 Задача — добавлять комментарий в Jira-тикет после выполнения Jenkins-билда в scripted pipeline job. Используем JIRA Pipeline Steps. Докмументация и примеры — тут>>>. Устанавливаем его — Manage Jenkins > Manage Plugins: Настраиваем доступ к Jira — переходим в Manage Jenkins > Configure system, в JIRA Steps добавляем сайт: Добавляем тестовую задачу: node { echo «Run job» jiraAddComment idOrKey: ‘BMEDIOS-198’, comment: ‘Test’,… Читать далее »