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

Git is a distributed version-control system for tracking changes in source code during software development.

Github: SAML Okta — настройка SSO в Github Enterprise Cloud — Organization

21 октября 2019
 

 В продолжение темы SSO, Okta и SAML. Для Jenkins всё сделано (см. Jenkins: SAML, Okta, группы пользователей и Role-Based Security) — теперь пришёл черёд Github. Идея та же: в Okta держим список пользователей, при логине в Github (наш Service provider, SP) — он должен запросить авторизацию у нашего Identity Provider, IDP — Okta, используя SAML.… Читать далее »

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-пользователи будут… Читать далее »

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» } … В результате получим… Читать далее »