ci: github: west: Add a GH workflow to run the west command tests
Replace running west command tests in run_ci.sh with a github workflow. This provides some benefits in that we can run the west command tests on multiple python versions and host OSes (linux, mac and windows). Also have the benefit that the tests are only run on modifications to files in scripts/west_commands/ or scripts/west-commands.yml. Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
This commit is contained in:
parent
1c80d79fdd
commit
2fd7876aa7
65
.github/workflows/west_cmds.yml
vendored
Normal file
65
.github/workflows/west_cmds.yml
vendored
Normal file
|
@ -0,0 +1,65 @@
|
|||
# Copyright (c) 2020 Linaro Limited.
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
|
||||
name: Zephyr West Command Tests
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- 'scripts/west-commands.yml'
|
||||
- 'scripts/west_commands/**'
|
||||
pull_request:
|
||||
paths:
|
||||
- 'scripts/west-commands.yml'
|
||||
- 'scripts/west_commands/**'
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
python-version: [3.6, 3.7, 3.8]
|
||||
os: [ubuntu-latest, macos-latest, windows-latest]
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v2
|
||||
- name: Set up Python ${{ matrix.python-version }}
|
||||
uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: ${{ matrix.python-version }}
|
||||
- name: cache-pip-linux
|
||||
if: startsWith(runner.os, 'Linux')
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ~/.cache/pip
|
||||
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pip-${{ matrix.python-version }}
|
||||
- name: cache-pip-mac
|
||||
if: startsWith(runner.os, 'macOS')
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ~/Library/Caches/pip
|
||||
# Trailing '-' was just to get a different cache name
|
||||
key: ${{ runner.os }}-pip-${{ matrix.python-version }}-
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pip-${{ matrix.python-version }}-
|
||||
- name: cache-pip-win
|
||||
if: startsWith(runner.os, 'Windows')
|
||||
uses: actions/cache@v1
|
||||
with:
|
||||
path: ~\AppData\Local\pip\Cache
|
||||
key: ${{ runner.os }}-pip-${{ matrix.python-version }}
|
||||
restore-keys: |
|
||||
${{ runner.os }}-pip-${{ matrix.python-version }}
|
||||
- name: install pytest
|
||||
run: |
|
||||
pip3 install pytest west
|
||||
- name: run pytest-win
|
||||
if: runner.os == 'Windows'
|
||||
run: |
|
||||
cmd /C "set PYTHONPATH=.\scripts\west_commands && pytest ./scripts/west_commands/tests/"
|
||||
- name: run pytest-mac-linux
|
||||
if: runner.os != 'Windows'
|
||||
run: |
|
||||
PYTHONPATH=./scripts/west_commands pytest ./scripts/west_commands/tests/
|
|
@ -14,6 +14,7 @@
|
|||
# * @galak @nashif
|
||||
|
||||
/.known-issues/ @inakypg @nashif
|
||||
/.github/workflows/ @galak @nashif
|
||||
/arch/arc/ @vonhust @ruuddw
|
||||
/arch/arm/ @MaureenHelm @galak @ioannisg
|
||||
/arch/arm/core/aarch32/cortex_m/cmse/ @ioannisg
|
||||
|
|
|
@ -110,11 +110,6 @@ function on_complete() {
|
|||
cp ${bsim_bt_test_results_file} shippable/testresults/
|
||||
fi
|
||||
|
||||
if [ -e ${west_commands_results_file} ]; then
|
||||
echo "Copy ${west_commands_results_file}"
|
||||
cp ${west_commands_results_file} shippable/testresults
|
||||
fi
|
||||
|
||||
if [ "$matrix" = "1" ]; then
|
||||
echo "Skip handling coverage data..."
|
||||
#handle_coverage
|
||||
|
@ -245,20 +240,6 @@ if [ -n "$main_ci" ]; then
|
|||
echo "Skipping BT simulator tests"
|
||||
fi
|
||||
|
||||
if [ "$matrix" = "1" ]; then
|
||||
# Run pytest-based testing for Python in matrix
|
||||
# builder 1. For now, this is just done for the west
|
||||
# extension commands, but additional directories which
|
||||
# run pytest could go here too.
|
||||
pytest=$(type -p pytest-3 || echo "pytest")
|
||||
mkdir -p $(dirname ${west_commands_results_file})
|
||||
PYTHONPATH=./scripts/west_commands "${pytest}" \
|
||||
--junitxml=${west_commands_results_file} \
|
||||
./scripts/west_commands/tests
|
||||
else
|
||||
echo "Skipping west command tests"
|
||||
fi
|
||||
|
||||
# cleanup
|
||||
rm -f test_file.txt
|
||||
touch test_file_1.txt test_file_2.txt
|
||||
|
|
Loading…
Reference in a new issue