From 21c91895f4d1d41c10f4447488f31e3261f35ee5 Mon Sep 17 00:00:00 2001 From: Jacobe2169 Date: Tue, 6 Feb 2024 17:39:02 +0100 Subject: [PATCH] add ci for eval perf + add requirements to setup.py --- .github/workflows/pytestPerf.yml | 126 +++++++++++++++++++++++++++++++ setup.py | 1 + 2 files changed, 127 insertions(+) create mode 100644 .github/workflows/pytestPerf.yml diff --git a/.github/workflows/pytestPerf.yml b/.github/workflows/pytestPerf.yml new file mode 100644 index 0000000000..b340934b0b --- /dev/null +++ b/.github/workflows/pytestPerf.yml @@ -0,0 +1,126 @@ +name: pytestPerf + +on: + push: + branches: + - master + - hotfixes + - develop + pull_request: + branches: + - master + - hotfixes + - develop + +jobs: + build: + runs-on: ubuntu-latest + + strategy: + fail-fast: false + matrix: + debian-version: ["11", "12"] + include: + # - debian-version: "11" + # python-version: "3.9" + # postgres-version: "13" + # postgis-version: "3.2" + - debian-version: "12" + python-version: "3.11" + postgres-version: "15" + postgis-version: "3.3" + + name: Debian ${{ matrix.debian-version }} + + services: + postgres: + image: postgis/postgis:${{ matrix.postgres-version }}-${{ matrix.postgis-version }} + env: + POSTGRES_DB: geonature2db + POSTGRES_PASSWORD: geonatpasswd + POSTGRES_USER: geonatadmin + ports: + - 5432:5432 + options: >- + --health-cmd pg_isready + --health-interval 10s + --health-timeout 5s + --health-retries 5 + + steps: + - uses: actions/checkout@v4 + with: + submodules: true + - name: Add database extensions + run: | + psql -h localhost -U geonatadmin -d geonature2db -f install/assets/db/add_pg_extensions.sql + env: + PGPASSWORD: geonatpasswd + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + cache: "pip" + - name: Install GDAL + run: | + sudo apt update + sudo apt install -y libgdal-dev + - name: Install dependencies + if: github.base_ref == 'master' + run: | + echo 'Installation des requirements de prod' + python -m pip install --upgrade pip + python -m pip install \ + -e ..[tests] \ + -r requirements.txt + working-directory: ./backend + - name: Install dependencies + if: github.base_ref != 'master' + run: | + echo 'Installation des requirements de dev' + python -m pip install --upgrade pip + python -m pip install \ + -e ..[tests] \ + -r requirements-dev.txt + working-directory: ./backend + - name: Show database branches and dependencies + run: | + geonature db status --dependencies + env: + GEONATURE_CONFIG_FILE: config/test_config.toml + - name: Install database + run: | + wget https://geonature.fr/data/2024-02-GeoNature-Backup-Synthese-9000 + pg_restore -U geonatadmin -d geonature2db -1 2024-02-GeoNature-Backup-Synthese-9000 + env: + PGPASSWORD: geonatpasswd + - name: Show database status + run: | + geonature db status + env: + GEONATURE_CONFIG_FILE: config/test_config.toml + - name: Install core modules backend + run: | + pip install -e contrib/occtax + pip install -e contrib/gn_module_occhab + pip install -e contrib/gn_module_validation + - name: Install core modules database + run: | + geonature upgrade-modules-db + env: + GEONATURE_CONFIG_FILE: config/test_config.toml + - name: Show database status + run: | + geonature db status --dependencies + env: + GEONATURE_CONFIG_FILE: config/test_config.toml + - name: Test with pytest + run: | + pytest -v --cov --cov-report xml + env: + GEONATURE_CONFIG_FILE: config/test_config.toml + - name: Upload coverage to Codecov + if: ${{ matrix.debian-version == '11' }} + uses: codecov/codecov-action@v3 + with: + flags: pytest diff --git a/setup.py b/setup.py index 10d15088b0..177144f11f 100644 --- a/setup.py +++ b/setup.py @@ -34,6 +34,7 @@ "tests": [ "pytest", "pytest-flask", + "pytest-benchmark", "pytest-cov", "jsonschema", ],