Skip to content

Restructure and update documentation #1173

Restructure and update documentation

Restructure and update documentation #1173

Workflow file for this run

name: CI
env:
micromamba_version: 2
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
types: [ opened, synchronize, reopened]
release:
types:
- created
schedule:
- cron: "0 0 * * *" # Daily “At 00:00” UTC
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
lint:
name: lint and style checks
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install black black[jupyter] ruff
- name: Black style check
run: |
black --check .
- name: Lint with ruff
run: |
ruff check .
build_0:
name: wradlib unit tests - linux
runs-on: ubuntu-latest
needs: [lint]
defaults:
run:
shell: bash -l {0}
env:
WRADLIB_DATA: ./wradlib-data
CONDA_ENV_FILE: ci/requirements/unittests.yml
strategy:
fail-fast: false
matrix:
python-version: ["3.10", "3.13"]
numpy-version: ["2"]
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install micromamba environment
uses: mamba-org/setup-micromamba@v2
with:
init-shell: >-
bash
environment-name: wradlib-tests
environment-file: ${{env.CONDA_ENV_FILE}}
cache-environment: true
cache-environment-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-np${{matrix.numpy_version}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}"
create-args: >-
python=${{matrix.python-version}}
numpy=${{matrix.numpy-version}}
- name: Install wradlib
run: |
python -m pip install . --no-deps
- name: Install wradlib-data
run: |
python -m pip install wradlib-data
mkdir ./wradlib-data
- name: Version Info
run: |
python -c "import wradlib; print(wradlib.version.version)"
python -c "import wradlib; print(wradlib.show_versions())"
- name: Test with pytest
env:
WRADLIB_EARTHDATA_BEARER_TOKEN: ${{ secrets.WRADLIB_EARTHDATA_BEARER_TOKEN }}
run: |
echo $WRADLIB_DATA
export WRADLIB_DATA=`realpath $WRADLIB_DATA`
env
pytest -n auto --dist loadfile --verbose --doctest-modules --doctest-plus --durations=15 --cov-report xml:coverage.xml --cov=wradlib --pyargs wradlib
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage.xml
flags: unittests
env_vars: RUNNER_OS,PYTHON_VERSION
name: codecov-gha
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
build_0a:
name: wradlib unit tests - linux - no GDAL
runs-on: ubuntu-latest
needs: [ lint ]
defaults:
run:
shell: bash -l {0}
env:
WRADLIB_DATA: ./wradlib-data
CONDA_ENV_FILE: ci/requirements/unittests.yml
strategy:
fail-fast: false
matrix:
python-version: [ "3.13" ]
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install micromamba environment
uses: mamba-org/setup-micromamba@v2
with:
init-shell: >-
bash
environment-name: wradlib-tests
environment-file: ${{env.CONDA_ENV_FILE}}
cache-environment: true
cache-environment-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}"
create-args: >-
python=${{matrix.python-version}}
- name: Remove GDAL
run: |
micromamba remove --force --offline gdal
- name: Install wradlib
run: |
python -m pip install . --no-deps
- name: Install wradlib-data
run: |
python -m pip install wradlib-data
mkdir ./wradlib-data
- name: Version Info
run: |
python -c "import wradlib; print(wradlib.version.version)"
python -c "import wradlib; print(wradlib.show_versions())"
- name: Test with pytest
env:
WRADLIB_EARTHDATA_BEARER_TOKEN: ${{ secrets.WRADLIB_EARTHDATA_BEARER_TOKEN }}
run: |
echo $WRADLIB_DATA
export WRADLIB_DATA=`realpath $WRADLIB_DATA`
pytest -n auto --dist loadfile --verbose --doctest-modules --doctest-plus --durations=15 --cov-report xml:coverage.xml --cov=wradlib --pyargs wradlib
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage.xml
flags: unittests
env_vars: RUNNER_OS,PYTHON_VERSION
name: codecov-gha
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
build_1:
name: wradlib unit tests - macosx
runs-on: macos-latest
needs: [lint]
defaults:
run:
shell: bash -l {0}
env:
WRADLIB_DATA: ./wradlib-data
CONDA_ENV_FILE: ci/requirements/unittests.yml
strategy:
fail-fast: false
matrix:
python-version: ["3.13"]
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install micromamba environment
uses: mamba-org/setup-micromamba@v2
with:
init-shell: >-
bash
environment-name: wradlib-tests
environment-file: ${{env.CONDA_ENV_FILE}}
cache-environment: true
cache-environment-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}"
create-args: >-
python=${{matrix.python-version}}
- name: Install wradlib
run: |
cat "$HOME/.bash_profile"
python -m pip install . --no-deps
- name: Install wradlib-data
run: |
python -m pip install wradlib-data
mkdir ./wradlib-data
- name: Version Info
run: |
python -c "import wradlib; print(wradlib.version.version)"
python -c "import wradlib; print(wradlib.show_versions())"
- name: Test with pytest
env:
WRADLIB_EARTHDATA_BEARER_TOKEN: ${{ secrets.WRADLIB_EARTHDATA_BEARER_TOKEN }}
run: |
echo $WRADLIB_DATA
export WRADLIB_DATA=`python -c "import os, sys; print(os.path.realpath(sys.argv[1]))" $WRADLIB_DATA`
pytest -n auto --verbose --doctest-modules --doctest-plus --durations=15 --cov-report xml:coverage.xml --cov=wradlib --pyargs wradlib
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage.xml
flags: unittests
env_vars: RUNNER_OS,PYTHON_VERSION
name: codecov-gha
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
build_2:
name: wradlib unit tests - windows
runs-on: windows-latest
needs: [lint]
defaults:
run:
shell: bash -l {0}
env:
WRADLIB_DATA: ./wradlib-data
CONDA_ENV_FILE: ci/requirements/unittests.yml
strategy:
fail-fast: false
matrix:
python-version: ["3.13"]
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install micromamba environment
uses: mamba-org/setup-micromamba@v2
with:
init-shell: bash
environment-name: wradlib-tests
environment-file: ${{env.CONDA_ENV_FILE}}
cache-environment: true
cache-environment-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}"
create-args: >-
python=${{matrix.python-version}}
nomkl
- name: Install wradlib
run: |
python -m pip install . --no-deps
- name: Install wradlib-data
run: |
python -m pip install wradlib-data
mkdir ./wradlib-data
- name: Version Info
run: |
python -c "import wradlib; print(wradlib.version.version)"
python -c "import wradlib; print(wradlib.show_versions())"
- name: Test with pytest
env:
WRADLIB_EARTHDATA_BEARER_TOKEN: ${{ secrets.WRADLIB_EARTHDATA_BEARER_TOKEN }}
run: |
env
pytest -n auto --dist loadfile --verbose --doctest-modules --doctest-plus --durations=15 --cov-report xml:coverage.xml --cov=wradlib --pyargs wradlib
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage.xml
flags: unittests
env_vars: RUNNER_OS,PYTHON_VERSION
name: codecov-gha
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
build_3:
name: wradlib notebook tests
runs-on: ubuntu-latest
needs: [lint]
continue-on-error: true
defaults:
run:
shell: bash -l {0}
env:
WRADLIB_DATA: ./wradlib-data
CONDA_ENV_FILE: ci/requirements/notebooktests.yml
PR_NUMBER: ${{ github.event.number }}
strategy:
fail-fast: false
matrix:
python-version: ["3.12"]
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Install micromamba environment
uses: mamba-org/setup-micromamba@v2
with:
environment-name: wradlib-tests
environment-file: ${{env.CONDA_ENV_FILE}}
cache-environment: true
cache-environment-key: "${{runner.os}}-${{runner.arch}}-py${{env.PYTHON_VERSION}}-${{env.TODAY}}-${{hashFiles(env.CONDA_ENV_FILE)}}"
create-args: >-
python=${{matrix.python-version}}
- name: Install wradlib
run: |
python -m pip install . --no-deps
- name: Install wradlib-data
run: |
python -m pip install wradlib-data
mkdir ./wradlib-data
- name: Version Info
run: |
echo "WRADLIB_TAG=`git name-rev --name-only --tags HEAD`" >> $GITHUB_ENV
echo "WRADLIB_VERSION=`python -c "import wradlib; print(wradlib.version.version)"`"
python -c "import wradlib; print(wradlib.version.version)"
python -c "import wradlib; print(wradlib.show_versions())"
- name: Test with pytest
env:
WRADLIB_EARTHDATA_BEARER_TOKEN: ${{ secrets.WRADLIB_EARTHDATA_BEARER_TOKEN }}
run: |
echo $WRADLIB_DATA
export WRADLIB_DATA=`realpath $WRADLIB_DATA`
# create folder structure with all needed files, but *.md
cd docs
rsync -av --files-from=<(git ls-files) --exclude='*.md' ./ render/
# debug
pytest -n auto --verbose --durations=15 --cov-report xml:coverage.xml --cov=wradlib --pyargs notebooks
- name: Build output
run: |
cd docs
echo "Rendered from $GITHUB_SHA with $GITHUB_RUN_ID and $GITHUB_RUN_NUMBER" > render/render-info.txt
- name: Upload artifact
uses: actions/upload-artifact@v5
with:
name: render-output
path: docs/render/
- name: Upload coverage to Codecov
uses: codecov/codecov-action@v5
with:
files: ./coverage.xml
flags: notebooktests
env_vars: RUNNER_OS,PYTHON_VERSION
name: codecov-gha
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: false
upload_testpypi:
if: github.event_name == 'push'
needs: [lint, build_0, build_1]
name: deploy to testpypi
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build setuptools wheel twine toml-cli
- name: Package and Upload
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.TEST_PYPI_API_TOKEN }}
run: |
toml set --toml-path pyproject.toml tool.hatch.version.raw-options.local_scheme "no-local-version"
git update-index --assume-unchanged pyproject.toml
python -m build
twine upload --verbose --repository testpypi dist/*
upload_pypi:
if: github.event_name == 'release'
needs: [lint, build_0, build_1]
name: deploy to pypi
runs-on: ubuntu-latest
defaults:
run:
shell: bash -l {0}
steps:
- uses: actions/checkout@v6
with:
fetch-depth: 0
- name: Set up Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install build setuptools wheel twine
- name: Package and Upload
env:
TWINE_USERNAME: __token__
TWINE_PASSWORD: ${{ secrets.PYPI_API_TOKEN }}
run: |
python -m build
twine upload dist/*