Skip to content

Commit

Permalink
Merge pull request #29 from fbriol/master
Browse files Browse the repository at this point in the history
2024.11.0
  • Loading branch information
fbriol authored Nov 7, 2024
2 parents cb0e41e + 77b3486 commit 212bc72
Show file tree
Hide file tree
Showing 62 changed files with 1,389 additions and 889 deletions.
204 changes: 204 additions & 0 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,204 @@
name: CI

on:
push:
branches: "*"
pull_request:
branches: main

permissions:
contents: read
pages: write
id-token: write

concurrency:
group: "pages"
cancel-in-progress: false

jobs:
coverage:
name: coverage
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
fetch-tags: true

- name: Setup Miniconda
uses: mamba-org/setup-micromamba@v1
with:
cache-downloads: true
condarc: |
channels:
- conda-forge
create-args: |
python=3.12
environment-name: pyinterp
environment-file: conda/environment.yml
init-shell: bash

- name: Build extension with code coverage and the C++ tests
shell: bash -l {0}
run: |
python setup.py build_ext --code-coverage --build-unittests
python setup.py build
- name: Run tests and measure coverage
shell: bash -l {0}
run: |
pytest -v -ra --cov=pyinterp --cov-report=lcov --measure-coverage
python setup.py gtest
- name: Filter and merge coverage
shell: bash -l {0}
run: |
lcov --add-tracefile coverage_cpp.lcov --add-tracefile coverage.lcov --output-file merged_coverage.lcov
lcov -r merged_coverage.lcov "${CONDA_PREFIX}/*" "/usr/*" "*/third_party/*" --output-file filtered_merged_coverage.lcov
genhtml filtered_merged_coverage.lcov --output-directory htmllcov
- name: Print total coverage
shell: bash -l {0}
run: |
percent=$(lcov -l filtered_merged_coverage.lcov|tail -1|grep -o '[0-9]\+\.[0-9]\+%' | head -n 1)
echo "Total coverage: $percent"
- name: Upload HTML report as artifact
uses: actions/upload-artifact@v4
with:
name: coverage-report
path: htmllcov

linux:
name: ${{ matrix.python-version }}-posix
runs-on: ubuntu-latest
timeout-minutes: 15
strategy:
fail-fast: false
max-parallel: 5
matrix:
# Python 3.12 is used in all other jobs
python-version: ['3.10', '3.11', '3.13']
steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
fetch-tags: true

- name: Setup Miniconda
uses: mamba-org/setup-micromamba@v1
with:
cache-downloads: true
condarc: |
channels:
- conda-forge
create-args: |
python=${{ matrix.python-version }}
environment-name: pyinterp
environment-file: conda/environment.yml
init-shell: bash

- name: Build extension
shell: bash -l {0}
run: |
python setup.py build_ext
python setup.py build
- name: Run tests
shell: bash -l {0}
run: |
pytest -v -ra
macos:
name: macos
runs-on: macos-latest
timeout-minutes: 15
strategy:
fail-fast: false
max-parallel: 5

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0
fetch-tags: true

- name: Setup Miniconda
uses: mamba-org/setup-micromamba@v1
with:
cache-downloads: true
condarc: |
channels:
- conda-forge
create-args: |
python=3.12
environment-name: pyinterp
environment-file: conda/environment.yml
init-shell: bash

- name: Build extension
shell: bash -l {0}
run: |
python setup.py build_ext
python setup.py build
- name: Run tests
shell: bash -l {0}
run: |
pytest -v -ra
- name: Generate Documentation
shell: bash -l {0}
run: |
sphinx-build -b html docs/source docs/build
- name: Setup Pages
uses: actions/configure-pages@v5

- name: Upload artifact
uses: actions/upload-pages-artifact@v3
with:
path: docs/build

- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4

win:
name: win
runs-on: windows-2019

steps:
- name: Checkout
uses: actions/checkout@v4
with:
submodules: recursive

- name: Setup Miniconda
uses: mamba-org/setup-micromamba@v1
with:
cache-downloads: true
condarc: |
channels:
- conda-forge
create-args: |
python=3.12
environment-name: pyinterp
environment-file: conda/environment.yml

- name: Building Testing Python Package
shell: bash -l {0}
run: |
python setup.py build_ext --generator="Visual Studio 16 2019"
python setup.py build
pytest -v -ra
1 change: 1 addition & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,7 @@ else()
else()
message(
WARNING "No BLAS library found. Eigen uses its own BLAS implementation.")
set(BLAS_LIBRARIES "")
endif()
endif()

Expand Down
11 changes: 4 additions & 7 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
pangeo-pyinterp
###############

|Build Status| |Azure DevOps Coverage| |Downloads| |Platforms|
|Latest Release Date| |License| |Binder| |Documentation Status|
|Build Status| |Downloads| |Platforms|
|Latest Release Date| |License| |Binder|

Python library for optimized geo-referenced interpolation.

Expand Down Expand Up @@ -133,9 +133,8 @@ The geohash is a compact way of representing a location, and is useful for
storing a location in a database, or for indexing a location in a database.


.. |Build Status| image:: https://dev.azure.com/fbriol/pangeo-pyinterp/_apis/build/status/CNES.pangeo-pyinterp?branchName=master
:target: https://dev.azure.com/fbriol/pangeo-pyinterp/_build/latest?definitionId=2&branchName=master
.. |Azure DevOps Coverage| image:: https://img.shields.io/azure-devops/coverage/fbriol/pangeo-pyinterp/2?style=flat-square
.. |Build Status| image:: https://github.com/CNES/pangeo-pyinterp/actions/workflows/ci.yaml/badge.svg
:target: https://github.com/CNES/pangeo-pyinterp/actions
.. |Downloads| image:: https://anaconda.org/conda-forge/pyinterp/badges/downloads.svg?service=github
:target: image:: https://www.anaconda.com/distribution/
.. |Platforms| image:: https://anaconda.org/conda-forge/pyinterp/badges/platforms.svg?service=github
Expand All @@ -146,5 +145,3 @@ storing a location in a database, or for indexing a location in a database.
:target: https://opensource.org/licenses/BSD-3-Clause
.. |Binder| image:: https://mybinder.org/badge_logo.svg
:target: https://mybinder.org/v2/gh/CNES/pangeo-pyinterp/master?filepath=notebooks/auto_examples/
.. |Documentation Status| image:: https://readthedocs.org/projects/pangeo-pyinterp/badge/?version=latest
:target: https://pangeo-pyinterp.readthedocs.io/en/latest/?badge=latest
Loading

0 comments on commit 212bc72

Please sign in to comment.