... | ... | @@ -22,7 +22,7 @@ |
|
|
4. [eNB test servers](#24-enb-test-servers)
|
|
|
5. [UE control servers](#25-ue-control-servers)
|
|
|
3. [Jobs description](#3-jobs-description)
|
|
|
1. [eNB Master Job](#31-enb-master-job)
|
|
|
1. [eNB Master Job](ci/enb master job)
|
|
|
2. [eNB Slave Jobs](#32-enb-slave-jobs)
|
|
|
|
|
|
# 1. Introduction #
|
... | ... | @@ -114,56 +114,3 @@ Currently on 4G LTE COTS-UE, we are using Android 7+ smartphones. Given that cho |
|
|
CPU load is negligeable.
|
|
|
|
|
|
We are planning to have several Faraday Cages with different kinds of UEs when available (nbIOT, catM, 5G-NR...) |
|
|
|
|
|
# 3. Jobs description #
|
|
|
|
|
|
## 3.1. eNB Master Job ##
|
|
|
|
|
|
Currently it is hosted on the CI Jenkins server on [this job/item](https://oailab.eurecom.fr:8083/jenkins/job/eNb-CI/).
|
|
|
|
|
|
A build is automatically triggered on this job by actions on the OAI eNB GitLab repository. See the [repository integrations page](https://gitlab.eurecom.fr/oai/openairinterface5g/settings/integrations) for more details.
|
|
|
|
|
|
The eNB-CI master job is configured to start when:
|
|
|
|
|
|
- a push is made to `develop` branch
|
|
|
- a merge-request to the `develop` branch is opened.
|
|
|
- when extra commits are pushed to the source branch of an already opened merge request
|
|
|
|
|
|
The last one allows developers to fix issues on their working branch when requested by CI administrator or integrators.
|
|
|
|
|
|
The eNB-CI master job may be configured without any parameter. In that case no social media notifications (such as Slack, Mattermost, ...) is performed.
|
|
|
|
|
|
At time of writing, the eNB-CI master job hosted at Eurecom is using the following parameters:
|
|
|
|
|
|
- **pipelineUsesSlack** : the master job will send notifications to OAI Slack workspace
|
|
|
- **RedHatRemoteServer**
|
|
|
- **RedHatRemoteCredentials**
|
|
|
- **RedHatWorkingPath** : temporaly CentOS build is done on a real server and not a virtual machine. These parameters will be removed once VM CentOS build is available.
|
|
|
|
|
|
**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.**
|
|
|
|
|
|
### 3.1.1 Declarative Pipeline Script ###
|
|
|
|
|
|
The script is written in `Groovy`, a Java-derivative language, using the Declarative Pipeline syntax. It does not prevent us to use some Scripted Pipeline syntax elements when needed.
|
|
|
|
|
|
The first few blocks are written to:
|
|
|
|
|
|
- Specify the node to work on
|
|
|
- Specify some generic options such as timestamping, using AnsiColor, preparing the connection with the GitLab server.
|
|
|
- Using gitlabBuilds keyword with a set of stages sends a message to the GitLab server. The latter performs the following steps:
|
|
|
- Create a GitLab pipeline
|
|
|
- Associate this pipeline with the corresponding commit or Merge-Request that triggered the Jenkins job
|
|
|
- Associate this GitLab pipeline with the Jenkins master job
|
|
|
- Create an `external job` for each stage specified and put them in a `pending` stage.
|
|
|
|
|
|
### 3.1.2 Verify Parameter stage ###
|
|
|
|
|
|
In this stage we are verifying the parameters are consistent.
|
|
|
|
|
|
At the time of writing:
|
|
|
|
|
|
- Redhat - CentOS parameter check: if 3 needed parameters are present in the Jenkins Master job configuration, CentOS build will be performed on a remote CentOS server. If not, no CentOS build will be scheduled.
|
|
|
|
|
|
## 3.2. eNB Slave Jobs ## |