Skip to content

Storage flash backend #1243

Storage flash backend

Storage flash backend #1243

Workflow file for this run

name: Sonarcloud and Twister Native Sim
on:
push:
branches:
- main
paths-ignore:
- ".github/workflows/docs-build-and-publish.yml"
- "docs/**"
pull_request:
paths:
- '**/*.c'
- '**/*.h'
- west.yml
- '**/CMakelists.txt'
- '**/Kconfig*'
- '**/prj.conf'
jobs:
build:
name: Build and analyze
runs-on: build_self_hosted
container: ghcr.io/zephyrproject-rtos/ci:v0.27.4
env:
BUILD_WRAPPER_OUT_DIR: build_wrapper_output_directory # Directory where build-wrapper output will be placed
CMAKE_PREFIX_PATH: /opt/toolchains
steps:
- uses: actions/checkout@v4
if: github.event_name == 'pull_request'
with:
ref: ${{ github.event.pull_request.head.sha }}
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
path: asset-tracker-template
- uses: actions/checkout@v4
if: github.event_name != 'pull_request'
with:
fetch-depth: 0 # Shallow clones should be disabled for a better relevancy of analysis
path: asset-tracker-template
- name: Initialize
working-directory: asset-tracker-template
run: |
if [ ! -d "../.west" ]; then
west init -l .
else
echo ".west folder already exists, skipping west init."
fi
west update -o=--depth=1 -n
- name: Install dependencies
run: |
# The Matter IDL is part of requirements-build.txt, but it's not available
# in pypi so we need to install it from the source code
MATTER_IDL_PATH=modules/lib/matter/scripts/py_matter_idl
if [ -d $MATTER_IDL_PATH ]; then
pip install -e $MATTER_IDL_PATH
fi
pip install -r nrf/scripts/requirements-fixed.txt
apt-get update
apt install -y curl ruby-full
- name: Run tests with ASAN, no Sonarcloud and build_wrapper
working-directory: asset-tracker-template
run: |
west twister -T tests/ --enable-coverage --coverage-platform=native_sim -v --inline-logs --integration --enable-asan --enable-lsan --enable-ubsan
- name: Install Build Wrapper
uses: SonarSource/sonarqube-scan-action/[email protected]
- name: Build and test
working-directory: asset-tracker-template
run: |
build-wrapper-linux-x86-64 --out-dir ${{ env.BUILD_WRAPPER_OUT_DIR }} west twister -T tests/ --enable-coverage --coverage-platform=native_sim -v --inline-logs --integration
- name: Extract coverage into sonarqube xml format
working-directory: asset-tracker-template
run: |
gcovr twister-out -v --merge-mode-functions=separate --exclude='twister-out|drivers' --sonarqube coverage.xml
- name: SonarQube Scan on main
if: github.event_name != 'pull_request'
uses: SonarSource/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
with:
args: |
--define sonar.cfamily.build-wrapper-output=asset-tracker-template/${{ env.BUILD_WRAPPER_OUT_DIR }}
--define sonar.projectKey=nrfconnect_Asset-Tracker-Template
--define sonar.organization=nrfconnect
--define sonar.host.url=https://sonarcloud.io
--define sonar.coverageReportPaths=coverage.xml
--define sonar.inclusions=**/*.c,**/*.h
--define sonar.exclusions=tests/,drivers/sensor/*_dummy/
projectBaseDir: asset-tracker-template
- name: SonarQube Scan on PR
if: github.event_name == 'pull_request'
uses: SonarSource/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
PR_NUMBER: ${{ github.event.pull_request.number }}
PR_BRANCH: ${{ github.event.pull_request.head.ref }}
BASE_REF: ${{ github.event.pull_request.base.ref }}
HEAD_SHA: ${{ github.event.pull_request.head.sha }}
with:
args: |
--define sonar.cfamily.build-wrapper-output=asset-tracker-template/${{ env.BUILD_WRAPPER_OUT_DIR }}
--define sonar.projectKey=nrfconnect_Asset-Tracker-Template
--define sonar.organization=nrfconnect
--define sonar.host.url=https://sonarcloud.io
--define sonar.coverageReportPaths=coverage.xml
--define sonar.inclusions=**/*.c,**/*.h
--define sonar.exclusions=tests/,drivers/sensor/*_dummy/
--define sonar.scm.revision=${{ env.HEAD_SHA }}
--define sonar.pullrequest.key=${{ env.PR_NUMBER }}
--define sonar.pullrequest.branch=${{ env.PR_BRANCH }}
--define sonar.pullrequest.base=${{ env.BASE_REF }}
projectBaseDir: asset-tracker-template