Git workflow with CI/CD SCENARIO: --------- 1. The dev open/choose/assigned a ticket on JIRA: - Create a smart branch on his/her local env, e.g. `feature/HT-2-add-header-component` 2. Branch `feature/HT-2-add-header-component`: - commit changes(+ add semversioner changes for next release) - push to bitbucket - CI tests executed - fail: fix the error(s) then commit again - success: create a pull request 3. Branch `feature/HT-2-add-header-component` reviewed, approved: - the code-reviewer merge it with dev - branch dev CI tests executed - fail: fix the error(s) then commit again - success: branch dev CD executed - deployment started to preprod 4. Feature tested on preprod, let's create a release: - create a release branch from dev, e.g. `release/v0.0.3` - exec CI tests - exec `semversioner changelog` command - `git add CHANGELOG.md` - `git commit -m "bump version $(semversioner current-version)"` - add git tag using `semversionner current-version` - merge release/v0.0.3 with dev without starting tests - merge release/v0.0.3 with master: - exec master CI tests - exec master CD: - deployment started to production server(s)