misc(ncs): Update to NCS v2.6.1 #14
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Twister | |
on: | |
pull_request: | |
types: [opened, reopened, synchronize] | |
workflow_dispatch: | |
env: | |
GIT_CREDENTIALS: ${{ secrets.GIT_CREDENTIALS }} | |
jobs: | |
twister-build: | |
name: "Run Unit Tests" | |
runs-on: ubuntu-20.04 | |
defaults: | |
run: | |
shell: bash | |
# Set work dir to "project" for all 'run' calls. Beware, everything else | |
# (actions, 'with' params, etc.) still needs to reference full path. | |
working-directory: project | |
steps: | |
- name: Checkout last PR commit | |
uses: actions/checkout@v4 | |
with: | |
ref: ${{ github.event.pull_request.head.sha }} | |
path: project | |
# This is needed due to the later east update (west update) command that | |
# could be cloning from the private repos. The provided token in | |
# GIT_CREDENTIALS needs to be a fine-grained token, with access to all | |
# repositores, with "Read-only" access level to the Content repository | |
# permissions. | |
- name: Set Git credentials | |
run: | | |
git config --global credential.helper '!f() { printf "%s\n" "username=runner" "password=$GIT_CREDENTIALS"; };f' | |
- name: Install and cache apt packages | |
if: contains(runner.name, 'Github Action') | |
uses: awalsh128/[email protected] | |
with: | |
packages: gcc-multilib lcov | |
# Update this manually when changing the packages above, increment | |
# only minor version to keep APT caches separate. | |
version: 2.0 | |
- name: Retrieve cache | |
if: contains(runner.name, 'Github Action') | |
uses: actions/cache@v4 | |
env: | |
cache-name: cache-modules | |
with: | |
path: | | |
bootloader | |
modules | |
nrf | |
nrfxlib | |
test | |
tools | |
zephyr | |
~/.local/share/east/downloads/ | |
~/.local/share/east/tooling/nrfutil | |
# Note above two lines, if we are caching entire ~/.local/share/east | |
# folder then cache action fails during download/extract step | |
key: | |
${{ runner.os }}-build-${{ env.cache-name }}-${{ | |
hashFiles('project/west.yml') }} | |
restore-keys: ${{ runner.os }}-build-${{ env.cache-name }}- | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: "3.8" | |
cache: "pip" | |
cache-dependency-path: project/scripts/requirements.txt | |
- name: Install Python dependencies | |
run: pip install -r scripts/requirements.txt | |
- name: Install dependencies | |
run: make install-dep | |
- name: Setup project | |
run: make project-setup | |
- name: Run tests | |
run: make test | |
- name: Create test report | |
if: always() | |
run: make test-report-ci | |
- name: Create coverage report | |
run: | | |
make coverage-report-ci | |
# sed command removes "project/" from the paths in coverage.info, | |
# so that the GitHub action that makes the coverage report can create | |
# proper links to the source files. | |
sed -i 's|project/||g' twister-out/coverage.info | |
- name: Upload Unit Test Results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: test-report | |
path: | | |
project/twister-out/twister-report.html | |
project/twister-out/twister.xml | |
project/twister-out/twister.log | |
- name: Upload Coverage Report | |
uses: actions/upload-artifact@v3 | |
with: | |
name: coverage-report | |
path: | | |
project/twister-out/coverage.info | |
- name: Post-build clean | |
# Only for self hosted runners | |
# Makes sure east init does not fail in the project setup | |
if: ${{ always() && !contains(runner.name, 'Github Action') }} | |
run: rm -rf ${{ github.workspace }}/.west | |
twister-test-results: | |
name: "Publish Unit Tests Results" | |
# WARNING: This step is incompatible with self-hosted runners as it uses the 'publish-unit-test-result' action. | |
# This would require us to run docker-in-docker in the self-hosted runner. | |
runs-on: ubuntu-22.04 | |
permissions: | |
contents: read | |
issues: read | |
checks: write | |
needs: twister-build | |
if: always() | |
steps: | |
- name: Download Artefacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: test-report | |
path: test-report | |
- name: Publish Unit Test Results | |
uses: EnricoMi/[email protected] | |
with: | |
check_name: Unit Test Results | |
files: test-report/twister.xml | |
comment_mode: off | |
coverage-report: | |
name: "Publish Coverage Report" | |
# NOTE: This action is not compatible with "workflow_dispatch" event, so | |
# it's not possible to run it manually. | |
runs-on: ubuntu-20.04 | |
permissions: | |
issues: write | |
pull-requests: write | |
needs: twister-build | |
if: | |
${{ github.event_name == 'push' || github.event_name == 'pull_request' }} | |
steps: | |
- name: Download Artefacts | |
uses: actions/download-artifact@v3 | |
with: | |
name: coverage-report | |
path: coverage-report | |
- name: Publish Coverage Report | |
uses: romeovs/lcov-reporter-action@4cf015aa4afa87b78238301f1e3dc140ea0e1ec6 | |
with: | |
lcov-file: ./coverage-report/coverage.info |