Тестовое окружение для 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
2020-05-21 16:15

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

Ответить
Руслан
2020-05-28 06:33

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

Ответить
Дмитрий Елисеев
2020-05-29 05:57

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

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

Ответить
fedot
2020-05-29 07:50

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

Ответить
Дмитрий Елисеев
2020-05-29 13:36

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

Ответить
fedot
2020-05-29 13:41

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

Ответить
Sergei
2020-05-31 17:13

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

Ответить
elmut
2020-05-31 19:47

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

Ответить
Дмитрий Елисеев
2020-06-07 05:33

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

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

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

Ответить
Евгений
2020-09-11 04:30

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

Ответить
Дмитрий Елисеев
2020-09-11 07:08

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

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

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

Ответить
Дмитрий Елисеев
2020-09-11 07:27

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

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

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