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.ymlandtarget-test.yml. - .github/workflows/sonarcloud.yml: For building and running tests in emulation, and for running the 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 that the template uploads to Nordic Semiconductor's official documentation site.
The following events trigger the CI pipeline:
- Pull request: Runs
build.yml,sonarcloud.yml, andcompliance.yml. The pipeline runs no target tests on a pull request, to avoid instabilities. - Push to main: Runs
build-and-target-test.yml,sonarcloud.yml, anddoc-sync.yml. The pipeline runs only the fast target tests, which avoids excessively time-consuming tests. - Nightly: Runs
build-and-target-test.ymlwith the full set of target tests. This includes slow tests, such as the full modem FOTA test and the application and MCUboot bootloader FOTA tests.