Какие Pipelines были на последнем проекте

Ответ

На последнем проекте использовали CI/CD pipeline на GitHub Actions. Основные этапы:

  1. Lint & Test – запуск ESLint, Prettier и юнит-тестов (Jest).
  2. Build – сборка проекта через Webpack.
  3. Deploy Preview – деплой на Vercel для ревью.
  4. Production Deploy – автоматический деплой в прод после мержа в main.

Пример конфига:

name: CI/CD  
on: [push, pull_request]  
jobs:  
  test:  
    runs-on: ubuntu-latest  
    steps:  
      - uses: actions/checkout@v3  
      - run: npm ci  
      - run: npm run lint  
      - run: npm test  

Также был отдельный pipeline для e2e-тестов (Cypress) в GitLab.

Ответ 18+ 🔞

А, ну это же классика, блядь! На прошлом проекте у нас был вот этот вот CI/CD, на GitHub Actions, понимаешь? Всё по-взрослому, не хухры-мухры.

Слушай, а схема-то, в принципе, простая, но без неё — нихуя. Сначала, как честные ребята, мы Lint & Test гоняем. То есть, ESLint, чтобы код не выглядел как пиздец, Prettier, чтобы форматирование было не абы как, и Jest, чтобы наши юнит-тесты проверили, не насрали ли мы в логику где-нибудь. Без этого шага — вообще никуда, а то потом вылезет какая-нибудь хуйня и придётся всё ебашить с нуля.

Потом, если тесты не сдохли, идёт этап Build. Тут уже Webpack вступает в игру, собирает всё это добро в один красивый, оптимизированный комок. Если на этом этапе всё падает — значит, ты где-то совсем ебнулся, и пора пересматривать свою жизнь.

Дальше — красота! Deploy Preview. Автоматом заливается на Vercel, и любой желающий может посмотреть, что ты там наворотил, прямо вживую. Удобно же, блядь! Не надо никого ебать, чтобы он себе локально всё поднял.

И финальный аккорд — Production Deploy. Как только всё замержилось в main — всё, приехали. Автоматом летит в прод. Сидишь, пьёшь кофе, а система сама всё делает. Ёперный театр, вот это инженерия!

Вот, смотри, кусочек конфига, чтобы было понятнее, о чём я:

name: CI/CD
on: [push, pull_request]
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - run: npm ci
      - run: npm run lint
      - run: npm test

Видишь? Всё чётко и по полочкам. А ещё, представляешь, был отдельный, блядь, pipeline для e2e-тестов на Cypress, но тот уже в GitLab висел. Ну, чтобы совсем уже, сука, покрыть все фронты и спать спокойно. А то мало ли что, вдруг пользователь нажмёт не на ту кнопку и всё разъебётся?