Типы шагов
Каждый шаг в джобе имеет тип, который определяет, что он делает и какие параметры предлагает в панели конфигурации.
Команда оболочки
Запустить любой скрипт оболочки на раннере.
| Параметр | Описание |
|---|---|
| Оболочка | bash, sh, zsh, powershell, cmd |
| Скрипт | Тело скрипта |
| Рабочая директория | Опционально — по умолчанию корень репозитория |
Примеры использования: пользовательские скрипты установки, работа с файлами, вызов CLI, не покрытых другими типами.
# Пример скрипта
echo "Сборка версии $VERSION"
npm ci
npm run generateDocker
Выполнить операции Docker на раннере.
| Операция | Что делает |
|---|---|
build | docker build образ из Dockerfile |
run | docker run контейнер |
push | Опубликовать образ в реестр |
pull | Загрузить образ из реестра |
compose | Запустить docker compose up |
Общие параметры: имя образа, тег, путь к Dockerfile, аргументы сборки, учётные данные реестра (из хранилища учётных данных).
Git
Выполнить Git-операции на раннере.
| Операция | Что делает |
|---|---|
checkout | Переключиться на ветку, тег или SHA |
clone | Клонировать репозиторий |
pull | Получить последние изменения |
fetch | Получить удалённые ссылки |
tag | Создать и при необходимости запушить тег |
push | Запушить коммиты или теги |
TIP
Используйте операцию checkout как первый шаг в каждом джобе, чтобы убедиться, что раннер работает с актуальным кодом.
Тест
Запустить набор тестов.
| Фреймворк | Язык |
|---|---|
jest | JavaScript / TypeScript |
vitest | JavaScript / TypeScript |
pytest | Python |
go_test | Go |
cargo_test | Rust |
rspec | Ruby |
phpunit | PHP |
junit | Java |
Параметры: переопределение команды тестов, флаг покрытия, формат вывода, рабочая директория.
Сборка
Собрать артефакт проекта.
| Инструмент | Язык / Платформа |
|---|---|
npm / yarn / pnpm | JavaScript / TypeScript |
maven | Java |
gradle | Java / Kotlin / Android |
cargo | Rust |
go | Go |
dotnet | .NET |
pip | Python |
Параметры: команда сборки, директория вывода, переменные окружения.
Деплой
Задеплоить собранный артефакт в целевое окружение.
| Цель | Описание |
|---|---|
kubernetes | Применить манифесты через kubectl |
aws_ecs | Обновить ECS-сервис |
aws_lambda | Задеплоить Lambda-функцию |
ssh | Деплой по SSH (scp + удалённая команда) |
vercel | Деплой на Vercel |
netlify | Деплой на Netlify |
heroku | Деплой на Heroku |
ftp | Загрузка по FTP/SFTP |
Параметры зависят от цели. Учётные данные выбираются из хранилища учётных данных.
Уведомление
Отправить сообщение, когда шаг достигнут (обычно в конце пайплайна или при сбое).
| Канал | Описание |
|---|---|
slack | Публикация в Slack-канал через вебхук |
teams | Публикация в Microsoft Teams |
discord | Публикация в Discord через вебхук |
email | Отправка письма по SMTP |
Параметры: URL вебхука или SMTP-учётные данные (из хранилища), шаблон сообщения, название канала.
Общие параметры (все типы)
Каждый шаг, независимо от типа, также имеет общие параметры:
| Параметр | Описание |
|---|---|
| Метка | Читаемое имя, отображаемое на холсте |
| Описание | Необязательные заметки о назначении шага |
| Переменные окружения | Пары ключ-значение, вводимые при выполнении |
| Секреты | Ссылка на учётные данные из хранилища по имени |
| Продолжать при ошибке | Если включено, джоб продолжается даже при сбое шага |
