Coder Social home page Coder Social logo

shri_2018_nodejs_homework's Introduction

shri_2018_nodejs_homework

Build Status


Для установки приложения, как обычно:

npm install


Линтеры:

npm run lint

npm run stylelint


Юнит-тесты

npm test


Интеграционные тесты

для интеграционных тестов на локальной машине нужно установить selenium-standalone

npm i --global selenium-standalone

selenium-standalone install

для запуска тестов нужно запустить selenium

selenium-standalone start

и приложение, настроенное на тестовый git-репозиторий

npm run hermioneTestServer

и, наконец, непосредственно тесты (с предварительным клонированием тестового репозитория и его последующим удалением):

npm run hermioneLocal

скрипт npm run hermione предназначен для выполнения в режиме CI и настроен на внешний selenium-grid (sauceLabs)


Запуск приложения в dev-режиме

npm run dev

Запуск приложения в prod-режиме

npm start


О приложении

Приложение сделано максимально примитивно (показалось достаточным для поставленной задачи, не обессудьте!) на комбинации Express.js и шаблонизатора Pug.js

Работа с git-клиентом происходит через командную строку (класс server/GitApi.js). На всякий случай в связи с этим в Dockerfile включено обновление git-клиента.

Настройки приложения передаются через файл app.properties. Также есть возможность перегрузить настроечный файл, передав путь к альтернативному файлу первым аргументом в npm run (это требуется для автоматического интеграционного тестирования).


CI/CD

в Travis-CI и Heroku удалось настроить следующий flow:

    • При коммите в любую ветку происходит выполнение юнит-тестов и линтеров
    • Производится сборка докер образа и пушится в репозиторий приложения https://shri-2018-nodejs-homework-test.herokuapp.com/
    • Выполняются интеграционные тесты (гермиона) на вышеуказанном приложении
    • При коммите в мастер ветку (без тэгов) происходит то же, что и в предыдущем пункте
    • Затем делается pull образа тестового приложения и push этого образа в staging приложение https://shri-2018-nodejs-homework-stag.herokuapp.com/
    • При коммите тэга происходит то же, что и в первом пункте
    • Затем делается pull образа тестового приложения и push этого образа в production приложение https://shri-2018-nodejs-homework-prod.herokuapp.com/
    • Pull-реквесты обрабатываются по первому пункту
    • Review приложение поднимается на основании Dockerfile'а (сборка и запуск докер образа) полностью силами Heroku в автоматическом режиме

shri_2018_nodejs_homework's People

Contributors

konstantinov90 avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.