Integration testing #345
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: Integration testing | |
on: | |
push: | |
paths-ignore: | |
- '**.md' | |
pull_request: | |
branches: | |
- master | |
- develop | |
paths-ignore: | |
- '**.md' | |
schedule: | |
- cron: '0 6 * * *' # run at 6 AM UTC every day | |
jobs: | |
test_modflow: | |
name: MODFLOW 6 integration tests | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-20.04, macos-latest, windows-2019 ] | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Checkout repo | |
uses: actions/checkout@v4 | |
with: | |
path: executables | |
- name: Checkout modflow6 | |
uses: actions/checkout@v4 | |
with: | |
repository: MODFLOW-USGS/modflow6 | |
path: modflow6 | |
- name: Setup Micromamba | |
uses: mamba-org/setup-micromamba@v1 | |
with: | |
environment-file: modflow6/environment.yml | |
cache-environment: true | |
cache-downloads: true | |
init-shell: bash | |
- name: Setup Intel fortran | |
uses: fortran-lang/setup-fortran@v1 | |
with: | |
compiler: intel-classic | |
version: 2021.7 | |
- name: Build modflow6 | |
working-directory: modflow6 | |
run: | | |
meson setup builddir --prefix=$(pwd) --libdir=bin -Ddebug=false | |
meson install -C builddir | |
- name: Show meson build log | |
if: failure() | |
working-directory: modflow6 | |
run: cat builddir/meson-logs/meson-log.txt | |
- name: Unit test modflow6 | |
working-directory: modflow6 | |
run: meson test --verbose --no-rebuild -C builddir | |
- name: Update FloPy | |
working-directory: modflow6/autotest | |
run: python update_flopy.py | |
- name: Get executables | |
working-directory: modflow6/autotest | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: pytest -v -s get_exes.py | |
- name: Build executables | |
working-directory: executables/scripts | |
run: python build_executables.py -p ../../modflow6/bin/downloaded | |
- name: Set executable permission | |
if: runner.os != 'Windows' | |
working-directory: modflow6/bin/downloaded | |
run: sudo chmod +x * | |
- name: Test modflow6 | |
working-directory: modflow6/autotest | |
run: pytest -v -n auto --durations 0 |