GitHub Actions и BitBucket Pipelines

Реализация CI/CD pipeline в сервисе GitHub Actions. Использование GitHub Packages для хранения Docker-образов. Кэширование Docker-слоёв простой и мультистадийной сборки через BuildKit. Подводные камни сервисов. Использование BitBucket Pipelines и CircleCI.

  • 00:02:12 Обзор Github Actions
  • 00:07:28 Добавление экшенов
  • 00:09:32 Создание своего Workflow
  • 00:12:21 Команда init
  • 00:15:30 Кэширование вендоров
  • 00:18:50 Кеширование слоёв Docker
  • 00:28:23 Кеширование в Docker Compose
  • 00:34:24 Подключение своего реестра
  • 00:36:02 Логин в реестр
  • 00:36:41 Переход на GitHub Packages
  • 00:41:30 Линтеры и тесты
  • 00:44:26 Сохранение логов в артефакты
  • 00:47:01 Сборка production-образов
  • 00:49:14 Кеширование мультистадийной сборки
  • 00:54:54 Проблема мультистадийного кэширования
  • 00:58:45 Поддержка нескольких веток
  • 01:03:05 Проверки тестового окружения
  • 01:04:07 Публикация production-образов
  • 01:04:48 Деплой по SSH ключу
  • 01:08:30 Подключение сторонних воркеров
  • 01:12:27 Обзор CircleCI
  • 01:17:55 Обзор BitBucket Pipelines
Скрытый контент (код, слайды, ...) для подписчиков. Открыть →
Дмитрий Елисеев
elisdn.ru
Комментарии (29)
Руслан

Здравствуйте, подскажите что делать с ключами для приватных репозиториев в BitBucket Pipelines (в проект добавляются сторонние приватные пакеты). Не копирвоать же в контейнер.

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

Передавать их при сборке через --build-arg

Ответить
Arunas

спасибо.

Ответить
Дмитрий Ориховский

Дмитрий спасибо за годный контент! Если у Вас будет возможность, можете рассказать немного о Kubernetes. Спасибо.

Ответить
elmut

я все жду use cese как правильно организовать взаимодействие между двумя разными модулями. Жду урок "Доменная модель аукциона" , a потом уже будет тема которую я жду :) все php, застряли на Ansible им это достаточно.

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

Про доменную модель будет много частей, а не одно видео.

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

Немного расскажем.

Ответить
Дмитрий Ориховский

Спасибо.

Ответить
Александр

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

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

Конкретно этот код теперь оформлен в репозитории в виде отдельной ветки github-actions.

Ответить
Виктор

Сколько планируется уроков в этом курсе-проекте? Или еще нет четкого представления о его продолжительности? Проект по Симфони вроде был 3-4 месяца, а этот уже растянулся более чем на пол года и материала тут еще, с такими темпами, на + пол года наберется. (Уж больно редко уроки выходят)

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

Сколько планируется уроков в этом курсе-проекте?

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

Например, в проекте по Symfony тема "регистрация пользователей" была рассмотрена по верхам целиком в одном неудобном пятичасовом видео. Без репитиции и монтажа. С кашлем и всеми ляпами прямого эфира.

Здесь же (как многие просили) эта одна тема удобно разбита по подтемам. Каждый эпизод подготовлен отдельно, записан черновик, перезаписан чистовой вариант и чистовик полностью очищен от дыхания, кашля, пауз и повторов. В итоге из одной темы получилось восемь эпизодов с 12 по 19.

Плюс к этому уже в комментариях дополнительно предложили рассмотреть сопутствующие темы вроде поднятия своего Docker-реестра, использования GitLab, установки Sentry и подготовки проекта к разбиению на микросервисы.

Материала тут еще, с такими темпами, на + пол года наберется

Если аукцион делать примитивным, то завершим быстро, но пользы будет мало. Если же сделаем доменную модель более сложную из нескольких контекстов с приёмом платежей, юрлицами, модерацией, сделками и арбитражом, то и эпизодов будет под сотню.

Уж больно редко уроки выходят

Удалённая работа из дома привносит свои неудобства.

Ответить
Виктор

Спасибо за ответ =)

Ответить
fedot

Дима, спасибо, все делаешь правильно, чем больше эпизодов тем лучше, ты уцепил весь нужный материал, ничего лишнего нету, но волнует вопрос сохранности видео, будет ли возможность скачать, для подписчиков?

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

Тогда начнут активно скачивать не только подписчики, но и пираты. Так что вопрос сложный.

Ответить
Bondarenko Alexandr

Заладили блин. Неужели жалко 500 рублей/месяц на материал такого качества? По подписке-то материал будет доступен всегда

Ответить
ХОРХОЙ

Лучше что-бы, как минимум до конца данного проекта, точно возможности скачать не было. Иначе махом переедет на торренты. А это в любом случае не в наших интересах (как Автора, так и Подписчиков).

Ответить
fedot

Согласен

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

Скрытый текст

Круто было бы ещё, если был бы конспект лекции. По основным этапам урока. Так проще возвращаться, если что вспомнить надо.

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

Круто было бы ещё, если был бы конспект лекции.

Конспекты обычно пишут сами слушатели для большего запоминания. А здесь есть общие для всех таймкоды.

Ответить
Максим

Вопрос не по теме, но все же задам. Когда примерно ожидать "Написание HTTP-фреймворка"?

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

Уже готовим сценарий и слайды к первому видео и начали перерабатывать код. За два года там много чего поменялось.

Ответить
Roman Korolov

Здравствуйте, Дмитрий есть ли какой нибудь график выхода новых видео?

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

Точного графика нет. Видео выходят по готовности. Если приходят новые интересные идеи, то добавляются новые темы.

Ответить
Roman Korolov

Спасибо!

Ответить
Arunas

поддерживаю вашу точку зрения - самое важное качество и четкость.

Ответить
Александр

Спасибо ! Поверхностно не надо, ваш подход очень нравиться.

Ответить
Valentin

Вопрос по выпуску с кукмбером и тестами, мы там указали чтобы кукумбер тестировал главную страницу по адресу gateway:8080 а почему не указать прямо название сервиса "frontend" или разницы по сути нет?

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

Если тестировать только frontend, то можем случайно пропустить ошибки в gateway.

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

Или войти через:

Yandex
MailRu
GitHub
Google