Что стоит включать в CI пайплайн

Ответ

  • Линтинг кода (ESLint, Stylelint) для проверки стиля и ошибок
  • Тестирование (unit, интеграционные, e2e тесты)
  • Сборка проекта (проверка что билд проходит без ошибок)
  • Проверка зависимостей (npm audit, проверка уязвимостей)
  • Деплой на staging (автоматический после успешного прохода всех этапов)
  • Артефакты сборки (сохранение билда для дальнейшего использования)

Пример конфига для GitHub Actions:

name: CI Pipeline
on: [push]
jobs:
  lint:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: npm ci
      - run: npm run lint
  test:
    needs: lint
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: npm ci
      - run: npm test
  build:
    needs: test
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - run: npm ci
      - run: npm run build