Skip to content

feat!: filter values from Layout folders #20

feat!: filter values from Layout folders

feat!: filter values from Layout folders #20

Workflow file for this run

name: Tests
on:
push:
branches: ["main"]
tags: ["*"]
pull_request:
branches: ["main"]
jobs:
unit_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup micromamba
uses: mamba-org/setup-micromamba@v2
with:
environment-name: test-env
init-shell: >-
bash
cache-environment: true
post-cleanup: 'all'
create-args: >-
python=3.12
pip
docstring_parser
fsspec
h5netcdf
jinja2
netCDF4
numba
numpy
requests
typer
xarray
pytest
pytest-cov
sympy
beautifulsoup4
pyftpdlib
shapely
geopandas
pyinterp<2026.2.0
dask
- name: Install python dependencies
shell: bash -el {0}
run: |
python -m pip install --upgrade pip
pip install pyasynchat
pip install -e "."
- name: Run unit tests
shell: bash -el {0}
run: |
pytest tests --cov=src/fcollections --cov-report=xml:coverage-ut.xml --cov-report=term
mv .coverage .coverage-ut
- name: Upload unit test coverage artifacts
uses: actions/upload-artifact@v4
with:
name: unit-test-coverage
include-hidden-files: true
path: |
.coverage-ut
coverage-ut.xml
unit_tests_no_geo:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Setup micromamba
uses: mamba-org/setup-micromamba@v2
with:
environment-name: test-env
init-shell: >-
bash
cache-environment: true
post-cleanup: 'all'
create-args: >-
python=3.12
pip
docstring_parser
fsspec
h5netcdf
jinja2
netCDF4
numba
numpy
requests
typer
xarray
pytest
pytest-cov
sympy
beautifulsoup4
pyftpdlib
shapely
geopandas
pyinterp<2026.2.0
dask
- name: Install python dependencies
shell: bash -el {0}
run: |
python -m pip install --upgrade pip
pip install -e "."
- name: Run unit tests without geo
shell: bash -el {0}
run: |
pytest tests/implementations/collections --ignore tests/implementations/collections/test_area_selector.py --without-geo-packages --cov=src/fcollections --cov-report=xml:coverage-ut-nogeo.xml --cov-report=term
mv .coverage .coverage-ut-nogeo
- name: Upload unit test no-geo coverage artifacts
uses: actions/upload-artifact@v4
with:
name: unit-test-nogeo-coverage
include-hidden-files: true
path: |
.coverage-ut-nogeo
coverage-ut-nogeo.xml
integration_tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.12
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install -e ".[testing]"
- name: Run integration tests
run: |
pytest integration_tests --cov=src/fcollections --cov-report=xml:coverage-it.xml --cov-report=term
mv .coverage .coverage-it
- name: Upload integration test coverage artifacts
uses: actions/upload-artifact@v4
with:
name: integration-test-coverage
include-hidden-files: true
path: |
.coverage-it
coverage-it.xml
coverage:
runs-on: ubuntu-latest
needs:
- unit_tests
- unit_tests_no_geo
- integration_tests
steps:
- uses: actions/checkout@v3
- name: Set up Python
uses: actions/setup-python@v4
with:
python-version: 3.11
- name: Install coverage
run: pip install coverage
- name: Download unit tests coverage artifacts
uses: actions/download-artifact@v4
with:
name: unit-test-coverage
- name: Download unit tests no geo coverage artifacts
uses: actions/download-artifact@v4
with:
name: unit-test-nogeo-coverage
- name: Download integration tests coverage artifacts
uses: actions/download-artifact@v4
with:
name: integration-test-coverage
- name: Combine coverage reports
run: |
coverage combine .coverage-ut .coverage-ut-nogeo .coverage-it
coverage report --fail-under=100
coverage xml
- name: Upload combined coverage report
uses: actions/upload-artifact@v4
with:
name: combined-coverage
path: coverage.xml