- Настройка окружения и установка необходмых пакетов для разработки (Linux, MacOS)
- Разработка
- Контейнеризация
- Проверки pre-commit
- CI
Интерфейсная часть будет писаться на TS, за исключение фронтового сервера.
Чтобы вести разработку необходимо уставноить nvm и node.
wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
nvm install 10
nvm alias default 10
После этого нужно устанвливать пакеты зависимостей для данного проекта, выполнив команду:
yarn
Если на предыдущих шагах все прошло успешно, можно начинать разработку. Для этого нужно запустить следующую команду:
yarn start-dev
Она запустит фронтовый сервер в режими development и любые изменения в коде сервера автоматически будут приводить к его перезапуску. В консоле появится информация о хосте, на котором запущен сервер. Чтобы собрать фронтовую часть в режиме poduction нужно выполнить команду:
yarn build
Если работать в режиме developement с автоматической пересборкой проекта после внесения изменений нужно выполнить команду:
yarn build-dev
С другими командами можно ознакомиться в package.json.
Чтобы запустить приложение в docker контейнере нужно сделать следующие:
docker build . -t <name of image>
docker run -p 8080:8080 <name of image>
Можно запустить так же образ который находится в удаленном репозитории (см ниже). Пример запуска последней стабильной версии:
docker run -p 5050:8080 networksidea/frontend:latest
Важно указать правильную проброску портов!: -p <port on your host>:8080, важно что в контейнере фронтовый сервер слушает порт 8080!
Контейнер запускает интерфейсную часть приложения в режиме production.
Также к git-репозиторию привязан docker hub oraganisation: https://hub.docker.com/orgs/networksidea.
Нужно подать заявку для членства в организации, чтобы иметь доступ к push своих собственных кастомных образов.
Сейчас образы собираются по следующим правилам автоматически (реагируют на гитовые web хуки):
- На каждое обновление
master, при этом образ собирается из последнего коммита и доступен под тегомlatest:
docker pull networksidea/frontend:latest
- На каждый релизный тэг в мастер:
tag=0.10.1=> образ можно получить под тегом:release-0.10.1:
docker pull networksidea/frontend:release-0.10.1
- На каждый push в произвольную ветку => соответсвующий тэг будет иметь имя ветки
docker pull networksidea/frontend:<branch-name>
Если хочется запушить свой собственный docker образ (например он нужен другим разработчикам для интеграции), то запушить свой образ можно так:
docker push networksidea/frontend:<tagname>
tagname не должен быть: latest, <branch-name>, release-<...> в силу правил описанных выше.
Соответственно другому разработчику можно получить образ выполнив команду:
docker pull networksidea/frontend:<tagname>
Перед тем как сделать коммит прогонится линтер: yarn lint. В случае нарушения Code Style или соверешния ошибок, видимых при статической обработке кода, коммит не удасться сделать. В этом случае необходимо поправить код в тех местах, где ошибки и повторить попытку коммита.
На каждый push в репозиторий запускаются некоторые тесты
- Eslint проверки