| # Copyright (c) 2023 Intel Corporation. |
| # SPDX-License-Identifier: Apache-2.0 |
| |
| name: Twister BlackBox TestSuite |
| |
| on: |
| pull_request: |
| branches: |
| - main |
| paths: |
| - 'scripts/pylib/twister/**' |
| - 'scripts/twister' |
| - 'scripts/tests/twister_blackbox/**' |
| - '.github/workflows/twister_tests_blackbox.yml' |
| |
| jobs: |
| twister-tests: |
| name: Twister Black Box Tests |
| runs-on: ${{ matrix.os }} |
| strategy: |
| matrix: |
| python-version: [3.8, 3.9, '3.10'] |
| os: [ubuntu-22.04] |
| container: |
| image: ghcr.io/zephyrproject-rtos/ci:v0.26.5 |
| env: |
| ZEPHYR_SDK_INSTALL_DIR: /opt/toolchains/zephyr-sdk-0.16.3 |
| |
| steps: |
| - name: Apply Container Owner Mismatch Workaround |
| run: | |
| # FIXME: The owner UID of the GITHUB_WORKSPACE directory may not |
| # match the container user UID because of the way GitHub |
| # Actions runner is implemented. Remove this workaround when |
| # GitHub comes up with a fundamental fix for this problem. |
| git config --global --add safe.directory ${GITHUB_WORKSPACE} |
| |
| - name: Checkout |
| uses: actions/checkout@v3 |
| |
| - name: Environment Setup |
| run: | |
| echo "$HOME/.local/bin" >> $GITHUB_PATH |
| |
| west init -l . || true |
| west config --global update.narrow true |
| west update --path-cache /github/cache/zephyrproject 2>&1 1> west.update.log || west update --path-cache /github/cache/zephyrproject 2>&1 1> west.update.log || ( rm -rf ../modules ../bootloader ../tools && west update --path-cache /github/cache/zephyrproject) |
| west forall -c 'git reset --hard HEAD' |
| |
| - name: Set Up Python ${{ matrix.python-version }} |
| uses: actions/setup-python@v4 |
| with: |
| python-version: ${{ matrix.python-version }} |
| |
| - name: Go Into Venv |
| shell: bash |
| run: | |
| python3 -m pip install --user virtualenv |
| python3 -m venv env |
| source env/bin/activate |
| echo "$(which python)" |
| |
| - name: Install Packages |
| run: | |
| python3 -m pip install -U -r scripts/requirements-base.txt -r scripts/requirements-build-test.txt -r scripts/requirements-run-test.txt |
| |
| - name: Run Pytest For Twister Black Box Tests |
| shell: bash |
| env: |
| ZEPHYR_BASE: ./ |
| ZEPHYR_TOOLCHAIN_VARIANT: zephyr |
| run: | |
| echo "Run twister tests" |
| source zephyr-env.sh |
| PYTHONPATH="./scripts/tests" pytest ./scripts/tests/twister_blackbox |
| |
| - name: Upload Unit Test Results |
| if: success() || failure() |
| uses: actions/upload-artifact@v2 |
| with: |
| name: Black Box Test Results (Python ${{ matrix.python-version }}) |
| path: | |
| twister-out*/twister.log |
| twister-out*/twister.json |
| twister-out*/testplan.log |
| retention-days: 14 |
| |
| - name: Clear Workspace |
| if: success() || failure() |
| run: | |
| rm -rf twister-out*/ |