Здесь приведены шаги для выполнения задания с использованием стандартных компонент. Любые из них можно заменить аналогами
- GitHub
- Создать репозиторий своего приложения
- Приложение
- Можно использовать любое Node.js приложение, можно даже самое простое
- Приложение должно писать логи. К примеру, построение страницы можно окружить
console.time('render')
,console.timeEnd('render')
- Есть пример приложения, где можно посмотреть, как что настроено. Его использование в своём задании не будет считаться зазорным
- ESLint
- Настроить ESLint, для этого установить его, сделать
eslint --init
и выбрать подходящие опции - Настроить запуск ESLint по npm test
- В случае, если по npm test прогоняются юнит- или любые другие тесты – большой плюс
- Настроить ESLint, для этого установить его, сделать
- Heroku
- Настроить хостинг на Heroku для Node.js: https://devcenter.heroku.com/ и нажать Get started, там будет пошаговая инструкция. На примере тестового приложения, предложенного Heroku изучить структуру
- Задание: изучить
heroku logs
– что за логи пишет приложение? Написать это в README.md - Настроить в своём приложении Heroku-окружение аналогично примеру
- Залить его в Heroku, убедиться, что всё работает
- Travis
- Настроить CI с помощью Travis в своём репозитории, следуя инструкции: https://docs.travis-ci.com/user/getting-started
- Настроить деплой ветки master в Heroku, следуя инструкции: https://docs.travis-ci.com/user/deployment/heroku
- Добавить в README.md плашку "build"
- Дополнительные задания:
- Настроить облачный линтер BitHound: https://www.bithound.io/
- Настроить внешний мониторинг приложения с помощью сервиса http://uptimerobot.com/ При настройке лучше ставить большой интервал проверок, так как бесплатный тарифный план Heroku ограничивает время аптайма приложений
- Использовать сервис с некоторой базовой логикой и написать хотя бы пару тестов
Нужно быть готовым к тому, что в проект будет прислан pull request. Если это произойдёт, его нужно влить, если он будет корректным, после чего код должен будет раскатиться на боевой хостинг.