Category Archives: Continuous Integration

Continuous Integration tools — Atlassian Bamboo, Teamcity, Jenkins etc.

AWS: AWS CLI и bash – blue/green деплой AutoScale группы за ELB

01/06/2017
 

 Имеется достаточно интересная ифраструктура одного проекта, в котором деплой API-приложения выполняется скриптом, описанным ниже. Его задача – запустить EC2 инстансы, объединённые в blue AutoScale группу, подключить её к Elastic Load Balancer-у (ELB), отключить от ELB green-группу, перезапустить в ней инстансы, подключить её обратно к ELB и отключить blue-группу.

Jenkins: запуск на AWS EC2 + Pipeline Plugin + Docker Pipeline Plugin

10/12/2016
 

 Задача – поднять Jenkins 2 на AWS EC2, и создать два билда: с помощью плагина workflow-aggregator (Jenkins Pipeline Plugin) – вывести “Hello, World” через Pipeline Script; с помощью плагина docker-workflow (CloudBees Docker Pipeline Plugin) запустить Docker контейнер, в котором Maven-ом будет выполенна сборка Java-проекта. Документация по Jenkins Pipeline Plugin – тут>>>. Документация по CloudBees Docker Pipeline Plugin – тут>>>. Создание EC2 Установка NGINX, Docker Установка… Read More »

Travis: запуск и сборка Docker-образов

07/18/2016
 

 Travis CI позволяет собирать, запускать и отправлять образы в репозиторий Docker. Пример .travis.yml файла для запуска Docker: sudo: required services: – docker branches: only: – develop – master before_install: – docker pull microsoft/azure-cli:0.10.0 – docker run microsoft/azure-cli:0.10.0 bash -c “azure –version;” script: – if [ $TRAVIS_BRANCH = “develop” ]; then echo “DEV deploy”; fi -… Read More »

MSDeploy: обновить параметры в web.config во время деплоя

07/08/2016
 

 Во время деплоя требуется изменить некоторые параметры для приложения в файле web.config. Сделать это можно с помощью файла параметров и опции MSDeploy –setParamFile. Проверяем наличие MSDeploy: PS C:\> dir ‘C:\Program Files (x86)\IIS\Microsoft Web Deploy V3’ … -a— 3/9/2016 11:05 AM 216440 msdeploy.exe -a— 4/24/2015 9:26 AM 227 msdeploy.exe.config

Travis: Permission denied – Could not read from remote repository

06/23/2016
 

 После добавления нового репозитория в Travis – билд падает с ошибкой: … 3.34s$ git clone –depth=50 –branch=develop git@github.com:account/repository.git account/repository Cloning into ‘account/repository’… Warning: Permanently added the RSA host key for IP address ‘192.***.***.121’ to the list of known hosts. Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the… Read More »

Git: merge файла из бранча в бранч

06/22/2016
 

 Имеется два бранча – master и release. Для Travis – в бранче master были внесены изменения в файл .travis.yml, для “активации” бранча release. Теперь – эти изменения в файле .travis.yml из бранча master необходимо смерджить в бранч release. Сравниваем их: $ git diff master release diff –git a/.travis.yml b/.travis.yml index fd0c58a..5925a12 100644 — a/.travis.yml +++… Read More »

Travis: уведомления в Slack и работа с бранчами – примеры

06/12/2016
 

 branches Пример реализации работы с разными бранчами в Travis. Пример файла: $ cat .travis.yml branches: only: – master script: – ./scripts/dns_update.sh -v – test $TRAVIS_TEST_RESULT == 0 && ./scripts/dns_update.sh -b – test $TRAVIS_TEST_RESULT == 0 && ./scripts/dns_update.sh -i notifications: slack: rooms: – akka:YbsC***6h5u#ok-technology on_failure: always on_success: always

Travis: Maven билд Java приложения и деплой на Azure

05/30/2016
 

 Travis – Continuous Integration сервис от разработчиков Github. Является hosted-решением, т.е. располагается на серверах самого Travis. На данный момент – умеет работать только с гит-репоизториями Github, поддержка других сервисов на 2016 год не планируется.