... | ... | @@ -20,6 +20,9 @@ |
|
|
1. [Verify Parameter stage](#31-verify-parameter-stage)
|
|
|
2. [Verify Guidelines stage](#32-verify-guidelines-stage)
|
|
|
3. [Start Virtual Machine stages](#33-start-virtual-machine-stages)
|
|
|
4. [Build stages](#34-build-stages)
|
|
|
5. [Test stages](#35-test-stages)
|
|
|
6. [Destroy all VMs stage](#36-destroy-all-vms-stage)
|
|
|
|
|
|
# 1. Introduction #
|
|
|
|
... | ... | @@ -50,7 +53,11 @@ At time of writing, the eNB-CI master job hosted at Eurecom is using the followi |
|
|
|
|
|
**IMPORTANT: the Jenkins Declarative Pipeline script file is retrieved from Source Control Management (SCM) under GIT w/ the `develop` branch.**
|
|
|
|
|
|
**It means that a temporary clone of the openairinterface5g repository is made on the latest version of `develop` branch to retrieve one file: `ci-scripts/Jenkinsfile-gitlab`. This file will be loaded by the Jenkins master job and executed. During a Merge-Request, if modifications to this particular file are made, they WON'T taken into account.**
|
|
|
**It means that a temporary clone of the openairinterface5g repository is made on the latest version of `develop` branch to retrieve one file: `ci-scripts/Jenkinsfile-gitlab`.**
|
|
|
|
|
|
This file will be loaded by the Jenkins master job and executed.
|
|
|
|
|
|
**During a Merge-Request, if modifications to this particular file are made, they WON'T be taken into account.**
|
|
|
|
|
|
# 3. Declarative Pipeline Script #
|
|
|
|
... | ... | @@ -115,4 +122,31 @@ At the time of writing, errors and warnings detected by this method are not a bl |
|
|
|
|
|
When all variant builds, an HTML report is generated (like [this one](../documents/build_results.html)) and added to the job artifacts with all compilation logs.
|
|
|
|
|
|
Also in case of a Merge-Request, a script is analysing if the contributor did not introduce new compilation warnings. In that case, a comment in the Merge-Request discussion is added with the list of impacted files. |
|
|
\ No newline at end of file |
|
|
Also in case of a Merge-Request, a script is analysing if the contributor did not introduce new compilation warnings. In that case, a comment in the Merge-Request discussion is added with the list of impacted files.
|
|
|
|
|
|
## 3.5. Test stages ##
|
|
|
|
|
|
Within the VM, testing that do not require HW resources (such as RF boards and COTS-UE) is performed.
|
|
|
|
|
|
At time of writing the list of performed tests are:
|
|
|
|
|
|
- Physical simulators
|
|
|
- Basic simulator
|
|
|
|
|
|
When testing requires HW resources, the testing is deported to a slave job. See this [page](ci/enb-slave-jobs) for more details.
|
|
|
|
|
|
If slave jobs share the same resources (like EPC and/or UEs), they should be run sequentially. Otherwise they can be run in parallel.
|
|
|
|
|
|
Normally an HTML report is created by each slave job. The master job should retrieve and archives them.
|
|
|
|
|
|
## 3.6. Destroy all VMs stage ##
|
|
|
|
|
|
At this stage, all build/test logs should have be retrieved from the Virtual Machines. They can be stopped and their images removed from the file system.
|
|
|
|
|
|
This stage could be done in case of failure also at the end of the pipeline in the final post block.
|
|
|
|
|
|
## 3.7. Final post block ##
|
|
|
|
|
|
Based on the status of all stages, a pass/fail message is added to the comment of the merge request.
|
|
|
|
|
|
If social media messaging is enabled, a message can be sent to such a platform (like Slack, Mattermost, ...) |
|
|
\ No newline at end of file |