CI/CD Reference#
Quick reference for pipeline stages, variables, runner tags, and metrics at SKAO.
Key URLs#
Resource |
URL |
|---|---|
SKA Group |
|
Templates Repository |
|
Python Skeleton |
|
Central Artefact Repository |
|
SKA CICD Makefile |
Pipeline Stages#
All projects must include these stages:
Stage |
Description |
Output |
|---|---|---|
Build |
Compiles software into distributable units |
|
Linting |
Analyzes code statically |
Quality analysis results in JUnit format |
Test |
Runs tests on built software |
Test results in JUnit format, coverage metrics |
Publish |
Uploads artefacts to SKA software repository |
Packages in CAR |
Scan |
Scans containers for security vulnerabilities |
Security scan results in JUnit format |
Pages |
Publishes results to GitLab Pages |
HTML with pipeline test results |
Documentation |
Generates project documentation via ReadTheDocs |
HTML documentation |
Test Types#
In practice, SKAO distinguishes between unit tests — from which CI metrics are collected — and post-deployment tests, which do not feed into CI metrics.
Type |
Description |
|---|---|
Unit tests |
Test smallest units in milliseconds. Run locally without filesystem, network, or database. |
Component tests |
Test individual components in isolation. |
Integration tests |
Test interactions between components. Verify Docker images work as expected. |
Deployment tests |
Verify software deploys correctly and behaves as expected. |
Configuration tests |
Test multiple combinations of software and hardware. |
System tests |
Test complete solution with integrated hardware and software. |
Metrics Report Requirements#
Reports must follow these requirements for automated collection:
Files must not be part of the repository — create them in
testorlintingstagesUnit tests report: JUnit XML at
./build/reports/unit-tests.xmlLinting report: JUnit XML at
./build/reports/linting.xml