Архив рубрики: 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: проверка публичных репозиториев 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, и находим несколько джоб, которые отжирают много места, например: [simterm] root@jenkins-production:/data/jenkins# du -h –max-depth 1 jobs/ .. 25G jobs/APITests … [/simterm] Кучу места занимают… Читать далее »

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

15 марта 2019
 

 Имеется Jenkins, запущен в Docker-контейнере. Проблема После рестарта через systemctl – “Шеф, усё пропало!” Сам сервис выглядит так: [simterm] root@jenkins-production:/opt/jenkins# systemctl cat jenkins # /etc/systemd/system/jenkins.service [Unit] Description=Jenkins service Requires=docker.service After=docker.service [Service] Restart=always WorkingDirectory=/opt/jenkins # Compose up ExecStart=/usr/local/bin/docker-compose -f jenkins-compose.yml up # Compose down, remove containers and volumes ExecStop=/usr/local/bin/docker-compose -f jenkins-compose.yml down -v [Install] WantedBy=multi-user.target [/simterm]… Читать далее »

Jenkins: HTTP full-duplex channel timeout

15 марта 2019
 

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

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

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 токен Тут останавливаться подробно не буду, описание процесса создания… Читать далее »