You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1.6 KiB
1.6 KiB
Flow
flowchart TB;
stable([stable]);
production([production]);
validated([validated]);
branch-- [1] -->branch;
branch-- [2] -->develop;
develop-- [3] -->stable;
stable-- [4] -->production;
production-- [5] --> validated;
- Branches are tested with quick tests; builds happen in 1 or 2 OSes
- Once the branch is marked as "Ok", it can be merged back into develop
- Every time there is a commit on develop, a larger test, which runs more cases and builds for different OSes and compiler versions is run; when it passes, a tag "stable" is set on this commit
- The execution is not interrupted on new commits, but if there were new commits during this execution, a new execution is triggered just after
- On failure, "stable" does not move.
- Every time stable is updated, the midsized tests are run (in the same fashion the short ones are); when it passes the tag "production" is updated
- Same as "stable", executions are not interrupted, but queue for next
- Same as "stable", on failure the "production" is not changed
- Every time production is updated, the large cases are run; when they pass, the tag "validated" is updated
Versioning/Distribution
For versioning, we could use the base branch as reference:
- "develop" would use "stable-vd.e.v", "production-vd.e.v" and "validated-vd.e.v"
- "v4.2" would use "stable-v4.2", "production-v.4.2" and "validated-v.4.2"
- Final versions could be tagged "v4.2.1", for example, inside the "v4.2" branch
One thing we'll need for this is something to keep listening to changes in branches, including adding tags.