============================ CI Pipeline Configuration ============================ The CI pipeline builds the documentation, checks whether the testsuite python package can be installed and runs the :doc:`functional_tests/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. `_ .. image:: 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 :doc:`test_parameter` If a list is given to any of these arguments a combination of all parameters are used. Creating a matrix of tests.