You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
A race condition was discovered where the CI/CD pipeline triggered by a Tag may merge bad changes to master.
The CI/CD must be changed so that:
Tag pipeline now only publishes releases, without guarantee of succeeded tests
npm version only creates a version commit rather than both a version commit and tag
Tests and merge jobs should happen on all pipelines on commits on staging, including version commits.
Tags should be created manually from the version commits after the pipeline of the version commit has succeeded.
Tags and Releases should only be created from master
This will now mean that, any Tags that's history diverge from staging/master, will no longer be merged into master. This makes sense, as tags can be created from any history, even one that doesn't align with any branches on the repository.
This means that master will only ever be merged from staging, after staging is confirmed to have been successfully tested.
The flow to release should be the following:
Commit to staging
Run npm config set git-tag-version=false to disable tags from being created from npm version
Run npm version ... to create a version commit
git push
CI/CD runs tests on staging.
CI/CD merges staging to master
Create a Tag from master
CI/CD publishes GitHub release from Tag
Additional context
Tasks
Change .gitlab-ci.yml on Polykey to reflect changes
Change .gitlab-ci.yml on Polykey-CLI to reflect changes
The text was updated successfully, but these errors were encountered:
Specification
A race condition was discovered where the CI/CD pipeline triggered by a Tag may merge bad changes to master.
The CI/CD must be changed so that:
npm version
only creates a version commit rather than both a version commit and tagmaster
This will now mean that, any Tags that's history diverge from
staging/master
, will no longer be merged intomaster
. This makes sense, as tags can be created from any history, even one that doesn't align with any branches on the repository.This means that master will only ever be merged from staging, after staging is confirmed to have been successfully tested.
The flow to release should be the following:
staging
npm config set git-tag-version=false
to disable tags from being created fromnpm version
npm version ...
to create a version commitgit push
staging
.staging
tomaster
master
Additional context
Tasks
The text was updated successfully, but these errors were encountered: