diff options
Diffstat (limited to 'docs/content')
-rw-r--r-- | docs/content/overview/csit/_index.md | 1 | ||||
-rw-r--r-- | docs/content/overview/csit/branching_strategy.md | 109 |
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. |