Архив метки: Jenkins

Jenkins: проверка публичных репозиториев Github-организации

16 апреля 2019
 

 Продолжаем внедрение проверки списка публичных репозиториев организации. Напомню: идея состоит в том, что бы если кто-то из девелоперов случайно расшарит приватный репозиторий, или создаст новый репозиторий не приватным, а публичным — получить об этом уведомление в Slack. Написание самой утилиты на Go есть в посте Go: проверка списка публичных репозиториев в Github и уведомления в… Читать далее »

Jenkins: your Jenkins data directory is almost full и автоматическая очистка диска

27 марта 2019
 

 Есть Jenkins, на котором имеется пачка билдов проекта. Спустя какое-то время — появилось сообщение вида: Jenkins: your Jenkins data directory /var/lib/jenkins (aka JENKINS_HOME) is almost full Проверяем диск с помощью ncdu, и находим несколько джоб, которые отжирают много места, например: Кучу места занимают логи: И билдов много, и в каждой хранится такой лог. Самый простой… Читать далее »

Jenkins: jenkins.model.RunIdMigrator doMigrate WARNING: found unexpected dir lastSuccessfulBuil

15 марта 2019
 

 Имеется Jenkins, запущен в Docker-контейнере. Проблема После рестарта через systemctl — «Шеф, усё пропало!» Сам сервис выглядит так: И Compose файл: Первым, что заметил — перестала работать авторизация, постоянно писало Login failed. Далее в логах контейнера — сообщения вида: Mar 15, 2019 4:31:03 PM org.jenkinsci.plugins.ghprb.GhprbRepository createHook SEVERE: Could not create web hook for repository project-dev/project-iOS.… Читать далее »

Jenkins: HTTP full-duplex channel timeout

15 марта 2019
 

 При подключении к Jenkins с помощью Jenkins CLI — оно завершается с ошибкой. Т.е. в консоли ничего не выводится, но если после подключения выполнить echo $?, что бы вывести код последней команды — то там был, кажется, 255 ответ. Происходило пару дней тому, не записал в черновик. Подключение выглядит так: А в логах Jenkins-а —… Читать далее »

Jenkins: копирование проекта на другой сервер

13 марта 2019
 

 Имеется старый Jenkins с пачкой iOS джоб, которые надо перенести на новый сервер. Документация предлагает: Move a job from one installation of Jenkins to another by simply copying the corresponding job directory. Т.е. вариант первый, самый простой — просто скопировать всю папку jobs, или вложенных задач. Недостаток (или преимущество, в зависимости от задачи) такого подхода… Читать далее »

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… Читать далее »

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 в… Читать далее »