Update description of new package building and publishing system
Change-Id: I4eda15007f456229ef836a003f1f13a3c611e7f3
This commit is contained in:
parent
12ba603294
commit
2e7d6b2855
@ -46,19 +46,33 @@ Proposed flow for change requests to MOS packages code and/or spec is below:
|
|||||||
|
|
||||||
* Change request is proposed for code review to Gerrit
|
* Change request is proposed for code review to Gerrit
|
||||||
* Change request parameters (repository name, branch, change ID) are passed
|
* Change request parameters (repository name, branch, change ID) are passed
|
||||||
to the Jenkins job that fetches sources and specs from Gerrit and pushes
|
by Zuul to the Jenkins *build* job that fetches sources and specs from
|
||||||
sources and specs to the build system in a respective format (SRPM for
|
Gerrit and pushes sources and specs to the build system in a respective
|
||||||
RPM packages, and unpacked sources for DEB packages)
|
format (SRPM for RPM packages, and unpacked sources for DEB packages)
|
||||||
* Package (or packages) is built from resulting sources and specs by the
|
* On success *build* job triggers in series *publish* job, and then test jobs -
|
||||||
build system and placed into a test repository. Test repository location
|
*install* and *systest*. If any of is jobs failed, next jobs are not run and
|
||||||
|
*build* job fails
|
||||||
|
* *publish* job moves package (or packages), built from resulting sources and
|
||||||
|
specs by the build system, into a test repository. Test repository location
|
||||||
is created as a Jenkins job artifact
|
is created as a Jenkins job artifact
|
||||||
* Test repository is run through automated functional and integration tests
|
* Test repository is run through *install* test - all built packages are
|
||||||
|
installed and removed one by one
|
||||||
|
* Test repository is run through *systest* test - built packages are used to
|
||||||
|
deploy some set of servers.
|
||||||
* Change request is peer-reviewed
|
* Change request is peer-reviewed
|
||||||
* Change request is accepted or rejected by core team
|
* Change request is accepted or rejected by core team
|
||||||
* Change request is rebased and run through pre-merge automated checks
|
* Change request is rebased and run through pre-merge automated checks -
|
||||||
|
*gate* job [3]_. Because *gate* job should check several change requests at
|
||||||
|
once, a set of *build* jobs are triggered with parameters preventing tests,
|
||||||
|
so each *build* job triggers only *publish* job
|
||||||
|
* If all *build* jobs are succeed then *gate* job triggers *systest* job using
|
||||||
|
all created repositories at once to check together packages built by
|
||||||
|
several jobs
|
||||||
* Change request is merged or rejected
|
* Change request is merged or rejected
|
||||||
* Merge event from Gerrit is picked up by Jenkins job that places built
|
* Merge event from Gerrit is picked up by Zuul to run Jenkins *build* job that
|
||||||
packages to the internal repository and signes them (for RPM - a package
|
builds final package and publish it to released repository. *publish* job
|
||||||
|
detects if change request is merged, selects appropriate repository, puts
|
||||||
|
packages to selected repository, and signes them (for RPM - a package
|
||||||
itself, for DEB - repository metadata)
|
itself, for DEB - repository metadata)
|
||||||
* Repository with rebuilt package is propagated to the external MOS mirrors
|
* Repository with rebuilt package is propagated to the external MOS mirrors
|
||||||
by the means of Jenkins job that uses transactional syncronization
|
by the means of Jenkins job that uses transactional syncronization
|
||||||
@ -76,12 +90,14 @@ Automated functional and integration tests
|
|||||||
------------------------------------------
|
------------------------------------------
|
||||||
Each package built into a test repository will undergo the following tests:
|
Each package built into a test repository will undergo the following tests:
|
||||||
|
|
||||||
#. *Basic syntax test* (rpmlint and lintian, for RPM and DEB packages,
|
Basic syntax test
|
||||||
respectively)
|
rpmlint and lintian, for RPM and DEB packages, respectively
|
||||||
#. *Basic package health test.* Uses plain VM with respective OS type that
|
Basic package health test - *install* job
|
||||||
|
Uses plain VM with respective OS type that
|
||||||
contains only the minimal set of packages. Package install, run basic
|
contains only the minimal set of packages. Package install, run basic
|
||||||
shell script, and uninstall tests are performed.
|
shell script, and uninstall tests are performed.
|
||||||
#. *Full system test.* All packages are tested using the same
|
Full system test - *systest* job
|
||||||
|
All packages are tested using the same
|
||||||
scenarios that are used in current BVT tests on the Product CI. In
|
scenarios that are used in current BVT tests on the Product CI. In
|
||||||
order to keep the actual test run as short and reliable as
|
order to keep the actual test run as short and reliable as
|
||||||
possible, the VM snapshots for Fuel master node and cluster nodes
|
possible, the VM snapshots for Fuel master node and cluster nodes
|
||||||
@ -95,21 +111,21 @@ Each package built into a test repository will undergo the following tests:
|
|||||||
Depending on the package flavor, there are different artifacts that could be
|
Depending on the package flavor, there are different artifacts that could be
|
||||||
supplied to the integration test job.
|
supplied to the integration test job.
|
||||||
|
|
||||||
#. RPM and DEB packages for clusters. Test repository is added to the
|
- RPM and DEB packages for clusters. Test repository is added to the
|
||||||
Nailgun with highest priority (in terms of a respective package
|
Nailgun with highest priority (in terms of a respective package
|
||||||
manager).
|
manager).
|
||||||
|
|
||||||
#. Fuel Master host OS packages. Rebuilding of a Fuel ISO with an extra test
|
- Fuel Master host OS packages. Rebuilding of a Fuel ISO with an extra test
|
||||||
repository and redeployment of Fuel Master node must precede the system
|
repository and redeployment of Fuel Master node must precede the system
|
||||||
test.
|
test.
|
||||||
|
|
||||||
#. Fuel bootstrap packages. Rebuilding of bootstrap package and
|
- Fuel bootstrap packages. Rebuilding of bootstrap package and
|
||||||
installing it on the Fuel Master node created from snapshot prepared
|
installing it on the Fuel Master node created from snapshot prepared
|
||||||
ahead precedes the system test.
|
ahead precedes the system test.
|
||||||
|
|
||||||
#. Fuel Docker container packages. Rebuilding of Fuel Docker containers
|
- Fuel Docker container packages. Rebuilding of Fuel Docker containers
|
||||||
late-package and installing it on the Fuel Master node created from
|
late-package and installing it on the Fuel Master node created from
|
||||||
snapshot prepared ahead precedes the system test.
|
snapshot prepared ahead precedes the system test.
|
||||||
|
|
||||||
All tests will be running in parallel. In case if basic package health test
|
All tests will be running in parallel. In case if basic package health test
|
||||||
for a given patch set is failed, the respective full system test must be
|
for a given patch set is failed, the respective full system test must be
|
||||||
|
Loading…
Reference in New Issue
Block a user