Add notebooks label to pull requests when notebooks are modified #332
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: xHydro Testing Suite | |
on: | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- CHANGES.rst | |
- README.rst | |
- pyproject.toml | |
- xhydro/__init__.py | |
pull_request: | |
types: | |
- opened | |
- reopened | |
- synchronize | |
pull_request_review: | |
types: | |
- submitted | |
permissions: | |
contents: read | |
pull-requests: read | |
jobs: | |
lint: | |
name: Lint (Python${{ matrix.python-version }}) | |
runs-on: ubuntu-latest | |
if: | | |
((github.event_name == 'pull_request') && (github.event.action != 'labeled')) || | |
(github.event.review.state == 'approved') || | |
(github.event_name == 'push') | |
strategy: | |
matrix: | |
python-version: | |
- "3.x" | |
steps: | |
- name: Cancel previous runs | |
uses: styfle/cancel-workflow-action@0.11.0 | |
with: | |
access_token: ${{ secrets.GITHUB_TOKEN }} | |
- uses: actions/checkout@v4 | |
- name: Set up Python${{ matrix.python-version }} | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install tox | |
run: | | |
python -m pip install tox | |
- name: Run linting suite | |
run: | | |
python -m tox -e lint | |
test-preliminary: | |
name: Preliminary Tests (Python${{ matrix.python-version }}) | |
needs: lint | |
if: | | |
(github.event_name == 'pull_request') && !contains(github.event.pull_request.labels.*.name, 'approved') | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
include: | |
- python-version: "3.9" | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Conda (Micromamba) with Python${{ matrix.python-version }} | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
cache-downloads: true | |
environment-file: environment-dev.yml | |
create-args: >- | |
mamba | |
python=${{ matrix.python-version }} | |
- name: Conda and Mamba versions | |
run: | | |
mamba --version | |
echo "micromamba $(micromamba --version)" | |
- name: Install xHydro | |
run: | | |
python -m pip install --no-deps . | |
- name: Check versions | |
run: | | |
conda list | |
echo ESMF_VERSION=$(cat $ESMFMKFILE | grep "ESMF_VERSION_STRING=" | awk -F= '{print $2}' | tr -d "'") | |
python -m pip check || true | |
- name: Test with pytest | |
run: | | |
make test | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
test-conda: | |
name: Test with Python${{ matrix.python-version }} (Anaconda) | |
needs: lint | |
if: | | |
contains(github.event.pull_request.labels.*.name, 'approved') || | |
(github.event.review.state == 'approved') || | |
(github.event_name == 'push') | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.9", "3.10", "3.11"] | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Conda (Micromamba) with Python${{ matrix.python-version }} | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
cache-downloads: true | |
environment-file: environment-dev.yml | |
create-args: >- | |
mamba | |
python=${{ matrix.python-version }} | |
- name: Conda and Mamba versions | |
run: | | |
mamba --version | |
echo "micromamba $(micromamba --version)" | |
- name: Install xHydro | |
run: | | |
python -m pip install --no-deps . | |
- name: Check versions | |
run: | | |
conda list | |
echo ESMF_VERSION=$(cat $ESMFMKFILE | grep "ESMF_VERSION_STRING=" | awk -F= '{print $2}' | tr -d "'") | |
python -m pip check || true | |
- name: Test with pytest | |
run: | | |
python -m pytest --cov xhydro | |
- name: Report coverage | |
run: | | |
python -m coveralls | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COVERALLS_FLAG_NAME: run-Python${{ matrix.python-version }}-conda | |
COVERALLS_PARALLEL: true | |
COVERALLS_SERVICE_NAME: github | |
test-notebooks: | |
name: Test Notebooks | |
needs: lint | |
if: | | |
contains(github.event.pull_request.labels.*.name, 'notebooks') || | |
contains(github.event.pull_request.labels.*.name, 'approved') || | |
(github.event.review.state == 'approved') || | |
(github.event_name == 'push') | |
runs-on: ubuntu-latest | |
strategy: | |
matrix: | |
python-version: ["3.9", "3.10", "3.11"] | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Setup Conda (Micromamba) with Python${{ matrix.python-version }} | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
cache-downloads: true | |
environment-file: environment-dev.yml | |
create-args: >- | |
mamba | |
python=${{ matrix.python-version }} | |
- name: Conda and Mamba versions | |
run: | | |
mamba --version | |
echo "micromamba $(micromamba --version)" | |
- name: Install xHydro | |
run: | | |
python -m pip install --no-deps . | |
- name: Check versions | |
run: | | |
conda list | |
echo ESMF_VERSION=$(cat $ESMFMKFILE | grep "ESMF_VERSION_STRING=" | awk -F= '{print $2}' | tr -d "'") | |
python -m pip check || true | |
- name: Test Notebooks | |
run: | | |
make test-notebooks | |
# test-ESMF-source: | |
# name: Tests using ESMF from sources (Python${{ matrix.python-version }}) | |
# needs: lint | |
# if: | | |
# contains(github.event.pull_request.labels.*.name, 'approved') || | |
# (github.event.review.state == 'approved') || | |
# (github.event_name == 'push') | |
# runs-on: ubuntu-latest | |
# env: | |
# ESMF_VERSION: "v8.5.0" | |
# strategy: | |
# matrix: | |
# include: | |
# - python-version: "3.9" | |
# steps: | |
# - uses: actions/checkout@v4.1.1 | |
# - name: Install NetCDF | |
# run: | | |
# sudo apt-get -y update | |
# sudo apt install libnetcdf-dev libnetcdff-dev | |
# - name: Install ESMF | |
# uses: esmf-org/install-esmf-action@v1 | |
# env: | |
# ESMF_NETCDF: nc-config | |
# with: | |
# cache: true | |
# version: ${{ env.ESMF_VERSION }} | |
# - name: Set up Python${{ matrix.python-version }} | |
# uses: actions/setup-python@v4.7.1 | |
# with: | |
# python-version: ${{ matrix.python-version }} | |
# - name: Install xhydro (with esmpy) | |
# run: | | |
# python -m pip install flit | |
# make dev | |
# env: | |
# ESMF_VERSION: ${{ env.ESMF_VERSION }} | |
# - name: Check versions | |
# run: | | |
# python -m pip list | |
# echo ESMF_VERSION=$(cat $ESMFMKFILE | grep "ESMF_VERSION_STRING=" | awk -F= '{print $2}' | tr -d "'") | |
# python -m pip check || true | |
# - name: Test with pytest | |
# run: | | |
# make test | |
# env: | |
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
finish: | |
needs: | |
- test-conda | |
- test-notebooks | |
runs-on: ubuntu-latest | |
container: python:3-slim | |
steps: | |
- name: Coveralls Finished | |
run: | | |
python -m pip install --upgrade coveralls | |
python -m coveralls --finish | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
COVERALLS_SERVICE_NAME: github |