GitHub Actions: свой первый CI за вечер
GitHub Actions за вечер: как настроить первый CI-пайплайн, автоматизировать тесты и сборку. Понятный разбор синтаксиса workflow с готовым конфигом для новичка.
Коротко. CI/CD автоматически проверяет и доставляет код. В GitHub Actions пайплайн — это YAML-файл в .github/workflows/, который запускается на события (push, pull request). За вечер реально настроить прогон тестов и линтера на каждый коммит — это уже сильный пункт в портфолио DevOps.
Что такое CI/CD и Actions
CI (Continuous Integration) — на каждый коммит автоматически собирать проект и гонять тесты, чтобы ломающие изменения ловились сразу. CD — автоматически доставлять рабочую версию на сервер. GitHub Actions — встроенный в GitHub инструмент, которому не нужен отдельный сервер.
Как устроен workflow
- workflow — весь сценарий (YAML-файл).
- on — событие-триггер (push, pull_request).
- job — задача, выполняется на раннере (виртуалке).
- step — шаг внутри job (команда или готовый action).
Первый пайплайн
Файл .github/workflows/ci.yml — тесты на каждый push:
name: CI
on: [push, pull_request]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- run: npm run lint
- run: npm test
Готово: теперь каждый коммит проверяется автоматически, а в PR видно, прошли ли тесты.
Добавляем деплой
Отдельный job, который запускается только после успешных тестов и только на ветке main:
deploy:
needs: test
if: github.ref == 'refs/heads/main'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: echo "здесь команды деплоя (ssh, docker push и т.п.)"
Секреты (ключи, пароли) храните в Settings → Secrets, а не в коде, и обращайтесь к ним через secrets.NAME.
Советы и ошибки
- ✅ Кэшируйте зависимости (actions/cache) — пайплайн быстрее.
- ✅ Разделяйте jobs: линт, тесты, сборка, деплой.
- ❌ Не кладите секреты в YAML открытым текстом.
- ❌ Не деплойте с любой ветки — ограничивайте условием if.
Как превратить это в пункт портфолио
CI — один из самых окупаемых пунктов в портфолио джуна DevOps, потому что показывает инженерную культуру, а не только «умею писать код». Минимальный сильный вариант: возьмите любой свой проект, добавьте линт и тесты, настройте workflow на push и повесьте бейдж статуса CI в README. Следующий шаг — автодеплой на VPS по push в main. Такой репозиторий на собеседовании говорит за вас лучше строчки в резюме.
Минимальный полезный CI
На каждый PR: checkout → install → lint/test → (опционально) build. Секреты только в secrets, не в логах. Кэш зависимостей — когда пайплайн уже зелёный. Не усложняйте matrix и 15 job, пока один job не стабилен.
- запуск на pull_request + main;
- fail fast на тестах;
- артефакт/отчёт при падении;
- отдельный workflow на release/deploy — когда появится деплой.
CI — часть DevOps-истории в резюме. Рядом: Docker, старт DevOps.
Секреты и supply chain — минимум
Не echo secrets. Pin actions по SHA или проверенным major tags. least privilege для GITHUB_TOKEN. Для учебных репо это уже отличает вас от «yaml из чата GPT без понимания».
Следующий шаг в DevOps
Примените идеи из «GitHub Actions: свой первый CI за вечер» к своему учебному проекту или к одной вакансии на этой неделе. Поднимите один сервис в Docker, прогоните простой CI, задеплойте на VPS или в песочницу. База: Docker, GitHub Actions, VPS. Полный маршрут — DevOps старт, обзор роли — devops starter.
Как применить «GitHub Actions: свой первый CI за вечер» на практике
Пройдите материал не как статью, а как задание. Выпишите 3 тезиса из разделов (Что такое CI/CD и Actions; Как устроен workflow; Первый пайплайн) и напротив каждого — действие на 30–90 минут: что сделаете руками, какой файл/репозиторий появится, как поймёте что готово. Без этого колонки «изучил» в голове не конвертируются в оффер.
Связка с соседними материалами: VPS, Docker, старт DevOps, GitHub Actions, DevOps старт. Не читайте всё подряд — возьмите один следующий URL и закройте его артефактом в git до конца недели. Если роль ещё не выбрана, сначала профессии и 5 вакансий-ориентиров, потом возвращайтесь к этой теме.
На собеседовании по теме «GitHub Actions: свой первый CI за вечер» вас почти всегда просят пример из практики. Подготовьте 60–90 секунд: задача → что сделали → результат/ограничение. Даже учебный пример звучит сильнее пересказа теории.
Частые вопросы
GitHub Actions бесплатны?
Для публичных репозиториев — да; для приватных есть бесплатный лимит минут. Для учебных проектов этого хватает.
Actions или GitLab CI?
Принципы одинаковые (YAML, jobs, steps). Освоив одно, легко перейти на другое. Берите то, где лежит ваш код.
Что показать в портфолио?
Репозиторий с рабочим CI: линт + тесты на каждый коммит и бейдж статуса в README.
Материал «GitHub Actions: свой первый CI за вечер» имеет смысл только вместе с практикой: один артефакт в git на этой неделе важнее десяти вкладок с теорией. Если застряли на выборе роли — начните с профессий и одной вакансии-ориентира.