Архив рубрики: CI/CD

Continuous integration in software engineering is the practice of merging all developer working copies to a shared mainline several times a day.

Continuous delivery is a software engineering approach in which teams produce software in short cycles, ensuring that the software can be reliably released at any time and, when releasing the software, doing so manually. It aims at building, testing, and releasing software with greater speed and frequency.

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

20 ноября 2018

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

Loading

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

13 ноября 2018

Плагин Pull-Request Builder предназначен для запуска билдов, когда в Github репозитории создаётся новый pool request, что бы выполнить сборку до того, как PR будет добавлен в основную ветку. Результат билда будет добавлен комментарием к этому реквесту, после чего можно принимать решение — принимать реквест, или нет. Установка Jenkins и плагина Устанавливаем Docker: [simterm] root@ip-172-31-10-151:/home/admin# curl… Читать далее »

Loading

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

18 октября 2018

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

Loading

Jenkins: Allure reports plugin в Scripted pipeline
0 (0)

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

Loading

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

25 сентября 2018

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

Loading

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

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

Loading

Jenkins: wrapper script does not seem to be touching the log file
0 (0)

23 августа 2018

При запуске задачи возникает ошибка: wrapper script does not seem to be touching the log file in /var/lib/jenkins/workspace/ETLFB@tmp/durable-893314e7 (JENKINS-48300: if on a laggy filesystem, consider -Dorg.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL=300) Есть созданная бага тут>>>. Собственно решеине указано в тексте самой ошибки — добавляем HEARTBEAT_CHECK_INTERVAL=300. Обновляем pipeline-скрипт, добавляем System.setProperty(«org.jenkinsci.plugins.durabletask.BourneShellScript.HEARTBEAT_CHECK_INTERVAL», «3800»);: #!/usr/bin/env groovy node { // checkout https://github.com/project/deployment to the «ci»… Читать далее »

Loading

Jenkins: Scripted Pipeline — подтверждение выполнения для Production окружения
0 (0)

16 августа 2018

Есть несколько задач, которые выполняются в Scripted Pipeline. В задачах выполняется провижен CloudFormation и запуск Ansible плейбука на Dev и Production. Что бы исключить случайный запуск Production задачи — хочется добавить шаг подтверждения действия. Используем pipeline-input-step и класс BooleanParameterDefinition. Добавляем функцию verify(): def verify() { stage(‘Verify’) { def userInput = input( id: ‘userInput’, message: ‘This… Читать далее »

Loading

Jenkins: уведомление в Slack из Jenkins Scripted Pipeline
0 (0)

25 июля 2018

Имеется Jenkins-job, из которой необходимо отправлять уведомления по завершению билда. В Jenkins для этого имеется Slack Notification, который и применим. Хороший пост по теме — тут>>>. Устанавливаем его: Настраиваем Slack — переходим на https://setevoy.slack.com/apps/new/A0F7VRFKN-jenkins-ci (меняем setevoy на ваш URL, само собой), и добавляем Jenkins: И следуем инструкции: Настройка Slack Notification Переходим в Jenkins > Global configuration, внизу настраиваем Slack… Читать далее »

Loading

Jenkins: It appears that your reverse proxy set up is broken / Есть подозрение, что настройки вашего обратного прокси некорректны.
0 (0)

6 июля 2018

Перед Jenkins запущен NGINX + SSL. После запуска — Jenkins сообщает, что «Есть подозрение, что настройки вашего обратного прокси некорректны.«: Описание ошибки есть на Jenkins Wiki. Настройки виртуалхоста сейчас выглядят так: upstream jenkins { server 127.0.0.1:8080; } … server { listen 443 ssl; server_name ci.domain.world; … location / { proxy_redirect off; proxy_set_header Host $host; proxy_set_header X-Real-IP… Читать далее »

Loading