🚀 Веб-разработка с нуля: Урок 28 — Настраиваем CI/CD для автоматического тестирования
Привет, инженеры DevOps-культуры! 👨💻👩💻
Сегодня автоматизируем процесс проверки кода — настроим Continuous Integration для нашего To-Do List!
### 🔥 Что такое CI/CD?
• CI (Continuous Integration) — автоматический запуск тестов при каждом коммите
• CD (Continuous Deployment) — автоматический деплой на сервер
### 🛠 Настройка GitHub Actions
1️⃣ Создаем файл
2️⃣ Добавляем скрипты в
### 💡 Что мы автоматизировали?
✅ Запуск тестов при каждом push/pr
✅ Проверку на разных ОС
✅ Генерацию отчета о покрытии кода
✅ Интеграцию с Codecov
### 🚀 Деплой на Vercel/Netlify
Добавляем в
### 📌 Практическое задание
1. Создайте workflow для деплоя на Firebase Hosting
2. Настройте автоматический запуск linting (ESLint)
3. Добавьте проверку типов TypeScript
👉 В следующем уроке:
Мониторинг ошибок в продакшене!
💬 Какие CI-системы вы уже пробовали?
Подписывайтесь: [t.me/rm_programmer](https://t.me/rm_programmer)
#CICD #GitHubActions #DevOps #Автоматизация
Привет, инженеры 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 #Автоматизация