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

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

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 из дефолтных репозиториев: [simterm] $ sudo apt install pass [/simterm] В macOS – с помощью… Читать далее »

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: [simterm] root@ip-172-31-10-151:/home/admin# curl… Читать далее »

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: [simterm] $ git checkout LTHS-380_Update_build_deploy_to_compose M scripts/api_start.sh M terraform/terraform-cn.sh Switched to… Читать далее »

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

Git: работа с тегами (метками)

28 марта 2018
 

 Документация тут>>>, ниже примеры работы с тегами. Кратко о метках в примерах. Создаём каталог для тестового репозитория: [simterm] $ mkdir git-tag-test-repo $ cd git-tag-test-repo/ [/simterm] Инициализируем пустой репозиторий: [simterm] $ git init . Initialized empty Git repository in /home/setevoy/Temp/git-tag-test-repo/.git/ [/simterm] Создаём тестовый файл: [simterm] $ touch testfile $ git add testfile $ git commit -m… Читать далее »

Git: merge – зачем нужна опция –no-ff (no-fast-forward)

26 марта 2018
 

 Во время выполнения git merge – можно указать опцию –no-ff, что бы гит сохранил историю коммитов в feature-бранче (или девелоп-бранче, кому как удобнее называть). Рассмотрим пример. Создаём каталог: [simterm] $ mkdir testrepo [/simterm] Создаём в нём репозиторий: [simterm] $ cd testrepo/ && git init . Initialized empty Git repository in /home/setevoy/Temp/testrepo/.git/ [/simterm] Создаём и добавляем… Читать далее »