CI Pipeline Configuration

The CI pipeline builds the documentation, checks whether the testsuite python package can be installed and runs the Functional tests

The CI pipeline stages are:

  • build - builds the read the docs

  • lint - checks the python linting

  • compile - checks the testsuite python compiles

  • hardware_deploy - deploys the functional tests onto hardware

  • .post - creates the CI badges

To manually run a custom pipeline:

  1. Select Build > Pipelines.

  2. Select New pipeline.

_images/ci_new_pipeline.png

You can change the following options:

  • CI_TPM_API_BRANCH - branch of ska-low-sps-tpm-api used in the CI hardware_deploy stage

  • CI_DAQ_BRANCH - branch of ska-low-mccs-daq used in the CI hardware_deploy stage

  • CI_DAQ_CORE_BRANCH - branch of aavs-daq used in the CI hardware_deploy stage

  • LOG_LEVEL - pytest log level used in the CI hardware_deploy stage

  • CI_HARDWARE_DEPLOY_OPTIONS - Configuration options used in the CI hardware_deploy stage (see below)

CI Hardware Deployment Testing Options

This is predominantly used to schedule soak testing and canary builds using scheduled GitLab CI pipelines.

This requires a list of dictionaries with the following arguments:

  • STATIONS - number of stations tested. This requires a unique network interface per station. Currently only a single station is supported.

  • TPM_PER_STATION - number of TPMs per station tested

  • BANDWIDTH - beamformer bandwidth configured during test execution, maximum is 300 MHz

  • START_BEAMFORMER - states whether the beamformer is started on initialisation

  • LMC_VIA_SDN - states whether the LMC data is transferred over the 40G rather than the 1G

  • LMC_INTEGRATED_VIA_SDN - states whether the LMC Integrated data is transferred over the 40G rather than the 1G

  • SUBRACKS - a string list of subracks that will be used in the CI e.g. “[‘subrack_5’]”

  • TPM_SELECTION_METHOD - method for selecting what TPMs to use. Available modes: “distributed” or “fill-up”

  • TEST_PARAMS - requires a list of strings. These strings represent dictionaries of the contents of the Test Parameters YAML

If a list is given to any of these arguments a combination of all parameters are used. Creating a matrix of tests.