Skip to content

update(ci): modernize workflows setting GH token scopes and reporting improvements from templater #538

update(ci): modernize workflows setting GH token scopes and reporting improvements from templater

update(ci): modernize workflows setting GH token scopes and reporting improvements from templater #538

Workflow file for this run

name: "🎳 Tester"
on:
push:
branches:
- main
paths:
- "**.py"
- .github/workflows/tester.yml
- requirements/testing.txt
pull_request:
branches:
- main
paths:
- "**.py"
- .github/workflows/tester.yml
- requirements/testing.txt
env:
PROJECT_FOLDER: "qtribu"
PYTHON_VERSION: 3.9
jobs:
tests-unit:
runs-on: ubuntu-latest
steps:
- name: Get source code
uses: actions/checkout@v6
- name: Set up Python
uses: actions/setup-python@v6
with:
cache: "pip"
cache-dependency-path: "requirements/testing.txt"
python-version: ${{ env.PYTHON_VERSION }}
- name: Install Python requirements
run: |
python -m pip install -U pip setuptools wheel
python -m pip install -U -r requirements/testing.txt
- name: Run Unit tests
run: pytest -p no:qgis tests/unit/
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
env_vars: PYTHON
flags: unittests
name: Code Coverage for unittests on Ubuntu.python-${{ env.PYTHON_VERSION }}]
test-qgis:
runs-on: ubuntu-latest
container:
image: qgis/qgis:release-3_28
env:
CI: true
DISPLAY: ":1"
MUTE_LOGS: true
NO_MODALS: 1
PYTHONPATH: "/usr/share/qgis/python/plugins:/usr/share/qgis/python:."
QT_QPA_PLATFORM: "offscreen"
WITH_PYTHON_PEP: false
options: -v /tmp/.X11-unix:/tmp/.X11-unix -v ${{ github.workspace }}:/tests_directory
steps:
- name: Get source code
uses: actions/checkout@v6
- name: Print QGIS version
run: qgis --version
- name: Print Python version
run: python3 --version
- name: Setup plugin
run: qgis_setup.sh qtribu
- name: Install Python requirements
run: |
apt update && apt install -y python3-pip python3-venv pipx
# Create a virtual environment
cd /home/root/
pipx run qgis-venv-creator --venv-name ".venv"
# Activate the virtual environment
. .venv/bin/activate
# Install the requirements
python3 -m pip install -U -r requirements/testing.txt
- name: Run Unit tests
run: |
cd /home/root/
# Activate the virtual environment
. .venv/bin/activate
# Run the tests
# xvfb-run is used to run the tests in a virtual framebuffer
# This is necessary because QGIS requires a display to run
xvfb-run python3 -m pytest tests/qgis --junitxml=junit/test-results-qgis.xml --cov-report=xml:coverage-reports/coverage-qgis.xml
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5