Skip to content

Improve: qdt files reliability #1257

Improve: qdt files reliability

Improve: qdt files reliability #1257

Workflow file for this run

name: "🎳 Tester"
on:
push:
branches:
- main
paths:
- "**/*.py"
- ".github/workflows/tests.yml"
pull_request:
branches:
- main
paths:
- "**/*.py"
- ".github/workflows/tests.yml"
- "requirements/base.txt"
- "requirements/testing.txt"
- tests/fixtures/
env:
PROJECT_FOLDER: "qgis_deployment_toolbelt"
jobs:
unit-test:
strategy:
fail-fast: false
# max-parallel: 4
matrix:
os:
- macos-latest
- ubuntu-22.04
- windows-latest
python-version:
- "3.10"
- "3.11"
- "3.12"
runs-on: ${{ matrix.os }}
steps:
- name: Get source code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "requirements/*.txt"
- name: Install project requirements
run: |
python -m pip install -U pip setuptools wheel
python -m pip install -U -r requirements.txt
python -m pip install -U -r requirements/testing.txt
- name: Install project as a package
run: python -m pip install -e .
- name: Unit tests
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
QDT_LOGS_LEVEL: 4
run: pytest
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v4.3.1
with:
env_vars: OS,PYTHON
flags: unittests
name: Code Coverage for unittests on [${{ matrix.os }}.python-${{ matrix.python-version }}]
env:
OS: ${{ matrix.os }}
PYTHON: ${{ matrix.python-version }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
integration-test:
strategy:
fail-fast: false
# max-parallel: 4
matrix:
os:
- macos-latest
- ubuntu-22.04
- windows-latest
python-version:
- "3.10"
- "3.11"
- "3.12"
runs-on: ${{ matrix.os }}
steps:
- name: Get source code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
cache: "pip"
cache-dependency-path: "requirements/*.txt"
- name: Install project requirements
run: |
python -m pip install -U pip setuptools wheel
python -m pip install -U -r requirements.txt
- name: Install project as a package
run: python -m pip install -e .
- name: QDT - Echoing help
run: qdt --help
- name: QDT - Echoing version
run: qdeploy-toolbelt --version
- name: QDT - Check upgrade
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} # required to avoid GH API rate limit
run: qdt upgrade
- name: QDT - Run sample scenario twice
run: |
qgis-deployment-toolbelt --verbose
qgis-deployment-toolbelt
- name: QDT - Run sample scenario a third time
run: qgis-deployment-toolbelt --verbose --no-logfile
- name: QDT - Export rules context
run: qdt export-rules-context -o rules_context/"${{ matrix.os }}_${{ matrix.python-version }}.json"
- name: Save Rules Context as artifact
uses: actions/upload-artifact@v4
with:
name: rules_context-${{ matrix.os }}-${{ matrix.python-version }}
path: rules_context/*.json
if-no-files-found: error
retention-days: 30