refactor: restore double precision executables #396
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: 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 | |
# only necessary because we need mf5to6 for mf6 autotests | |
- name: Build modflow6 | |
working-directory: modflow6 | |
run: | | |
meson setup builddir --prefix=$(pwd) --libdir=bin -Ddebug=false | |
meson install -C builddir | |
- name: Build programs | |
run: | | |
# build programs | |
mkdir programs | |
python executables/scripts/build_programs.py -p programs | |
# move programs where mf6 autotests expect them | |
cp programs/* modflow6/bin/downloaded | |
# move mf6 binaries to top-level bindir in mf6 repo | |
if [[ "$RUNNER_OS" == "Windows" ]]; then | |
eext=".exe" | |
oext=".dll" | |
elif [[ "$RUNNER_OS" == "Linux" ]]; then | |
eext="" | |
oext=".so" | |
else | |
eext="" | |
oext=".dylib" | |
fi | |
cp "modflow6/bin/downloaded/mf6$eext" modflow6/bin | |
cp "modflow6/bin/downloaded/libmf6$oext" modflow6/bin | |
cp "modflow6/bin/downloaded/zbud6$eext" modflow6/bin | |
# set execute permissions | |
if [[ "$RUNNER_OS" != "Windows" ]]; then | |
sudo chmod +x modflow6/bin/* | |
sudo chmod +x modflow6/bin/downloaded/* | |
fi | |
- name: Upload programs | |
uses: actions/upload-artifact@v3 | |
with: | |
name: programs | |
path: programs.zip | |
- name: Upload metadata | |
if: runner.os == 'Linux' | |
uses: actions/upload-artifact@v3 | |
with: | |
name: metadata | |
path: | | |
./code.json | |
./code.md | |
- name: Test modflow6 | |
working-directory: modflow6/autotest | |
run: | | |
python update_flopy.py | |
pytest -v -n auto -k "not gwe" -m "not developmode" --durations 0 |