ci: add imgtool test to workflows
Add imgtool test call to workflows, use pytest and
publish artifacts with test results.
Also enable test run on 'pull_request', but limit
the previous default imgtool_run.sh run ('environment' job)
to run on 'push' event only (the same behaviour as before).
Signed-off-by: Denis Mingulov <denis@mingulov.com>
diff --git a/.github/workflows/imgtool.yaml b/.github/workflows/imgtool.yaml
index ce9d552..03b191e 100644
--- a/.github/workflows/imgtool.yaml
+++ b/.github/workflows/imgtool.yaml
@@ -3,6 +3,7 @@
branches:
- main
- v*-branch
+ pull_request:
name: imgtool
@@ -11,7 +12,38 @@
cancel-in-progress: true
jobs:
+ test:
+ runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ python-version: ["3.x", "pypy3.9"]
+ steps:
+ - uses: actions/checkout@v4
+ - name: Set up Python ${{ matrix.python-version }}
+ uses: actions/setup-python@v4
+ with:
+ python-version: ${{ matrix.python-version }}
+ cache: 'pipenv'
+ cache-dependency-path: |
+ scripts/setup.py
+ - name: Install dependencies
+ run: |
+ pip install --user pipenv
+ - name: Run tests
+ run: |
+ cd scripts
+ pipenv run pip install pytest -e .
+ pipenv run pytest --junitxml=../junit/pytest-results-${{ matrix.python-version }}.xml
+ - name: Upload test results
+ uses: actions/upload-artifact@v3
+ if: always()
+ with:
+ name: pytest-results-${{ matrix.python-version }}
+ path: |
+ junit/pytest-results-${{ matrix.python-version }}*.xml
+ if-no-files-found: ignore
environment:
+ if: ${{ github.event_name == 'push' }}
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2