fix(par): GNC is not supported in parallel #2417
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: MODFLOW 6 continuous integration | |
on: | |
push: | |
paths-ignore: | |
- '**.md' | |
- '**.pdf' | |
- '**.tex' | |
- '**.jpg' | |
- '**.jpeg' | |
- '**.png' | |
- '**.bbl' | |
- '**.bib' | |
- 'doc/**.dat' | |
- 'doc/**.ipynb' | |
- 'doc/**.py' | |
- 'doc/**.sh' | |
- 'doc/**.xlsx' | |
- '.hpc/**' | |
pull_request: | |
branches: | |
- master | |
- develop | |
paths-ignore: | |
- '**.md' | |
- '**.pdf' | |
- '**.tex' | |
- '**.jpg' | |
- '**.jpeg' | |
- '**.png' | |
- '**.bbl' | |
- '**.bib' | |
- 'doc/**.dat' | |
- 'doc/**.ipynb' | |
- 'doc/**.py' | |
- 'doc/**.sh' | |
- 'doc/**.xlsx' | |
- '.hpc/**' | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }} | |
cancel-in-progress: true | |
env: | |
PIXI_BETA_WARNING_OFF: true | |
jobs: | |
lint: | |
name: Check format | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout modflow6 | |
uses: actions/checkout@v4 | |
- uses: prefix-dev/setup-pixi@v0.5.2 | |
with: | |
pixi-version: v0.19.1 | |
- name: Check Fortran source formatting | |
run: pixi run fortran-format-check | |
- name: Check MSVS project files | |
run: pixi run msvs-vfproj-check | |
- name: Check CITATION.cff | |
uses: dieghernan/cff-validator@v3 | |
build: | |
name: Build | |
runs-on: ubuntu-22.04 | |
env: | |
FC: gfortran | |
FC_V: 13 | |
steps: | |
- name: Checkout modflow6 | |
uses: actions/checkout@v4 | |
- name: Setup ${{ env.FC }} ${{ env.FC_V }} | |
uses: fortran-lang/setup-fortran@v1 | |
with: | |
compiler: gcc | |
version: ${{ env.FC_V }} | |
- uses: prefix-dev/setup-pixi@v0.5.2 | |
with: | |
pixi-version: v0.19.1 | |
- name: Meson setup | |
run: pixi run setup -Dwerror=true builddir | |
- name: Meson compile | |
run: pixi run build builddir | |
- name: Show build log | |
if: failure() | |
run: cat builddir/meson-logs/meson-log.txt | |
- name: Meson test | |
run: pixi run test builddir | |
smoke_test: | |
name: Smoke test | |
runs-on: ubuntu-22.04 | |
defaults: | |
run: | |
shell: bash | |
env: | |
FC: gfortran | |
FC_V: 13 | |
steps: | |
- name: Checkout modflow6 | |
uses: actions/checkout@v4 | |
with: | |
path: modflow6 | |
- name: Checkout test-drive | |
uses: actions/checkout@v4 | |
with: | |
repository: fortran-lang/test-drive | |
path: test-drive | |
- name: Setup ${{ env.FC }} ${{ env.FC_V }} | |
uses: fortran-lang/setup-fortran@v1 | |
with: | |
compiler: gcc | |
version: ${{ env.FC_V }} | |
- name: Setup pixi | |
uses: prefix-dev/setup-pixi@v0.5.2 | |
with: | |
pixi-version: v0.19.1 | |
manifest-path: "modflow6/pixi.toml" | |
- name: Build test-drive | |
working-directory: test-drive | |
run: | | |
pixi run --manifest-path=../modflow6/pixi.toml meson setup builddir --prefix=$(pwd) --libdir=lib | |
pixi run --manifest-path=../modflow6/pixi.toml meson install -C builddir | |
echo "PKG_CONFIG_PATH=$(pwd)/lib/pkgconfig:$PKG_CONFIG_PATH" >> $GITHUB_ENV | |
- name: Build modflow6 | |
working-directory: modflow6 | |
run: | | |
pixi run setup builddir | |
pixi run build builddir | |
- name: Show build log | |
if: failure() | |
working-directory: modflow6 | |
run: cat builddir/meson-logs/meson-log.txt | |
- name: Unit test programs | |
working-directory: modflow6 | |
run: pixi run test builddir | |
- name: Update flopy | |
working-directory: modflow6 | |
run: pixi run update-flopy | |
- name: Get executables | |
working-directory: modflow6 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: pixi run get-exes | |
- name: Test programs | |
working-directory: modflow6 | |
run: | | |
if [ "${{ github.ref_name }}" == "master" ]; then | |
pixi run autotest -m "not slow and not regression and not developmode" | |
else | |
pixi run autotest --smoke | |
fi | |
- name: Upload failed test output | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: failed-smoke-${{ runner.os }}-${{ env.FC }}-${{ env.FC_V }} | |
path: modflow6/autotest/.failed | |
test_gfortran: | |
name: Test gnu fortran | |
needs: | |
- lint | |
- build | |
- smoke_test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-22.04, macos-12, macos-14, windows-2022 ] | |
defaults: | |
run: | |
shell: bash | |
env: | |
FC: gfortran | |
FC_V: 13 | |
steps: | |
- name: Checkout modflow6 | |
uses: actions/checkout@v4 | |
with: | |
path: modflow6 | |
- name: Checkout modflow6-testmodels | |
uses: actions/checkout@v4 | |
with: | |
repository: MODFLOW-USGS/modflow6-testmodels | |
path: modflow6-testmodels | |
- name: Checkout modflow6-examples | |
uses: actions/checkout@v4 | |
with: | |
repository: MODFLOW-USGS/modflow6-examples | |
path: modflow6-examples | |
- name: Setup ${{ env.FC }} ${{ env.FC_V }} | |
uses: fortran-lang/setup-fortran@v1 | |
with: | |
compiler: gcc | |
version: ${{ env.FC_V }} | |
- name: Setup pixi | |
uses: prefix-dev/setup-pixi@v0.5.2 | |
with: | |
pixi-version: v0.19.1 | |
manifest-path: "modflow6/pixi.toml" | |
- name: Set LDFLAGS (macOS) | |
if: matrix.os == 'macos-14' | |
run: | | |
os_ver=$(sw_vers -productVersion | cut -d'.' -f1) | |
if (( "$os_ver" > 12 )); then | |
ldflags="$LDFLAGS -Wl,-ld_classic" | |
echo "LDFLAGS=$ldflags" >> $GITHUB_ENV | |
fi | |
- name: Build modflow6 | |
working-directory: modflow6 | |
run: | | |
pixi run setup builddir | |
pixi run build builddir | |
- name: Show build log | |
if: failure() | |
working-directory: modflow6 | |
run: cat builddir/meson-logs/meson-log.txt | |
- name: Unit test programs | |
working-directory: modflow6 | |
run: pixi run test builddir | |
- name: Update flopy | |
working-directory: modflow6 | |
run: pixi run update-flopy | |
- name: Get executables | |
working-directory: modflow6/autotest | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: pixi run get-exes | |
- name: Test modflow6 | |
working-directory: modflow6 | |
env: | |
REPOS_PATH: ${{ github.workspace }} | |
run: | | |
if [ "${{ github.ref_name }}" == "master" ]; then | |
pixi run autotest -m "not large and not developmode" | |
else | |
pixi run autotest -m "not large" | |
fi | |
- name: Upload failed test output | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: failed-${{ matrix.os }}-${{ env.FC }}-${{ env.FC_V }} | |
path: modflow6/autotest/.failed | |
- name: Checkout usgslatex | |
if: runner.os == 'Linux' | |
uses: actions/checkout@v4 | |
with: | |
repository: MODFLOW-USGS/usgslatex | |
path: usgslatex | |
- name: Install TeX Live | |
if: runner.os == 'Linux' | |
run: | | |
sudo apt-get update | |
sudo apt install texlive-science \ | |
texlive-latex-extra \ | |
texlive-font-utils \ | |
texlive-fonts-recommended \ | |
texlive-fonts-extra | |
- name: Install USGS LaTeX style files and Univers font | |
if: runner.os == 'Linux' | |
working-directory: usgslatex/usgsLaTeX | |
run: sudo ./install.sh --all-users | |
- name: Test distribution scripts | |
working-directory: modflow6 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: pixi run test-dist-scripts | |
test_intel_fortran: | |
name: Test intel fortran | |
needs: | |
- lint | |
- build | |
- smoke_test | |
runs-on: ${{ matrix.os }} | |
env: | |
FC: intel-classic | |
FC_V: "2021.7" | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-22.04, macos-12, windows-2022] | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout modflow6 | |
uses: actions/checkout@v4 | |
with: | |
path: modflow6 | |
- name: Checkout modflow6-testmodels | |
uses: actions/checkout@v4 | |
with: | |
repository: MODFLOW-USGS/modflow6-testmodels | |
path: modflow6-testmodels | |
- name: Checkout modflow6-examples | |
uses: actions/checkout@v4 | |
with: | |
repository: MODFLOW-USGS/modflow6-examples | |
path: modflow6-examples | |
- name: Setup pixi | |
uses: prefix-dev/setup-pixi@v0.5.2 | |
with: | |
pixi-version: v0.19.1 | |
manifest-path: "modflow6/pixi.toml" | |
- name: Setup ${{ env.FC }} ${{ env.FC_V }} | |
uses: fortran-lang/setup-fortran@v1 | |
with: | |
compiler: ${{ env.FC }} | |
version: ${{ env.FC_V }} | |
- name: Update version files | |
working-directory: modflow6 | |
run: pixi run update-version | |
- name: Build modflow6 | |
working-directory: modflow6 | |
run: | | |
pixi run setup builddir | |
pixi run build builddir | |
- name: Show build log | |
if: failure() | |
working-directory: modflow6 | |
run: cat builddir/meson-logs/meson-log.txt | |
- name: Unit test programs | |
working-directory: modflow6 | |
run: pixi run test builddir | |
- name: Update flopy | |
working-directory: modflow6 | |
run: pixi run update-flopy | |
- name: Get executables | |
working-directory: modflow6 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: pixi run get-exes | |
- name: Test programs | |
working-directory: modflow6 | |
env: | |
REPOS_PATH: ${{ github.workspace }} | |
run: | | |
if [ "${{ github.ref_name }}" == "master" ]; then | |
pixi run autotest -m "not large and not developmode" | |
else | |
pixi run autotest -m "not large" | |
fi | |
- name: Upload failed test output | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: failed-${{ matrix.os }}-${{ env.FC }}-${{ env.FC_V }} | |
path: modflow6/autotest/.failed | |
- name: Test scripts | |
working-directory: modflow6 | |
env: | |
GITHUB_TOKEN: ${{ github.token }} | |
run: pixi run test-dist-scripts | |
parallel_test: | |
name: Parallel testing | |
needs: | |
- lint | |
- build | |
- smoke_test | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ ubuntu-22.04, macos-12, windows-2022 ] | |
defaults: | |
run: | |
shell: bash | |
steps: | |
- name: Checkout modflow6 | |
uses: actions/checkout@v4 | |
with: | |
path: modflow6 | |
- name: Setup pixi | |
uses: prefix-dev/setup-pixi@v0.5.2 | |
with: | |
pixi-version: v0.19.1 | |
manifest-path: "modflow6/pixi.toml" | |
- name: Test parallel MF6 | |
if: runner.os != 'Windows' | |
uses: ./modflow6/.github/actions/test-par | |
- name: Test parallel MF6 (Windows) | |
if: runner.os == 'Windows' | |
uses: ./modflow6/.github/actions/test-par-win | |
- name: Upload failed test output | |
if: failure() | |
uses: actions/upload-artifact@v4 | |
with: | |
name: failed-${{ matrix.os }} | |
path: modflow6/autotest/.failed |