From b1ca012a1462559b116a0cb8f1ae9250edb7c9ad Mon Sep 17 00:00:00 2001 From: w-bonelli Date: Sat, 4 Oct 2025 18:39:45 -0400 Subject: [PATCH 1/5] ci: use modflow6 pixi env, remove requirements.txt --- .github/workflows/integration.yml | 35 ++++++++++++++++--------------- .github/workflows/release.yml | 34 +++++++++++++++++------------- requirements.txt | 3 --- 3 files changed, 37 insertions(+), 35 deletions(-) delete mode 100644 requirements.txt diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 277c9fd..bc6c545 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -28,13 +28,15 @@ jobs: repository: MODFLOW-ORG/modflow6 path: modflow6 - - name: Setup Micromamba - uses: mamba-org/setup-micromamba@v1 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.9.1 with: - environment-file: modflow6/environment.yml - cache-environment: true - cache-downloads: true - init-shell: bash + pixi-version: v0.41.4 + manifest-path: modflow6/pixi.toml + + - name: Custom pixi install + working-directory: modflow6 + run: pixi run install - name: Setup ${{ contains(fromJSON('["macos-14"]'), matrix.os) && 'gcc' || 'intel-classic' }} ${{ contains(fromJSON('["macos-14"]'), matrix.os) && env.GCC_V || env.INTEL_V }} uses: fortran-lang/setup-fortran@v1 @@ -69,13 +71,12 @@ jobs: if [[ "${{ matrix.os }}" == "macos-14" ]]; then setupargs="$setupargs -Doptimization=1" fi - meson setup builddir $setupargs - meson install -C builddir + pixi run build builddir $setupargs - name: Get OS tag id: ostag run: | - ostag=$(python -c "from modflow_devtools.ostags import get_ostag; print(get_ostag())") + ostag=$(pixi run --manifest-path modflow6/pixi.toml python -c "from modflow_devtools.ostags import get_ostag; print(get_ostag())") echo "ostag=$ostag" >> $GITHUB_OUTPUT - name: Build programs @@ -86,12 +87,12 @@ jobs: command: | ostag="${{ steps.ostag.outputs.ostag }}" mkdir $ostag - make-program : --appdir $ostag -ex gridgen --zip $ostag.zip --verbose - make-program mf2005,mflgr,mfnwt,mfusg --appdir $ostag --double --keep --zip $ostag.zip --verbose + pixi run --manifest-path modflow6/pixi.toml make-program : --appdir $ostag -ex gridgen --zip $ostag.zip --verbose + pixi run --manifest-path modflow6/pixi.toml make-program mf2005,mflgr,mfnwt,mfusg --appdir $ostag --double --keep --zip $ostag.zip --verbose if [[ "${{ matrix.os }}" == "macos-14" ]]; then - make-program mf6 --appdir $ostag --keep --zip $ostag.zip --verbose --fflags='-O1' + pixi run --manifest-path modflow6/pixi.toml make-program mf6 --appdir $ostag --keep --zip $ostag.zip --verbose --fflags='-O1' fi - make-code-json --appdir $ostag --zip $ostag.zip --verbose + pixi run --manifest-path modflow6/pixi.toml make-code-json --appdir $ostag --zip $ostag.zip --verbose - name: Move programs run: | @@ -150,9 +151,9 @@ jobs: ./code.md - name: Update flopy - working-directory: modflow6/autotest - run: python update_flopy.py + working-directory: modflow6 + run: pixi run update-flopy - name: Test modflow6 - working-directory: modflow6/autotest - run: pytest -v -n auto -m "not developmode" --durations 0 + working-directory: modflow6 + run: pixi run autotest -m "not developmode" diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 61e5e51..abee53a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -24,8 +24,11 @@ jobs: shell: bash steps: - - name: Checkout repo - uses: actions/checkout@v4 + - name: Checkout modflow6 + uses: actions/checkout@v5 + with: + repository: MODFLOW-ORG/modflow6 + path: modflow6 - name: Setup ${{ contains(fromJSON('["macos-14"]'), matrix.os) && 'gcc' || 'intel-classic' }} ${{ contains(fromJSON('["macos-14"]'), matrix.os) && env.GCC_V || env.INTEL_V }} uses: fortran-lang/setup-fortran@v1 @@ -65,21 +68,20 @@ jobs: echo "${{ github.repository }} version ${{ steps.tag.outputs.tag }}" echo "RELEASE_VERSION=${{ steps.tag.outputs.tag }}" >> $GITHUB_ENV - - name: Setup Python - uses: actions/setup-python@v4 + - name: Setup pixi + uses: prefix-dev/setup-pixi@v0.9.1 with: - python-version: "3.10" + pixi-version: v0.41.4 + manifest-path: modflow6/pixi.toml - - name: Install Python dependencies - run: | - python -m pip install --upgrade pip - pip install -r requirements.txt - pip list + - name: Custom pixi install + working-directory: modflow6 + run: pixi run install - name: Get OS tag id: ostag run: | - ostag=$(python -c "from modflow_devtools.ostags import get_ostag; print(get_ostag())") + ostag=$(pixi run --manifest-path modflow6/pixi.toml python -c "from modflow_devtools.ostags import get_ostag; print(get_ostag())") echo "ostag=$ostag" >> $GITHUB_OUTPUT - name: Build programs @@ -90,19 +92,21 @@ jobs: command: | ostag="${{ steps.ostag.outputs.ostag }}" mkdir $ostag - make-program : --appdir $ostag -ex gridgen --zip $ostag.zip --verbose - make-program mf2005,mflgr,mfnwt,mfusg --appdir $ostag --double --keep --zip $ostag.zip --verbose + pixi run --manifest-path modflow6/pixi.toml make-program : --appdir $ostag -ex gridgen --zip $ostag.zip --verbose + pixi run --manifest-path modflow6/pixi.toml make-program mf2005,mflgr,mfnwt,mfusg --appdir $ostag --double --keep --zip $ostag.zip --verbose if [[ "${{ matrix.os }}" == "macos-14" ]]; then - make-program mf6 --appdir $ostag --keep --zip $ostag.zip --verbose --fflags='-O1' + pixi run --manifest-path modflow6/pixi.toml make-program mf6 --appdir $ostag --keep --zip $ostag.zip --verbose --fflags='-O1' fi - make-code-json --appdir $ostag --zip $ostag.zip --verbose + pixi run --manifest-path modflow6/pixi.toml make-code-json --appdir $ostag --zip $ostag.zip --verbose - name: Show programs + working-directory: modflow6 run: | ostag="${{ steps.ostag.outputs.ostag }}" ls $ostag - name: Check linked libs (ARM macOS) + working-directory: modflow6 if: runner.os == 'macOS' run: | ostag="${{ steps.ostag.outputs.ostag }}" diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 1681eef..0000000 --- a/requirements.txt +++ /dev/null @@ -1,3 +0,0 @@ -wheel -https://github.com/modflowpy/pymake/archive/develop.zip -https://github.com/MODFLOW-ORG/modflow-devtools/archive/develop.zip \ No newline at end of file From 899527ab8d2b44eb886b0c2e4fe34af0ddfb910c Mon Sep 17 00:00:00 2001 From: w-bonelli Date: Sat, 4 Oct 2025 18:51:43 -0400 Subject: [PATCH 2/5] fix --- .github/workflows/release.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index abee53a..362f12d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -100,13 +100,11 @@ jobs: pixi run --manifest-path modflow6/pixi.toml make-code-json --appdir $ostag --zip $ostag.zip --verbose - name: Show programs - working-directory: modflow6 run: | ostag="${{ steps.ostag.outputs.ostag }}" ls $ostag - name: Check linked libs (ARM macOS) - working-directory: modflow6 if: runner.os == 'macOS' run: | ostag="${{ steps.ostag.outputs.ostag }}" From 0c529c8b84452ac039f2b46526ab57e518ec9800 Mon Sep 17 00:00:00 2001 From: w-bonelli Date: Sun, 5 Oct 2025 19:13:44 -0400 Subject: [PATCH 3/5] debug --- .github/workflows/release.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 362f12d..8d7bb4b 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -84,6 +84,12 @@ jobs: ostag=$(pixi run --manifest-path modflow6/pixi.toml python -c "from modflow_devtools.ostags import get_ostag; print(get_ostag())") echo "ostag=$ostag" >> $GITHUB_OUTPUT + # interactive debugging + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + with: + limit-access-to-actor: true + - name: Build programs uses: nick-fields/retry@v3 with: From 6bdc6c2106765ba4888745a7ffab2cacfb4905e4 Mon Sep 17 00:00:00 2001 From: wpbonelli Date: Mon, 6 Oct 2025 07:40:10 -0400 Subject: [PATCH 4/5] debug --- .github/workflows/release.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 8d7bb4b..91c50ad 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -87,8 +87,6 @@ jobs: # interactive debugging - name: Setup tmate session uses: mxschmitt/action-tmate@v3 - with: - limit-access-to-actor: true - name: Build programs uses: nick-fields/retry@v3 From 1615fdc5d757d192fea125c19f34e985f2025df0 Mon Sep 17 00:00:00 2001 From: wpbonelli Date: Mon, 6 Oct 2025 08:27:26 -0400 Subject: [PATCH 5/5] use full --exclude --- .github/workflows/integration.yml | 2 +- .github/workflows/release.yml | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index bc6c545..1d030fb 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -87,7 +87,7 @@ jobs: command: | ostag="${{ steps.ostag.outputs.ostag }}" mkdir $ostag - pixi run --manifest-path modflow6/pixi.toml make-program : --appdir $ostag -ex gridgen --zip $ostag.zip --verbose + pixi run --manifest-path modflow6/pixi.toml make-program : --appdir $ostag --exclude gridgen --zip $ostag.zip --verbose pixi run --manifest-path modflow6/pixi.toml make-program mf2005,mflgr,mfnwt,mfusg --appdir $ostag --double --keep --zip $ostag.zip --verbose if [[ "${{ matrix.os }}" == "macos-14" ]]; then pixi run --manifest-path modflow6/pixi.toml make-program mf6 --appdir $ostag --keep --zip $ostag.zip --verbose --fflags='-O1' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 91c50ad..4f83d3a 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -85,8 +85,8 @@ jobs: echo "ostag=$ostag" >> $GITHUB_OUTPUT # interactive debugging - - name: Setup tmate session - uses: mxschmitt/action-tmate@v3 + # - name: Setup tmate session + # uses: mxschmitt/action-tmate@v3 - name: Build programs uses: nick-fields/retry@v3 @@ -96,7 +96,7 @@ jobs: command: | ostag="${{ steps.ostag.outputs.ostag }}" mkdir $ostag - pixi run --manifest-path modflow6/pixi.toml make-program : --appdir $ostag -ex gridgen --zip $ostag.zip --verbose + pixi run --manifest-path modflow6/pixi.toml make-program : --appdir $ostag --exclude gridgen --zip $ostag.zip --verbose pixi run --manifest-path modflow6/pixi.toml make-program mf2005,mflgr,mfnwt,mfusg --appdir $ostag --double --keep --zip $ostag.zip --verbose if [[ "${{ matrix.os }}" == "macos-14" ]]; then pixi run --manifest-path modflow6/pixi.toml make-program mf6 --appdir $ostag --keep --zip $ostag.zip --verbose --fflags='-O1' @@ -200,8 +200,6 @@ jobs: # interactive debugging # - name: Setup tmate session # uses: mxschmitt/action-tmate@v3 - # with: - # limit-access-to-actor: true - name: Update readme id: update-readme