Тестовое окружение для Pipeline

Подготовка проекта к автотестам в CI/CD Pipeline. Добавление окружения для тестирования рабочих Docker-образов. Создание файла подкачки в Ansible.

  • 00:00:26 - Постановка задачи
  • 00:02:04 - Доработка передачи переменных окружения
  • 00:07:53 - Тестовое окружение для docker-compose
  • 00:11:28 - Команды сборки в Makefile
  • 00:13:34 - Команды инициализации и остановки
  • 00:15:48 - Запуск Smoke и E2E тестов
  • 00:17:27 - Загрузка фикстур
  • 00:21:25 - Сквозная команда запуска
  • 00:22:51 - Файл подкачки
  • 00:27:11 - Создание Swap-файла через Ansible
  • 00:29:02 - Динамический расчёт размера Swap
Скрытый контент
Комментарии (12)
Arunas

самый высокий уровень, спасибо.

Ответить
Руслан

Такими темпами проект закончен будет к 2040 году

Ответить
Дмитрий Елисеев

И хорошо. Будут насыщенные высококачественные видео, а не впопыхах записанные недомонтированные поделки с кучей ошибок.

Хотел сначала записать простой пример по примитивной установке Jenkins. Но в итоге за неделю много чего дополнил и записал вчера 6 часов видео. Надеюсь, что после нескольких пересмотров удастся сократить до концентрированных полутора часов.

Ответить
fedot

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

Ответить
Дмитрий Елисеев

Там в основном паузы, повторы и исправления. Иногда предложения по несколько раз повторяю, чтобы потом лучший вариант оставить. О разных нюансах Юлия у себя в @elisjuli_live пишет.

Ответить
fedot

Теперь понятно.

Ответить
Sergei

Здорово же правда?

Ответить
elmut

Дмитрий Елисеев У меня сервер на centos 7 какую сейчас луче всего систему учить для сервера. я Windows. ставил VirtualBox Devian 10 выливает Ubunta есть серверная?

Ответить
Дмитрий Елисеев

Это просто разные семейства:

  • Debian и основанная на нём Ubuntu
  • CentOS на основе Red Hat

Популярнее Ubuntu и Debian. Реже используют CentOS и остальные.

Ответить
Евгений

Как поступить в случае, если фронтенд и бекенд находятся в разных репозиториях. Как организовать независимый набор инструментом (команды make) для каждого отдельного проекта и для всего приложения полностью? Так же заметил, что в Dockerfile много копипасты для разных окружений, что чревато ошибками. Есть ли какие-нибудь инструменты сборки Dockerfile с элементами наследования на подобии инструментов сборки конфигурации?

Ответить
Дмитрий Елисеев

Как организовать набор инструментов для каждого отдельного проекта и для всего приложения полностью?

В простейшем случае во всех docker-compose.yml можно подключить общую внешнюю сеть через external network. Создание этой сети и команды запуска всех подпроектов можно поместить в ещё один координационный репозиторий наверху. В нём сделать Jenkinsfile, который будет запускать все подпроекты и выполнять интеграционные тесты. И в Jenkins настроить его так, чтобы этот pipeline запускался после завершения pipeline каждого подпроекта. Но всё это будет сложно.

В более продвинутом случае при вынесении фронтенда (или при разбивке на микросервисы) прямо в репозитории фронтенда с E2E-тестами делают эмулятор API вручную или через Wiremock. Тогда фронтенд при запуске будет самодостаточен как локально, так и в Jenkins. Фронтенд и API можно будет разрабатывать и тестировать отдельно. Локально запускать всё приложение полностью не будет необходимости. Но при этом нужно будет следить за корректностью API-контрактов, чтобы быть уверенным в работоспособности всей системы без общих тестов.

Ответить
Дмитрий Елисеев

Есть ли какие-нибудь инструменты сборки Dockerfile с элементами наследования?

Да, можно по отдельному Dockerfile собрать и запушить свой базовый php-fpm и уже наследоваться от него через FROM registry/php-fpm:7.4

Ответить
Зарегистрируйтесь или войдите чтобы оставить комментарий