# Copyright (c) 2020 Intel Corporation. # SPDX-License-Identifier: Apache-2.0 name: Twister TestSuite on: push: branches: - main - v*-branch - collab-* paths: - 'scripts/pylib/**' - 'scripts/twister' - 'scripts/tests/twister/**' - '.github/workflows/twister_tests.yml' - 'scripts/schemas/twister/' pull_request: branches: - main - v*-branch paths: - 'scripts/pylib/**' - 'scripts/twister' - 'scripts/tests/twister/**' - '.github/workflows/twister_tests.yml' - 'scripts/schemas/twister/' jobs: twister-tests: name: Twister Unit Tests runs-on: ${{ matrix.os }} strategy: matrix: python-version: ['3.10', '3.11', '3.12', '3.13'] os: [ubuntu-22.04] steps: - name: checkout uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: cache-pip-linux if: startsWith(runner.os, 'Linux') uses: actions/cache@v4 with: path: ~/.cache/pip key: ${{ runner.os }}-pip-${{ matrix.python-version }} restore-keys: | ${{ runner.os }}-pip-${{ matrix.python-version }} - name: install-packages run: | pip3 install -r scripts/requirements-base.txt -r scripts/requirements-build-test.txt -r scripts/requirements-run-test.txt - name: Run pytest for twisterlib env: ZEPHYR_BASE: ./ ZEPHYR_TOOLCHAIN_VARIANT: zephyr run: | echo "Run twister tests" PYTHONPATH=./scripts/tests pytest ./scripts/tests/twister - name: Run pytest for pytest-twister-harness env: ZEPHYR_BASE: ./ ZEPHYR_TOOLCHAIN_VARIANT: zephyr PYTHONPATH: ./scripts/pylib/pytest-twister-harness/src:${PYTHONPATH} run: | echo "Run twister tests" pytest ./scripts/pylib/pytest-twister-harness/tests