Концепция до инструмента
GitLab, Jenkins и исполнитель команд
Разберём, где лежит код в GitLab, где хранятся инструкции pipeline, и какой Runner или Jenkins Agent исполняет команды.
Pipeline — автоматизированный процесс из stages и jobs
Он может запускаться на push, merge request, по расписанию или вручную. Команды находятся внутри job. Например: скачать зависимости → запустить API-тесты → запустить E2E → сохранить отчёт → разрешить или запретить deploy.
Три вопроса к любому CI-инструменту
Где лежит код?
В Git-репозитории.
Где лежит инструкция?
В .gitlab-ci.yml или Jenkinsfile.
Кто выполняет команды?
GitLab Runner или Jenkins Agent.
GitLab · всё рядом
Репозиторий + CI-контроллер
GitLab видит push, читает .gitlab-ci.yml и ставит job
в очередь GitLab Runner.
Jenkins · отдельный сервис
CI-контроллер подключён к Git
Jenkins получает webhook, читает Jenkinsfile из
репозитория и ставит job в очередь Jenkins Agent.
Один смысл, три стека
TypeScript + Playwright
test-e2e:
image: node:22
script:
- npm ci
- npx playwright test
Демо-конфиг; персональная лаборатория появится позже
Python + pytest
test-api:
image: python:3.12
script:
- pip install -r requirements.txt
- pytest -q
Учебный пример; Python runner появится позже
Java + JUnit 5
test-api:
image: gradle:8-jdk21
script:
- ./gradlew test
Учебный пример; Java runner появится позже
Проверка понимания
Код лежит в GitLab, а тесты запускает Jenkins. Возможно ли это?
Показать ответ
Да. GitLab хранит репозиторий, Jenkins подключается к нему и запускает pipeline.