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

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

Хорошая получилась статья, хоть и большая - спасибо!

Правда, вот вспоминаю как я пытался настроить CD деплоя телеграм бота на сервере и так и не получилось. Поэтому при случае был бы рад почитать про такие сценарии

Ещё, конечно, жаль, что про gitlab не написали, но причину объяснили и я понимаю, но все равно жаль - я бы почитал, т.к. чаще использую gitlab

За ситуации с Петром и Василием отдельное спасибо, помогали не терять контекст в таком количестве текста

Может, когда-нибудь разживёмся сервером по мощнее и перейдём на Гитлаб, а пока Гити с головой хватает.

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

Ключевые различия: в пайплайнах гитлаба нет таких сущностей, как шаги (steps) и экшены.

Если честно, их документация несколько более запутана (чем гитхабовская) и новичку сложно понять, что это за зверь такой -- пайплайны (на деле всё оказывается куда тривиальнее, чем звучит).

TL;DR

На каждый пуш в репу (репозиторий) запускается пайплайн, состоящий из джоб, которые состоят из шелл-скриптов.

Чуть подробнее

Если не пересказывать всю оф. доку (особенно рекомендую к прочтению документацию по синтаксису, это главный документ):

В каждой репе есть один (и только один) главный царь-пайплайн, который по умолчанию запускается на каждый пуш в репу (правила запуска можно и нужно настраивать [1][2][3][4]).
Пайплайн – это набор джоб, которые распределены по стадиям, по умолчанию главный пайплайн берется из .gitlab-ci.yml в корне репы (имя файла настраивается, если у вас есть соответствующие права)
Джобы – основные строительные блоки пайплайнов (степов, как в гитхабе, нет, и это боль, потому что каждая джоба выполняется в своем отдельном контейнере).
В джобе указываются условия и параметры ее запуска и, самое важное, выполняемый скрипт (это shell script, откуда в т.ч. можно запустить скрипты* на вашем любимом языке**)

*но есть нюанс: так можно делать, если главный пайплайн лежит в той же репе, что и скрипты, потому что из других реп импортировать в пайплайн можно только yml-файлы
**но можно через шелл-скрипты склонировать нужную репу с не шелл-скриптами или скачать их через апи (нужен отдельный токен, у CI-йного недостаточно прав)

Простой пайплайн для понимания можно подсмотреть в их туториале.

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

Ссылка есть, но на другое - типы триггеров. Документация у гх и правда хорошая, но она слишком объёмная для начала понимания процесса. Буквально "разбегаются глаза", что нужно, а что нет и куда всё это девать.

Да, по она точно не для совсем-совсем начала, но после понимания концепции воркфлоу можно только в нее и смотреть в принципе.

Согласен, и надеюсь, что статья немного поможет желающим понять принцип и начать писать свои CI/CD процессы =)

Спасибо автору много нового узнал. Но мало пишу такое так как просто не знаю где столько времени взять.

Забавно, но как раз автоматизировав процессы появляется свободное время =)

В итоговом варианте у шага "- name: Set up Python" неправильный отступ.

Исправил, спасибо!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации