Build Zephyr samples with Twister #2827
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
# Copyright (c) 2022-2023 Nordic Semiconductor ASA | |
# SPDX-License-Identifier: Apache-2.0 | |
name: Build Zephyr samples with Twister | |
# Workflow triggers on PRs, pushes to main, once per day at midnight and can be started manually. | |
on: | |
# By default, pull_request includes: opened, synchronize, or reopened | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
schedule: | |
- cron: 0 0 * * * | |
# When triggered manually, ask for Zephyr and MCUBoot versions to check out | |
workflow_dispatch: | |
inputs: | |
version_zephyr: | |
description: 'Which Zephyr version to checkout?' | |
required: true | |
default: 'main' | |
version_mcuboot: | |
description: 'Which MCUBoot version to checkout?' | |
required: true | |
default: 'main' | |
env: | |
ZEPHYR_VERSION: 'main' | |
MCUBOOT_VERSION: 'main' | |
# Only cancel ongoing runs for PRs | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} | |
cancel-in-progress: true | |
jobs: | |
build_zephyr_with_twister: | |
runs-on: ubuntu-latest | |
# Docker image from the zephyr upstream. Includes SDK and other required tools | |
container: | |
image: zephyrprojectrtos/ci:v0.26.4 | |
options: '--entrypoint /bin/bash' | |
volumes: | |
- /home/runners/zephyrproject:/github/cache/zephyrproject | |
env: | |
ZEPHYR_SDK_INSTALL_DIR: /opt/toolchains/zephyr-sdk-0.16.1 | |
steps: | |
- name: Set versions when workflow_dispatch | |
if: github.event_name == 'workflow_dispatch' | |
run: | | |
echo "ZEPHYR_VERSION=${{ github.event.inputs.version_zephyr }}" >> $GITHUB_ENV | |
echo "MCUBOOT_VERSION=${{ github.event.inputs.version_mcuboot }}" >> $GITHUB_ENV | |
- name: Set versions when pull_request | |
if: github.event_name == 'pull_request' | |
run: | | |
echo "MCUBOOT_VERSION=${{ github.event.pull_request.head.sha }}" >> $GITHUB_ENV | |
- name: Checkout Zephyr | |
uses: actions/checkout@v2 | |
with: | |
repository: 'zephyrproject-rtos/zephyr' | |
ref: ${{ env.ZEPHYR_VERSION }} | |
path: 'repos/zephyr' | |
- name: Setup Zephyr | |
working-directory: repos/zephyr | |
run: | | |
west init -l . | |
west update | |
- name: Checkout MCUBoot | |
uses: actions/checkout@v2 | |
with: | |
repository: 'mcu-tools/mcuboot' | |
ref: ${{ env.MCUBOOT_VERSION }} | |
path: 'repos/bootloader/mcuboot' | |
- name: Run Twister tests | |
working-directory: repos/zephyr | |
env: | |
test_paths: > | |
-T ../bootloader/mcuboot/boot/zephyr | |
-T ./tests/subsys/dfu | |
-T ./samples/subsys/mgmt/mcumgr/smp_svr | |
run: | | |
export ZEPHYR_BASE=${PWD} | |
export ZEPHYR_TOOLCHAIN_VARIANT=zephyr | |
echo "Using Zephyr version: ${{ env.ZEPHYR_VERSION }}" | |
echo "Using Mcuboot version: ${{ env.MCUBOOT_VERSION }}" | |
./scripts/twister --inline-logs -v -N -M --integration --overflow-as-errors --retry-failed 2 ${test_paths} | |
- name: Upload Tests Results | |
uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: Tests Results | |
if-no-files-found: ignore | |
path: | | |
repos/zephyr/twister-out/twister.xml |