216 слов | 1 минута

CICD

Pipline

CI/CD является собирательным термином, охватывающим несколько этапов DevOps.

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

Если есть админ на этапе развертывания в прод - Continuous Delivery, нет - Continuous Development

Основной сущностью в GitLab CI/CD является пайплайн (pipeline) — конвейер, который может состоять из:

  • джобов (jobs), описывающих что нужно выполнить;
  • этапов (stages), указывающих, когда или в какой последовательности нужно выполнить джобы.

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

gitlab-ci.yml

GitLab CI полностью конфигурируется с помощью одного файла в формате YAML, который нужно создать в корне проекта — .gitlab-ci.yml

Именно в этом файле описываются все задачи, а также команды, которые gitlab-runner будет выполнять на сервере.

stages:
- deploy
deploy-job:
stage: deploy
script:
- echo "Deploying application..."
- echo "Application successfully deployed."

Теперь при коммите наш Runner будет этот скрипт. Скрипт соответственно должен быть загружен в репозиторий GitLab.

на GitLab

Добавляем раннер для репозитория (в примере test)

Если всё прошло успешно, то в коммите будет зеленая кнопка Passed.

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