Как стать автором
Обновить

Комментарии 12

Восстановление пакетов.

Билд.

Прогон unit-тестов.

Publish.

Поставка артефактов.

Сейчас это всё можно сделать в виде docker файла. Более того если еще и docker-compose сделать то можно добавить этап прогона интеграционных тестов (если поднять еще базу, redis,rabbit и всё остальное что нужно).
На билдовой машине при этом нужен только docker
Это как? Ты тянешь весь SDK в образ?
Подозреваю что это сделано через multi-stage builds. Один image с SDK в котром происходит
  • Восстановление пакетов.
  • Билд.
  • Прогон unit-тестов.
  • Publish.

А потом артефакты копируются в другой image в котором только рантайм или вообще чистый дистрибутив, если деплоить как self-hosted.
Выглядит в данном случае как не совсем оправданное использование докера. Либо мне плохо представляются преимущества…

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

Согласен, использовать docker для ci удобно. Но бывает так как у меня: пул приложений Net Core, но одно из них Desktop Net Framework 4.8 и это перечёркивает возможность унифицированного использования docker для ci.

Можно. Но всё равно у вас где-то будет описан порядок действий.
Я сake не работал, только с nuke.
Когда проект здоровый и шагов переваливает за 10, и ещё могут быть разные параметры сборки для разных окружении, и хитрые зависимости между шагами, вот тогда нужен nuke или cake.
Например, после сборки исходников на C#, готовые бинари можно положить в docker контейнер и запушить.
И в таком варианте сборка и пуш контейнера — это просто два шага в скрипте сборки.

Оказывается в свое время я это видео начинал смотреть, но не досмотрел. Спасибо за напоминание.
В плане DSL для сборки мне очень нравится nuke
1. Гораздо компактнее и читабельнее (не нужно реализовывать целый класс, чтобы описать задачу)
2. Есть визуализация выполнения в виде графа (очень помогает, когда запутался, в каком порядке должно всё выполняться)
3. Есть кодогенерация для Teamcity, Gitlab, Azure devops
4. Прикольный тулинг: плагины для сред и консольный тул.
Вообще, в базовом раннере Cake Tool таски описаны в более простом DSL, но это на любителя. Мне нравится именно стиль Frosting. Да и подход без тулов вообще тоже на данный момент представляется удобным. По остальным вопросам не сравнивал, не буду утверждать, что Cake в чем -то превосходит nuke.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации