5 - [Overview](#overview)
6 - [Operational Branches](#operational-branches)
7 - [Release Branches](#release-branches)
11 This document describes how to create and remove git branches in CSIT project.
13 To be able to perform everything described in this file, you must be **logged
16 ## Operational Branches
18 For more information about operational branches see
19 [CSIT/Branching Strategy](https://wiki.fd.io/view/CSIT/Branching_Strategy) and
20 [CSIT/Jobs](https://wiki.fd.io/view/CSIT/Jobs) on
21 [fd.io](https://fd.io) [wiki](https://wiki.fd.io/view/CSIT) pages.
23 > Note: The branch `rls2009_lts` is used here only as an example.
27 1. The last builds of weekly and semiweekly jobs must finish with status
29 1. If any of watched jobs failed, try to find the root cause, fix it and run it
35 - [csit-vpp-device-master-ubuntu1804-1n-skx-weekly](https://jenkins.fd.io/view/csit/job/csit-vpp-device-master-ubuntu1804-1n-skx-weekly)
36 - [csit-vpp-device-master-ubuntu1804-1n-skx-semiweekly](https://jenkins.fd.io/view/csit/job/csit-vpp-device-master-ubuntu1804-1n-skx-semiweekly)
38 - [csit-vpp-device-2009_lts-ubuntu1804-1n-skx-weekly](https://jenkins.fd.io/view/csit/job/csit-vpp-device-2009_lts-ubuntu1804-1n-skx-weekly)
39 - [csit-vpp-device-2009_lts-ubuntu1804-1n-skx-semiweekly](https://jenkins.fd.io/view/csit/job/csit-vpp-device-2009_lts-ubuntu1804-1n-skx-semiweekly)
43 **A. CSIT Operational Branch**
44 1. Take the revision string from the last successful build of the **weekly**
45 job, e.g. **Revision**: 0f9b20775b4a656b67c7039e2dda4cf676af2b21.
46 1. Open [Gerrit](https://gerrit.fd.io).
48 [Browse --> Repositories --> csit --> Branches](https://gerrit.fd.io/r/admin/repos/csit,branches).
49 1. Click `CREATE NEW`.
50 1. Fill in the revision number and the name of the new operational branch. Its
51 format is: `oper-YYMMDD` for master and `oper-rls{RELEASE}-{YYMMDD}` or
52 `oper-rls{RELEASE}_lts-{YYMMDD}` for release branches.
54 1. If needed, delete old operational branches by clicking "DELETE".
56 **B. VPP Stable version**
57 1. Open the console log of the last successful **semiweekly** build and search
58 for VPP version (e.g. vpp_21 ...).
59 1. You should find the string with this structure:
60 `vpp_21.01-rc0~469-g7acab3790~b368_amd64.deb`
61 1. Modify [VPP_STABLE_VER_UBUNTU_BIONIC](../../VPP_STABLE_VER_UBUNTU_BIONIC)
62 and [VPP_STABLE_VER_CENTOS](../../VPP_STABLE_VER_CENTOS) files.
63 1. Use a string with the build number, e.g. `21.01-rc0~469_g7acab3790~b129`
64 for [VPP_STABLE_VER_CENTOS](../../VPP_STABLE_VER_CENTOS) and a string
65 without the build number, e.g. `21.01-rc0~469_g7acab3790` for
66 [VPP_STABLE_VER_UBUNTU_BIONIC](../../VPP_STABLE_VER_UBUNTU_BIONIC).
67 1. Update the stable versions in master and in all LTS branches.
71 > Note: VPP release 21.01 is used here only as an example.
75 1. VPP release manager sends the information email to announce that the RC1
76 milestone for VPP {release}, e.g. 21.01, is complete, and the artifacts are
78 1. The artifacts (*.deb and *.rpm) should be available at
79 `https://packagecloud.io/fdio/{release}`. For example see artifacts for the
80 [VPP release 20.01](https://packagecloud.io/fdio/2101). The last available
82 1. All CSIT patches for the release are merged in CSIT master branch.
88 1. Open [Gerrit](https://gerrit.fd.io).
90 [Browse --> Repositories --> csit --> Branches](https://gerrit.fd.io/r/admin/repos/csit,branches).
91 1. Save the revision string of master for further use.
92 1. Click `CREATE NEW`.
93 1. Fill in the revision number and the name of the new release branch. Its
94 format is: `rlsYYMM`, e.g. rls2101.
99 See ["Add CSIT rls2101 branch"](https://gerrit.fd.io/r/c/ci-management/+/30439)
100 and ["Add report jobs to csit rls2101 branch"](https://gerrit.fd.io/r/c/ci-management/+/30462)
101 patches as an example.
103 1. [csit.yaml](https://github.com/FDio/ci-management/blob/master/jjb/csit/csit.yaml):
104 Documentation of the source code and the Report
105 - Add release branch (rls2101) for `csit-docs-merge-{stream}` and
106 `csit-report-merge-{stream}` (project --> stream).
107 1. [csit-perf.yaml](https://github.com/FDio/ci-management/blob/master/jjb/csit/csit-perf.yaml):
109 - Add release branch (rls2101) to `project --> jobs -->
110 csit-vpp-perf-verify-{stream}-{node-arch} --> stream`.
111 - Add release branch (rls2101) to `project --> project: 'csit' --> stream`.
112 - Add release branch (rls2101) to `project --> project: 'csit' --> stream_report`.
113 1. [csit-tox.yaml](https://github.com/FDio/ci-management/blob/master/jjb/csit/csit-tox.yaml):
115 - Add release branch (rls2101) to `project --> stream`.
116 1. [csit-vpp-device.yaml](https://github.com/FDio/ci-management/blob/master/jjb/csit/csit-vpp-device.yaml):
118 - Add release branch (rls2101) to `project --> jobs (weekly / semiweekly) --> stream`.
119 - Add release branch (rls2101) to `project --> project: 'csit' --> stream`.
121 **C. VPP Stable version**
124 [Update of VPP_REPO_URL and VPP_STABLE_VER files](https://gerrit.fd.io/r/c/csit/+/30461)
126 [rls2101: Update VPP_STABLE_VER files to release version](https://gerrit.fd.io/r/c/csit/+/30976)
129 1. Find the last successful build on the
130 [Package Cloud](https://packagecloud.io) for the release, e.g.
131 [VPP release 20.01](https://packagecloud.io/fdio/2101).
132 1. Clone the release branch to your PC:
133 `git clone --depth 1 ssh://<user>@gerrit.fd.io:29418/csit --branch rls{RELEASE}`
134 1. Modify [VPP_STABLE_VER_UBUNTU_BIONIC](../../VPP_STABLE_VER_UBUNTU_BIONIC)
135 and [VPP_STABLE_VER_CENTOS](../../VPP_STABLE_VER_CENTOS) files with the last
137 1. Modify [VPP_REPO_URL](../../VPP_REPO_URL) to point to the new release, e.g.
138 `https://packagecloud.io/install/repositories/fdio/2101`.
139 1. You can also modify the [.gitreview](../../.gitreview) file and set the new
141 1. Wait until the verify jobs
142 - [csit-vpp-device-2101-ubuntu1804-1n-skx](https://jenkins.fd.io/job/csit-vpp-device-2101-ubuntu1804-1n-skx)
143 - [csit-vpp-device-2101-ubuntu1804-1n-tx2](https://jenkins.fd.io/job/csit-vpp-device-2101-ubuntu1804-1n-tx2)
145 successfully finish and merge the patch.
147 **D. CSIT Operational Branch**
149 1. Manually start (Build with Parameters) the weekly job
150 [csit-vpp-device-2101-ubuntu1804-1n-skx-weekly](https://jenkins.fd.io/view/csit/job/csit-vpp-device-2101-ubuntu1804-1n-skx-weekly)
151 1. When it successfully finishes, take the revision string e.g. **Revision**:
152 876b6c1ae05bfb1ad54ff253ea021f3b46780fd4 to create a new operational branch
154 1. Open [Gerrit](https://gerrit.fd.io).
156 [Browse --> Repositories --> csit --> Branches](https://gerrit.fd.io/r/admin/repos/csit,branches).
157 1. Click `CREATE NEW`.
158 1. Fill in the revision number and the name of the new operational branch. Its
159 format is: `oper-rls{RELEASE}-YYMMDD` e.g. `oper-rls2101-201217`.
161 1. Manually start (Build with Parameters) the semiweekly job
162 [csit-vpp-device-2101-ubuntu1804-1n-skx-semiweekly](https://jenkins.fd.io/view/csit/job/csit-vpp-device-2101-ubuntu1804-1n-skx-semiweekly)
163 1. When it successfully finishes check in console log if it used the right VPP
164 version (search for `VPP_VERSION=`) from the right repository (search for
169 If everything is as it should be, send the announcement email to
170 `csit-dev@lists.fd.io` mailing list.
176 CSIT rls2101 branch pulled out
181 CSIT rls2101 branch [0] is created and fully functional.
183 Corresponding operational branch (oper-rls2101-201217) has been created too.
185 We are starting dry runs for performance ndrpdr iterative tests to get initial
186 ndrpdr values with available rc1 packages as well as to test all the infra
187 before starting report data collection runs.
192 [0] https://git.fd.io/csit/log/?h=rls2101