Base project for getting set up for web applications, including testing and CI/CD pipeline
- circleci - ci/cd server
- codecov - coverage reports
- saucelabs - browser virtualizer
- typescript - javascript static type checker and compiler
- eslint - javascript linter
- stylelint - css linter
- husky - for custom git hooks to restrict commit and push
- commitizen - for standardized commit messages
- karma - in browser unit test harness
- jasmine - unit test framework
- testcafe - e2e test framework
- semantic-release - controls publishing/deploys with automatic versioning
- add changed files to tracked (git add)
- use 'npm run cmt' to commit
- commitizen will run git commit formatter
- husky will run local unit tests
- push
- husky will run all tests, and if successful, pushes to remote
- circleci detects changes, and begins running workflow
- runs tests in saucelabs (karma for unit, testcafe for e2e)
- if both unit and e2e jobs pass, coverage report is generated and sent to codecov, and the build process executes
- if successful, goes to deploy (currently only if the changes are in master branch)