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

8.03.2019
Наталия Макуха
12 минут
Разработка,
276

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 приложения

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

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

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

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

1 Star2 Stars3 Stars4 Stars5 Stars (1 votes, average: 5.00 out of 5)
Loading...

Будьте в курсе последних обновлений

Присоединиться в

Наталия Макуха

Account manager, Certified project-manager

Работает в  компании с декабря 2016 года. Имеет большой стаж работы (более 10 лет) в маркетинге, 2 года - в интернет маркетинге. Была первым “аккаунтом” агентства, не считая СЕО, начавшим работать с англоязычными заказчиками. За 3 первых месяца работы на Upwork, совместно с дизайнерами агентства наработала TOP-rate Design profile. Совместно с РРС-специалистами агентства поддерживает 100% rate profile по качеству обслуживания клиентов.

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

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

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

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

Подписаться

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

В версии 3.0.0

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

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

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

In version 3.0.0

  • new services: Ubersuggest (NeilPatel), Spyfu and others;
  • autosave of a negative keywords list in the workspace;
  • authorization for storing data in the account;
  • generic negative keyword lists;
  • the ability to store custom lists of negative keywords in the extension for further use in your account;
  • English and Russian interface.

Key combinations

  • LeftMouseClick to add a word, press again - to delete
  • LeftALT + LeftMouseClick - to collect phrases
  • LeftALT + S - for words searching

В версии 2.0

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

In version 2.0:

  • 2 modes of keywords search result:
  • quick search result - is similar to one of Google Planner , but the results found include every word of the phrase entered in the search;
  • full search result - extended search result that includes search on additional relevant phrases, but the results found also include every word of the phrase entered in the search.
  • Updated Exces Keyword Upload File:
  • uploading of locations in a convenient format for uploading to Editor;
  • updated template for creating ads.
  • Full list of locations.
  • Grouping of reports on the projects.
  • Fixed an error with a delay of 30 seconds.
  • New filters for getting relevant search results.
  • Copying of negative keywords.

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

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

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

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

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

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