11 subscribers
182 photos
3 videos
212 links
Programmer - Курсы программирования. Канал для тех, кто не хочет остаться на задворках цивилизации.
Download Telegram
🚀 Веб-разработка с нуля: Урок 28 — Настраиваем CI/CD для автоматического тестирования

Привет, инженеры DevOps-культуры! 👨💻👩💻
Сегодня автоматизируем процесс проверки кода — настроим Continuous Integration для нашего To-Do List!

### 🔥 Что такое CI/CD?
CI (Continuous Integration) — автоматический запуск тестов при каждом коммите
CD (Continuous Deployment) — автоматический деплой на сервер

### 🛠 Настройка GitHub Actions

1️⃣ Создаем файл .github/workflows/tests.yml:
name: Run Tests

on: [push, pull_request]

jobs:
test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v2

- name: Setup Node
uses: actions/setup-node@v2
with:
node-version: '16'

- name: Install dependencies
run: npm ci

- name: Run tests
run: npm test -- --coverage

- name: Upload coverage
uses: codecov/codecov-action@v1



2️⃣ Добавляем скрипты в package.json:
{
"scripts": {
"test": "jest",
"test:watch": "jest --watch",
"test:coverage": "jest --coverage"
}
}



### 💡 Что мы автоматизировали?
Запуск тестов при каждом push/pr
Проверку на разных ОС
Генерацию отчета о покрытии кода
Интеграцию с Codecov

### 🚀 Деплой на Vercel/Netlify
Добавляем в tests.yml:
deploy:
needs: test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- run: npm run build

- name: Deploy to Vercel
uses: amondnet/vercel-action@v20
with:
vercel-token: ${{ secrets.VERCEL_TOKEN }}
vercel-org-id: ${{ secrets.VERCEL_ORG_ID }}
vercel-project-id: ${{ secrets.VERCEL_PROJECT_ID }}



### 📌 Практическое задание
1. Создайте workflow для деплоя на Firebase Hosting
2. Настройте автоматический запуск linting (ESLint)
3. Добавьте проверку типов TypeScript

👉 В следующем уроке:
Мониторинг ошибок в продакшене!

💬 Какие CI-системы вы уже пробовали?

Подписывайтесь: [t.me/rm_programmer](https://t.me/rm_programmer)
#CICD #GitHubActions #DevOps #Автоматизация