Add Packer Nitrogen SR2 config file
[integration/packaging.git] / docs / autorelease-builds.rst
1 Autorelease Builds
2 ==================
3
4 OpenDaylight's primary build pipeline is called "autorelease". It is managed by
5 the `RelEng/Autorelease`_ project, and primarily takes the form of
6 `Autorelease's Jenkins jobs`_.
7
8 Autorelease builds every project from source. Artifact versions are rewritten
9 from the -SNAPSHOT suffixes in version control to release versions, like
10 -Carbon-SR1 or -Nitrogen. This contrasts with distribution jobs, which build
11 only a few projects from source and use -SNAPSHOT artifact versions. This makes
12 autorelesae builds slow, but identical to actual releases, whereas distribution
13 builds are fast but slightly less similar to official releases.
14
15 Daily Releases
16 --------------
17
18 `Autorelease's Jenkins jobs`_ run daily for every active branch, including
19 master.
20
21 - `Boron autorelease job`_
22 - `Carbon autorelease job`_
23 - `Nitrogen autorelease job`_
24
25 Each of those jobs, when the build is successful, produces build artifacts that
26 include an OpenDaylight distribution. To download the distribution, pick an
27 autorelease job that completed successfully (yellow or blue dot) and access its
28 logged console output. Logs are hosted on logs.opendaylight.org, at URLs like
29 `https://logs.opendaylight.org/releng/jenkins092/autorelease-release-<stream>/
30 <build_number>/`, where stream could be "boron" build_number "228". There will
31 be a link at the top of build's Jenkins page. Open `console.log.gz` in browser
32 and search for "staging repository with ID". Find the repositoiry ID, which
33 will be of the form "autorelease-1432". Navigate to `OpenDaylight's Nexus`_ and
34 find the staging repository with the same name. Drill down into the directory
35 tree org/opendaylight/integration/distribution-karaf/ to find the build
36 artifacts. Autorelease build artifacts are persevered for 60 days.
37
38 Autorelease jobs trigger OpenDaylight's distribution tests when they complete.
39 To see the test results, go to integration-distribution-test-<branch> job's
40 Jenkins page and find the job that started after the autorelease in question
41 finished. Open it and explore the subprojects section for test results of all
42 the jobs triggered. For example, in case of Nitrogen, you can find the list and
43 the results of jobs triggered `here`_.
44
45 The latest successful autorelease builds can also be easily found in Nexus at
46 `staging/org/opendaylight/integration/distribution-karaf/`_. Look for
47 0.5.4-Boron-SR4, 0.6.1-Carbon-SR1, 0.7.0-Nitrogen or similar staging
48 repositories. Note that the artifacts in these repositories are not
49 static - they are replaced each time new artifacts are generated. Use the
50 "autorelease-XXXX" repositories described above for semi-persistent URLs.
51
52
53 Official Releases
54 -----------------
55
56 As a part of the OpenDaylight community's efforts to move towards Continuous
57 Delivery, there is very little mechanical difference between the automated
58 daily releases documented above and official releases. The same autorelease
59 job runs, builds artifacts and kicks off distribution tests against them. When
60 doing official releases, the OpenDaylight community iterates through those
61 builds (calling them Release Candidate 1, RC2, ...) until no blocking bugs are
62 found. The OpenDaylight Technical Steering Committee then hears feedback from
63 the Release Engineering and Integration/Test teams, and if all's well blesses
64 the build as an official release. The build's Nexus staging repo is then
65 promoted to a release repo and publicized (example: `opendaylight.release/org
66 /opendaylight/integration/distribution-karaf/0.6.0-Carbon`_). Official
67 releases are persevered forever.
68
69 For more information about OpenDaylight releases, including timelines, see the
70 `Release Plans`_.
71
72
73 .. _RelEng/Autorelease: https://git.opendaylight.org/gerrit/gitweb?p=releng/autorelease.git;a=tree;h=refs/heads/master;hb=refs/heads/master
74 .. _Autorelease's Jenkins jobs: https://jenkins.opendaylight.org/releng/view/autorelease/
75 .. _Boron autorelease job: https://jenkins.opendaylight.org/releng/view/autorelease/job/autorelease-release-boron/
76 .. _Carbon autorelease job: https://jenkins.opendaylight.org/releng/view/autorelease/job/autorelease-release-carbon/
77 .. _Nitrogen autorelease job: https://jenkins.opendaylight.org/releng/view/autorelease/job/autorelease-release-nitrogen/
78 .. _OpenDaylight's Nexus: https://nexus.opendaylight.org/content/repositories/
79 .. _here: https://jenkins.opendaylight.org/releng/job/integration-distribution-test-nitrogen/
80 .. _staging/org/opendaylight/integration/distribution-karaf/: https://nexus.opendaylight.org/content/repositories/staging/org/opendaylight/integration/distribution-karaf/
81 .. _opendaylight.release/org /opendaylight/integration/distribution-karaf/0.6.0-Carbon: https://nexus.opendaylight.org/content/repositories/opendaylight.release/org/opendaylight/integration/distribution-karaf/0.6.0-Carbon/
82 .. _Release Plans: https://wiki.opendaylight.org/view/Release_Plan