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
3 changed files with 66 additions and 19 deletions
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
|
# * @galak @nashif
|
||||||
|
|
||||||
/.known-issues/ @inakypg @nashif
|
/.known-issues/ @inakypg @nashif
|
||||||
|
/.github/workflows/ @galak @nashif
|
||||||
/arch/arc/ @vonhust @ruuddw
|
/arch/arc/ @vonhust @ruuddw
|
||||||
/arch/arm/ @MaureenHelm @galak @ioannisg
|
/arch/arm/ @MaureenHelm @galak @ioannisg
|
||||||
/arch/arm/core/aarch32/cortex_m/cmse/ @ioannisg
|
/arch/arm/core/aarch32/cortex_m/cmse/ @ioannisg
|
||||||
|
|
|
@ -110,11 +110,6 @@ function on_complete() {
|
||||||
cp ${bsim_bt_test_results_file} shippable/testresults/
|
cp ${bsim_bt_test_results_file} shippable/testresults/
|
||||||
fi
|
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
|
if [ "$matrix" = "1" ]; then
|
||||||
echo "Skip handling coverage data..."
|
echo "Skip handling coverage data..."
|
||||||
#handle_coverage
|
#handle_coverage
|
||||||
|
@ -245,20 +240,6 @@ if [ -n "$main_ci" ]; then
|
||||||
echo "Skipping BT simulator tests"
|
echo "Skipping BT simulator tests"
|
||||||
fi
|
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
|
# cleanup
|
||||||
rm -f test_file.txt
|
rm -f test_file.txt
|
||||||
touch test_file_1.txt test_file_2.txt
|
touch test_file_1.txt test_file_2.txt
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue