Автозагрузка приложения при помощи Gitlab: готовые решения Penguin-team для небольших компаний

8.03.2019
12 минут
Разработка,
167

CI/CD — это такая штука, которая часто причиняет боль. А эта статья — это такая штука, которая эту боль поможет снять без регистрации и смс.

По сути, это набор готовых решений, который подойдет для небольших компаний. И если вы обычно не используете некоторые технологии из-за их сложности или громоздкости, этот текст — для вас.

Что такое CI/CD ?

CI/CD  — это концепция непрерывной интеграции и доставки. Она реализуется как конвейер, облегчая слияние только что закомиченного кода в основную кодовую базу.

Это  основа наших тестирований. Она позволяет запускать различные типы тестов на каждом этапе (выполнение интеграционного аспекта) и завершать их запуском с развертыванием закомиченного кода в фактический продукт, который видят конечные пользователи (выполнение доставки).

CI/CD необходима для разработки программного обеспечения по Agile-методологии, которая рекомендует использовать автоматическое тестирование для быстрой наладки рабочего ПО. Автоматическое тестирование дает заинтересованным лицам доступ к вновь созданным функциям и обеспечивает быструю обратную связь.

Сервисы в помощь

Локальные:

  • Gitlab CI,
  • TeamCity,
  • Bamboo,
  • GoCD Jenkins,
  • Circle CI.

Облачные:

  • BitBucket Pipelines,
  • Heroku CI,
  • Travis,
  • Codeship,
  • Buddy CI,
  • AWS CodeBuild.

Мы в работе используем Gitlab. У него есть 2000 минут в месяц для использования процесса непрерывной интеграции кода и возможность создавать гибкую структуру проектов, групп и подгрупп для разграничения доступа команд к разным проектам. Эти два преимущества сыграли решающую роль при выборе для нас.

Что нужно для настройки автоматического деплоя приложения в Gitlab? Всего лишь один файл, в котором будет записана конфигурация (скрипт загрузки) — она именуется pipeline. Pipeline — это целый набор разных команд, которые можно выполнить для вашего проекта в рамках одной итерации. Перед стартом работы ознакомьтесь с Gitlab pipeline на официальном сайте компании.

Далее я приведу 2 реальных примера из собственной практики. Они работают на наших проектах — и позволят загружать приложения различной сложности и структуры на сервер вам.

Gitlab pipeline для Angular приложения

Описание pipeline для приложения на Angular

До начала работы важно добавить публичный ключ в аккаунт. Это можно сделать в разделе SSH Keys:

image4

После добавьте переменные окружения, которые нужны в самом проекте. Для этого зайдите в раздел настроек в самом проекте.

image1

Найдите раздел Environment variables.

image3

И добавьте переменные:

image2

Нам нужны:

SSH_HOST_DO – ip-адрес сервера

SSH_PRIVATE_KEY – приватный ключ сервера

SSH_USERNAME_DO – логин (имя) пользователя

И давайте посмотрим на сам pipeline!

Первая секция — переменные, которые я буду использовать локально в этом сценарии:

Так как в моем приложении используется сразу 3 сервера (тестовый, демо-версия и продкашн), мне нужно выполнять загрузку приложения на всех них. В переменных я указываю имя директории поддомена, где располагается приложение.

Переменная OWN_HOST хранит ip-адрес сервера для подключения по SSH.

Далее скрипт выполняет настройку SSH-клиента и добавляет хост в известные, чтобы он мог с ним работать:

Это сделано специально для повышения защиты. Если же по каким-либо причинам вы не можете работать так или машины не совершают соединение, можно отключить проверку хоста. Для этого впишите вот эту команду вместо двух команд выше:

После этого объявите секции, где будут записаны скрипты самой загрузки приложения:

Разберем детально загрузку тестовой версии:

Параметр stage указывает, какой секции принадлежит наша задача. После объявления слова script мы записываем набор действий (операций), которые будут производиться.

На словах логика загрузки такова:

Приложение нужно сбилдить и скопировать на сервер, предварительно удалив старую версию

А если пошагово, то…

1 — Выполняем билд приложения:

2 — Подключаемся по SSH к хосту и удаляем старое приложение:

3 — Выполняем загрузку новой версии:

4 — Загружаем файл htacces:

5 — ОБЯЗАТЕЛЬНО указываем, в какой ветке работает эта задача:

Задачи в других ветках работают по такому же принципу.

Gitlab pipeline для PHP приложения (непопулярные фреймворки)

Процесс подготовки среды не отличается от описанного выше: нужно тоже добавить ключ в аккаунт и создать переменные окружения в самом проекте. Повторно рассматривать это не будем.

А вот как выглядит сценарий:

Описание Gitlab pipeline для PHP приложения

Вся магия загрузки заключается здесь:

Давайте разберем эту часть более детально и распишем скрипт на команды по порядку.

Важно! Такой подход подразумевает, что вы сами должны загрузить на сервер ваше приложение. А точнее, клонировать его с вашего репозитория, так как скрипт занимается выполнением пула изменений к себе из нужной ветки.

Надеемся, что эти два примера помогут вам настроить автоматический деплой приложения быстро и красиво! Ставьте ♥, делитесь с коллегами — и читайте другие статьи по разработке в нашем блоге.

Получить 7 писем о том,
как улучшить свой AdWords аккаунт
+ PPC статьи

Имя
e-mail
Улучшить AdWords

Улучшить свой AdWords

Получите 7 писем, о том, как можно улучшить свой аккаунт в AdWords

Подписаться

Наш сайт использует файлы cookie, чтобы улучшить работу и предоставить максимальное удобство пользователям.

В версии 3.0.0

  • новые сервисы: Ubersuggest (NeilPatel), Spyfu и другие;
  • автосохранение списка минус-слов в рабочей области;
  • авторизация для хранения данных в аккаунте;
  • списки типовых минус-слов;
  • возможность хранить пользовательские списки минус-слова в расширении для дальнейшего применения в аккаунте;
  • англоязычный и русскоязычный интерфейс.

Основные комбинации

  • LeftMouseClick для добавления слова, повторное нажатие - для удаления
  • LeftALT + LeftMouseClick - для сбора фраз
  • LeftALT + S - для поиска слов

В версии 2.0

  • 2 режима выдачи ключевых слов:
  • быстрая выдача - аналогична выдаче Google Planner, но найденные результаты включают каждое слово из введенной в поиск фразы;
  • полная выдача - расширенная выдача, которая включает поиск по дополнительным релевантным фразам, но найденные результаты также включают каждое слово из введенной в поиск фразы.
  • Обновленный файл выгрузки ключевых слов Excel:
  • выгрузка локаций в удобном формате для загрузки в Editor;
  • обновленный шаблон для создания объявлений.
  • Полный список локаций.
  • Группировка отчетов по проектам.
  • Устранена ошибка с задержкой в 30 секунд.
  • Новые фильтры для получения релевантной выдачи.
  • Копирование минус-слов.

Несколько шагов до работы в Penguin

Заполните форму

Прикрепите резюме:
1Кликов 259, показов 3 515. Чему равно CTR?
2Заходов на сайт 874, конверсий 16. Чему равен коэффициент конверсии?
3Что такое СРА?
4CTR 4,03%, кликов 240. Чему равно число показов объявления?
5Затрат 20 158, конверсий 63. Чему равна стоимость конверсии?

Несколько шагов до работы в Penguin

Заполните форму

Прикрепите резюме: