aboutsummaryrefslogtreecommitdiffstats
path: root/docs
diff options
context:
space:
mode:
Diffstat (limited to 'docs')
-rw-r--r--docs/content/overview/csit/_index.md1
-rw-r--r--docs/content/overview/csit/branching_strategy.md109
2 files changed, 110 insertions, 0 deletions
diff --git a/docs/content/overview/csit/_index.md b/docs/content/overview/csit/_index.md
index 29f0164266..1a155b6a84 100644
--- a/docs/content/overview/csit/_index.md
+++ b/docs/content/overview/csit/_index.md
@@ -12,3 +12,4 @@ weight: 2
- [Test Naming]({{< relref "/overview/csit/test_naming" >}})
- [Test Tags]({{< relref "/overview/csit/test_tags" >}})
- [Suite Generation]({{< relref "/overview/csit/suite_generation" >}})
+- [Branching Strategy]({{< relref "/overview/csit/branching_strategy" >}})
diff --git a/docs/content/overview/csit/branching_strategy.md b/docs/content/overview/csit/branching_strategy.md
new file mode 100644
index 0000000000..16d8e0f471
--- /dev/null
+++ b/docs/content/overview/csit/branching_strategy.md
@@ -0,0 +1,109 @@
+---
+title: "Branching Strategy"
+weight: 6
+---
+
+# Branching Strategy
+
+## Definitions
+
+**CSIT development branch:** A CSIT branch used for test development which has a
+1:1 association with a VPP branch of the same name. CSIT development branches
+are never used for operational testing of VPP patches or images.
+
+**CSIT operational branch:** A CSIT branch pulled from a CSIT development or
+release branch which is used for operational testing of the VPP branch
+associated from its' parent branch. CSIT operational branches are named
+`oper-<YYMMDD>` for master and `oper-<release>-<YYMMDD>` for release branches.
+CSIT operational branches are the only branches which should be used to run
+verify jobs against VPP patches or images.
+
+**CSIT release branch:** A CSIT branch which is pulled from a development branch
+and is associated with a VPP release branch. CSIT release branches are never
+merged back into their parent branch and are never used for operational testing
+of VPP patches or images.
+
+## VPP Selection of CSIT Operational Branches
+
+Each VPP and release branch will have a script which specifies which CSIT
+operational branch is used when executing the per patch verify jobs. This is
+maintained in the VPP branch in the file
+`.../vpp/build-root/scripts/csit-test-branch`.
+
+## Branches
+
+### Main development branch: 'master'
+
+The CSIT development branch 'master' will be the main development for new VPP
+feature tests that have not been included in a release. Weekly CSIT operational
+branches will be pulled from 'master'. After validation of all CSIT verify jobs,
+the VPP script 'csit-test-branch' will be updated with the latest CSIT
+operational branch name. Older CSIT operational branches will be available for
+manual triggered vpp-csit-verify-* jobs.
+
+### Release branch: 'rls1606', 'rls1609', ...
+
+CSIT release branches shall be pulled from 'master' with the the convention
+`rls<release>` (e.g. rls1606, rls1609). New tests that are developed for
+existing VPP features will be committed into the 'master' branch, then
+cherry-picked|double committed into the latest CSIT release branch.
+Periodically CSIT operational branches will be pulled from the CSIT release
+branch when necessary and the VPP release branch updated to use the new CSIT
+operational branch.
+
+**VPP branch diagram:**
+
+ -- master --------------------------------------------------------------->
+ \ \
+ \--- stable/1606 ---[end] \--- stable/1609---[end]
+
+
+**CSIT branch diagram:**
+
+ /--- oper-rls1606-160623
+ / /--- oper-rls1606-$(DATE)
+ / / . . .
+ / / /--- oper-rls1609-$(DATE)
+ / / / . . .
+ /--- rls1606 ---[end] /--- rls1609 ---[end]
+ / / / /
+ / (cherry-picking) / (cherry-picking)
+ / / / /
+ -- master --------------------------------------------------------------->
+ \ \ . . .
+ \ \--- oper-$(DATE)
+ \--- oper-160710
+
+## Creating a CSIT Operational Branch
+
+### Run verify weekly job
+
+`csit-vpp-device-master-<OS>-<arch>-<testbed>-weekly` is run on the CSIT
+development or release branch (e.g. 'master' or 'stable/1606') using the latest
+VPP package set on nexus.fd.io for the associated VPP branch. Any anomalies will
+have the root cause identified and be resolved in the CSIT development branch
+prior to pulling the CSIT operational branch.
+
+### Pull CSIT operational branch from parent
+
+The CSIT operational branch is pulled from the parent CSIT development or
+release branch.
+
+### Run verify semiweekly job
+
+`csit-vpp-device-master-<OS>-<arch>-<testbed>-semiweekly` is run on the CSIT
+operational branch with the latest image of the associated VPP development or
+release branch. This job is run to validate the next reference VPP build for
+validating the results of all of the csit-vpp-verify* jobs.
+
+### Update VPP branch to use the new CSIT operational branch
+
+Push a patch updating the VPP branch to use the new CSIT operational branch. The
+VPP verify jobs will then be run and any anomalies will have the root cause
+identified and fixed in the CSIT operational branch prior to 'csit-test-branch'
+being merged.
+
+### Periodically lock/deprecate old CSIT Operational Branches
+
+Periodically old CSIT operational branches will be locked and/or deprecated to
+prevent changes being made to the operational branch.