The majority of the automated steps documented below will be handled by our CI setup detail in the CI Best Practices.
The process below details what process we are aiming for across the group.
- Discussion with product owner / stakeholder regarding requirements.
- Discussion with tester / QA regarding how to test the requirements.
- For substantial changes schedule a Technical planning meeting.
- Metric decided for success of code change.
- Timeframe for success decided.
- The
staging
branch is checked out on the developer's machine. - The latest changes are pulled.
- A new feature branch is created for the code change.
- Work is tested locally during development.
- Commits are created.
- The new branch is pushed up to GitHub.
- A new PR is created.
- Project's contributing document is double checked.
- Automated tests and quality checks run on project.
- Work is reviewed by another developer.
- Work is reviewed by a senior or project guru.
- Tester checks out feature branch on their machine.
- Appropriate testing is performed locally.
- Tester / QA merges feature branch into the
staging
branch. - Changes to staging are automatically deployed to staging environment.
- Appropriate testing is performed alongside any other recent changes from the team.
- Tester / QA merges staging branch into the
master
branch. - Changes to master are deployed automatically to production environment.
- Minimal automated tests are performed to ensure a successful deployment.
- Deployment notification sent out to team.
- Success of code change is measured by metric and timeframe.