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>
diff --git a/.github/workflows/west_cmds.yml b/.github/workflows/west_cmds.yml
new file mode 100644
index 0000000..63f1208
--- /dev/null
+++ b/.github/workflows/west_cmds.yml
@@ -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/
diff --git a/CODEOWNERS b/CODEOWNERS
index cf7eac8..00ba7f4 100644
--- a/CODEOWNERS
+++ b/CODEOWNERS
@@ -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
diff --git a/scripts/ci/run_ci.sh b/scripts/ci/run_ci.sh
index a9c7d28..d79f974 100755
--- a/scripts/ci/run_ci.sh
+++ b/scripts/ci/run_ci.sh
@@ -110,11 +110,6 @@
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 @@
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