CI
CI - не прерывная интеграция рабочих копий в основную ветку. При там подходе можно автоматизировать проверку каждого коммита до слияния
Описывается в .yml в корне репозитория. Файл может имет дефолтное имя или нет, но при этом нужно явно указывать в настройка репозитория
Самые популярные CI-серверы GitHub Actions, GitLab CI, Jenkins
Словарик
Pipeline
- Pipeline (от англ. pipeline — «трубопровод», «конвейер») - четко определенная последовательность этапов или процессов
Stage
- Stage - этап, на котором логически объеденены группы задач(Jobs)
Jobs
- Jobs - выполняемая задача
Пример Ci
stages:
- lint
- build
- test
lint_code:
stage: lint
script:
- npm run lint
build_app:
stage: build
script:
- npm run build
unit_tests:
stage: test
script:
- npm run test
Описание примера
stages:
- lint
- build
- test
В блоке stages указаны этапы pipeline, они будут выполнятьс в том порядке, котором указаны. В данном примере 3 этапа
lint_code:
stage: lint
script:
- npm run lint
Jobs
- Первая строка имя джобы
- Вторая строка указывает, на каком этапе будет выполняться джоба
- Треться строка, объявлен блок скриптов
- Четвертая строка выполняемые скрипты: установка библиотек, запуск кода, выполнение bash-скриптов