Add 1st netcdf example based on watershed model #48
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: GW3099 continuous integration | |
on: | |
# run at 6 AM UTC every day | |
schedule: | |
- cron: '0 6 * * *' | |
push: | |
branches: | |
- main | |
paths-ignore: | |
- '**.md' | |
pull_request: | |
branches: | |
- main | |
paths-ignore: | |
- '**.md' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
lint: | |
name: Lint | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Setup python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.10' | |
- name: Install ruff | |
run: pip install ruff | |
- name: Lint | |
run: ruff check . | |
- name: Check format | |
run: ruff format . --check | |
install_env_linux: | |
name: Install gw3099 environment on linux | |
needs: lint | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ["3.9", "3.10", "3.11"] | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: apt install | |
run: | | |
sudo apt-get install -y pkg-config petsc-dev libnetcdf-dev | |
- name: list installed packages | |
run: | | |
pkg-config --list-all | grep petsc | |
pkg-config --list-all | grep netcdf | |
pkg-config --list-all | grep hdf | |
- name: Install miniconda | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
environment-file: "environment.yml" | |
activate-environment: "gw3099" | |
auto-activate-base: false | |
- name: Update flopy mf6 classes | |
run: | | |
conda env list | |
python -m flopy.mf6.utils.generate_classes --ref 'develop' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Clone MODFLOW repo | |
run: | | |
git clone --depth 1 --branch develop https://github.com/MODFLOW-USGS/modflow6.git | |
- name: Build extended version of MODFLOW | |
if: runner.os != 'Windows' | |
working-directory: modflow6 | |
run: | | |
meson setup builddir -Ddebug=false -Dextended=true --prefix=$(pwd) --libdir=bin | |
meson install -C builddir | |
meson test --verbose --no-rebuild -C builddir | |
- name: Create symbolic links on Linux | |
working-directory: modflow6 | |
run: | | |
ln -sf $(pwd)/bin/mf6 $CONDA_PREFIX/bin/mf6 | |
ln -sf $(pwd)/bin/libmf6.so $CONDA_PREFIX/bin/libmf6.so | |
- name: Test modflow installation | |
if: runner.os != 'Windows' | |
run: | | |
which mf6 | |
mf6 -v | |
mf6 -co | |
- name: Test notebooks | |
working-directory: .scripts | |
run: | | |
python test_notebooks.py --script | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
install_env: | |
name: Install gw3099 environment | |
needs: lint | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["macos-latest", "windows-latest"] | |
python-version: ["3.9", "3.10", "3.11"] | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Update environment file | |
working-directory: .scripts | |
run: | | |
python update_env_file.py | |
- name: Install miniconda | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
environment-file: "environment.yml" | |
activate-environment: "gw3099" | |
auto-activate-base: false | |
- name: List netcdf version | |
if: runner.os != 'Windows' | |
run: | | |
which nc-config | |
nc-config --version | |
pkg-config --libs netcdf | |
pkg-config --libs netcdf-fortran | |
- name: Update flopy mf6 classes | |
run: | | |
conda env list | |
python -m flopy.mf6.utils.generate_classes --ref 'develop' | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Update package config files | |
if: (runner.os != 'Windows') | |
working-directory: .scripts | |
run: | | |
python update_pc_files.py | |
- name: Clone MODFLOW repo | |
run: | | |
git clone --depth 1 --branch develop https://github.com/MODFLOW-USGS/modflow6.git | |
- name: Build extended version of MODFLOW | |
if: runner.os != 'Windows' | |
working-directory: modflow6 | |
run: | | |
meson setup builddir -Ddebug=false -Dextended=true --prefix=$(pwd) --libdir=bin | |
meson install -C builddir | |
meson test --verbose --no-rebuild -C builddir | |
- name: Create symbolic links on Linux | |
if: runner.os == 'Linux' | |
working-directory: modflow6 | |
run: | | |
ln -sf $(pwd)/bin/mf6 $CONDA_PREFIX/bin/mf6 | |
ln -sf $(pwd)/bin/libmf6.so $CONDA_PREFIX/bin/libmf6.so | |
- name: Create symbolic links on MacOS | |
if: runner.os == 'macOS' | |
working-directory: modflow6 | |
run: | | |
ln -sf $(pwd)/bin/mf6 $CONDA_PREFIX/bin/mf6 | |
ln -sf $(pwd)/bin/libmf6.dylib $CONDA_PREFIX/bin/libmf6.dylib | |
- name: Test modflow installation | |
if: runner.os != 'Windows' | |
run: | | |
which mf6 | |
mf6 -v | |
mf6 -co | |
- name: Get and test parallel MODFLOW on Windows | |
if: runner.os == 'Windows' | |
working-directory: modflow6/.mf6minsim | |
run: | | |
get-modflow --repo modflow6-nightly-build --ostag win64par :python | |
mpiexec -n 1 mf6 -p | |
mpiexec -n 2 mf6 -p | |
- name: Test notebooks | |
working-directory: .scripts | |
run: | | |
python test_notebooks.py | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
install_vizenv: | |
name: Install viz environment | |
needs: lint | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: ["ubuntu-latest", "macos-latest", "windows-latest"] | |
python-version: ["3.9", "3.10", "3.11"] | |
defaults: | |
run: | |
shell: bash -el {0} | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
- name: Install miniconda | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: ${{ matrix.python-version }} | |
environment-file: 'environment-viz.yml' | |
activate-environment: 'gw3099viz' | |
auto-activate-base: false | |
- name: Conda info | |
run: | | |
conda info | |
conda list | |