The CI pipeline is composed of the following workflows:
- .github/workflows/build.yml: For building the device's firmware.
- .github/workflows/target-test.yml: For running tests on real hardware.
- .github/workflows/build-and-target-test.yml: Workflow that glues together build.yml and target-test.yml.
- .github/workflows/sonarcloud.yml: For building and running tests on emulation, and running Sonarcloud analysis.
- .github/workflows/compliance.yml: For static compliance checks.
- .github/workflows/doc-sync.yml: For publishing documentation to Nordic Semiconductor's external documentation platform.
- .github/workflows/create-doc-bundle.yml: Creates the documentation bundle uploaded to Nordic Semiconductor's official documentation site.
The CI pipeline is triggered as follows:
- Pull Request:
build.yml,sonarcloud.yml,compliance.yml. No target tests are run on PR to avoid instabilities. - Push to main:
build-and-target-test.yml,sonarcloud.yml,doc-sync.yml. Only "fast" target tests are run. Avoiding excessively time-consuming tests. - Nightly:
build-and-target-test.yml. Full set of target tests. Includes slow tests such as the full modem FOTA test, application, and bootloader (MCUboot) FOTA.