If you’re getting ready to set up a new project and thus a new GitHub repo, follow this guide to make sure the proper checks and controls are in place.
Checks
CircleCI is our build platform and will post status checks back to GitHub. Typically, each repo has one “test” job which is responsible for a few checks together. If any of these steps takes a particularly long time, you can parallelize them by creating several jobs in the pipeline. Each repo should perform the following checks automatically:
Test Suite - Run the automated test suite and produce a Codecov compatible coverage report.
Linting - This is the application of opinionated standardized styling and is obviously language dependent, so look at other SwipeSense repos to see what they use, and steal their config. Some common ones:
Ruby - rubocop
Python - pylint
Go - go lint
Javascript - eslint/prettier
CSS - stylelint
Code Coverage - 100% project and patch coverage required in Codecov.
All the above should pass before any code review commence.
Deployment
All repos should implement a deploy CircleCI job that works for staging and production. The following branch conventions must be used:
master - Deploy to staging.
production - Deploy to production.