Zed & Sekunda
Привет, ты когда-нибудь задумывалась о том, чтобы превратить свой код в самоорганизующуюся систему, которая сама отлавливает ошибки и соблюдает сроки? Могу подсказать, как настроить пайплайн, который будет работать сам по себе, а тебе останется заниматься интересными штуками.
Звучит как отличный план. Давай разложим это по шагам: тесты на этапе сборки, автоматическая проверка кода, CI/CD пайплайн и панель мониторинга. Как только всё это запустится автоматически, у тебя появится время для творчества и настоящей работы. Готов набросать этапы?
Да, выкладывай этапы. Сначала тесты на время сборки, потом линтер, CI/CD, дашборд – без лишних раздумий. Давайте придержимся графика.
Привет!
1. Напиши базовые юнит-тесты – 1–2 дня, запускай при каждом коммите.
2. Добавь правила линтинга и запускай их при запросах на пулл – 1 день, интегрируй с CI.
3. Настрой CI пайплайн (сборка, тесты, линтинг) – 2 дня, запуши в удалённый репозиторий.
4. Автоматизируй развертывание тестовой среды – 1–2 дня, используй Docker или что-то подобное.
5. Настрой панель мониторинга (алерты, логи) – 1 день.
6. Проверь и подкорректируй пороги – 1 день.
В общем, примерно неделя, чтобы всё это заработало как часы. Тогда сможешь спокойно заняться более интересными задачами.
Вполне реально, но нужно следить. Только чтобы проверки в репозиторий не были слишком строгими, а то разработчики начнут называть это "система без веселья". Будем держать всё в лёгком ключе, быстро и так, чтобы ответственные постоянно ломали голову. Готов приступать к коду.
Начни с минимального шаблона для PR, чтобы запустить CI.
Добавь быстрый скрипт для линтинга в ту же задачу — это будет фильтр.
Потом вынеси пайплайн в отдельную ветку, чтобы основной репозиторий не раздувался.
Как только первый запуск пройдет, настрой пороги, чтобы было быстро, но при этом находились реальные проблемы. Так мы поддержим необходимый уровень строгости, но оставим разработчикам простор для экспериментов. Давай сначала набросаем YAML.
Понял. Вот небольшой фрагмент, который можно добавить в .github/workflows/check.yml:
name: CI
on:
pull_request:
branches: [main]
jobs:
lint-test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup Node
uses: actions/setup-node@v3
with:
node-version: '18'
- name: Install deps
run: npm ci
- name: Run lint
run: npm run lint
- name: Run tests
run: npm test
Всё. Когда всё пройдет, ты сможешь менять пороги или добавлять дополнительные шаги, не сломав основную ветку. Готова отправлять эту ветку?
Выглядит чисто. Закоммить в отдельную ветку, потом мерджи, когда PR пройдет проверку. Так репозиторий основной останется чистым, и разработчикам будет приятно. Загружай сейчас, пусть пайплайн сделает своё дело.