Add check script

This commit is contained in:
Andras Schmelczer 2022-06-25 15:32:00 +02:00
parent 77e2ac542e
commit 2b39482e28
No known key found for this signature in database
GPG key ID: 0EA1BC97D0AB076E
4 changed files with 95 additions and 160 deletions

95
.github/workflows/check.yml vendored Normal file
View file

@ -0,0 +1,95 @@
name: Check library
on:
workflow_dispatch:
push:
branches:
- main
- dev
jobs:
test:
name: Build and test on Python ${{ matrix.python-version }}
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8.12", "3.9.12", "3.10.4"]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Setup Python ${{ matrix.python-version }}
uses: actions/setup-python@v2
with:
python-version: ${{ matrix.python-version }}
- name: Install dependencies
run: |
python3 -m pip install --upgrade pip setuptools pytest pytest-cov pytest-subtests pytest-asyncio
(pip install --editable .) || true
(test -f requirements.txt && pip install -r requirements.txt --upgrade) || true
(test -f dev-requirements.txt && pip install -r dev-requirements.txt --upgrade) || true
- name: Check code and formatting
run: scripts/check-python.sh .
- name: Run tests
run: python3 -m pytest --cov=. --cov-report=xml --junit-xml pytest.xml --asyncio-mode=strict || true
- name: Upload results
if: always()
uses: actions/upload-artifact@v2
with:
name: Unit test coverage (Python ${{ matrix.python-version }})
path: *.xml
sonar:
name: Analyse Python project with SonarQube
needs: test
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 0
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -r requirements.txt --upgrade
- name: Download test results
uses: actions/download-artifact@v2
with:
path: artifacts
- uses: sonarsource/sonarqube-scan-action@master
env:
SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }}
SONAR_HOST_URL: ${{ secrets.SONAR_HOST_URL }}
with:
args: >
-Dsonar.projectKey=great-ai
-Dsonar.login=${{ secrets.SONAR_TOKEN }}
-Dsonar.verbose=true
-Dsonar.python.coverage.reportPaths=artifacts/*/coverage.xml
-Dsonar.coverage.exclusions=**/external/**/*
-Dsonar.exclusions=**/external/**/*,artifacts/**/*
publish-test-results:
name: Publish unit test results
needs: test
runs-on: ubuntu-latest
if: always()
steps:
- name: Download artifacts
uses: actions/download-artifact@v2
with:
path: artifacts
- name: Publish results
uses: EnricoMi/publish-unit-test-result-action@v1
with:
files: artifacts/*/pytest.xml