Архив рубрики: Version Control System

A component of software configuration management, version control, also known as revision control or source control, is the management of changes to documents, computer programs, large web sites, and other collections of information.

SonarQube: ошибка «SCM provider autodetection failed»

19 июня 2019
 

 Имеется свежая установка SonarQube, см пост SonarQube: запуск в Docker и вызов из Jenkins Pipeline. Проблема Но в дашборде проекта постоянно висит сообщение вида: SCM provider autodetection failed. Please use «sonar.scm.provider» to define SCM of your project, or disable the SCM Sensor in the project settings. И оно же выводится в логах билда в Jenkins.… Читать далее »

Jenkins: запуск PHPUnit из Codeception по Pull Reguest в Github и Allure-репорты

6 июня 2019
 

 Задача — запускать PHPUnit для тестов кода бекенда. Сам PHPUnit будет запускаться из Codeception. Задача в Jenkins должна триггериться из Github, при создании Pull Request — используем Github Pull-Request Builder плагин. Для просмотра отчётов о тестах — используем Allure. Jenkins запущен в Docker-контейнере, и все процессы будет запускать в контейнерах. Проверка тестов Что бы получить… Читать далее »

Linux: GPG-ключи, менеджер паролей pass и импорт из KeePass

25 апреля 2019
 

 pass — менеджер паролей для Linux/UNIX, наверно один из старейших. Хранит данные в древовидной структуре каталогов и файлов, а сами файлы с секретами шифрует с помощью GPG-ключа. В Arch Linux есть из коробки, в Debian можно установить с помощь apt из дефолтных репозиториев: В macOS — с помощью Homebrew: Хотя я сомневаюсь, что Mac-пользователи будут… Читать далее »

Authy: настройка Multi-Factor Authentication для Github и AWS

17 апреля 2019
 

  Уверен, что необходмость использования MFA — Multi-Factor Authentication сегодня очевидна для всех. Для 2FA (2-Factor Authentication) наиболее используемым является TOTP — Time-based One-time Password, когда наряду с паролем для авторизации требуется ввести временный код, генерируемый устройством или утилитой. Самым известным является Google Authenticator, но кроме него существует множество других реализаций. Искал на днях решение… Читать далее »

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

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

25 сентября 2018
 

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

CircleCI: обзор Continuous Integration сервиса

31 мая 2018
 

 CircleCI — система для сборки и деплоя, аналогичная Travis CI (Github), и работающая по тем же принципам — к CircleCI-аккаунту подключаются репозитории (в отличи от Travis — к CircleCI можно добавить любой репозиторий, в т.ч. Bitbucket), билды выполняются в контейнерах или вирутальных машинах, уведомления о результатах билда можно получить на почту или через интеграцию со Slack/HipChat etc, а… Читать далее »

Git: пример merge develop в master

21 мая 2018
 

 Пример того, как смерджить бранч из девелоп-ветки в мастер, с сохранением всех коммитов и истории. Переключаемся на мастер, потягиваем последние изменения: $ git checkout master $ git pull Already up to date. Переключаемся на бранч, который будем мерджить в master, в данном примере это LTHS-380_Update_build_deploy_to_compose: M после чекаута указывает на то, что файл был modified: M… Читать далее »

Jenkins: получить пароль из Credentials Binding Plugin

25 апреля 2018
 

 Задача — добавить и запушить тег после билда, используя логин:пароль репозитория, которые добавлены в Credentials Binding Plugin. Само решение достаточно костыльное, но рабочее. Главная проблема в том, что Jenkins маскирует пароль ****. Т.е. при вызове: … withCredentials([usernamePassword(credentialsId: ‘git’, usernameVariable: ‘USERNAME’, passwordVariable: ‘PASSWORD’)]) { sh «echo pass $PASSWORD» sh «echo user $USERNAME» } … В результате получим… Читать далее »