diff --git a/.github/workflows/integration.yml b/.github/workflows/integration.yml index 95f4324..3f1aef4 100644 --- a/.github/workflows/integration.yml +++ b/.github/workflows/integration.yml @@ -15,122 +15,122 @@ on: schedule: - cron: '0 6 * * *' # run at 6 AM UTC every day jobs: - test_modflow_meson: - name: Build modflow6 with meson - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - os: [ ubuntu-latest, macos-latest, windows-latest ] - env: [ pip, miniconda, micromamba ] - defaults: - run: - shell: - # necessary for miniconda and micromamba - # https://github.com/mamba-org/provision-with-micromamba#important - bash -l {0} - steps: - - - name: Checkout action - uses: actions/checkout@v3 - - - name: Checkout modflow6 - uses: actions/checkout@v3 - with: - repository: MODFLOW-USGS/modflow6 - path: modflow6 - - - name: Setup Python - if: matrix.env == 'pip' - uses: actions/setup-python@v4 - with: - python-version: 3.9 - cache: 'pip' - - - name: Install Python dependencies - if: matrix.env == 'pip' - shell: bash - run: pip install -r test/requirements.txt - - - name: Install miniconda environment - if: matrix.env == 'miniconda' - uses: conda-incubator/setup-miniconda@v2 - with: - environment-file: modflow6/environment.yml - - - name: Install micromamba environment - if: matrix.env == 'micromamba' - uses: mamba-org/provision-with-micromamba@main - with: - environment-file: modflow6/environment.yml - cache-downloads: true - cache-env: true - - - name: Install ifort - uses: ./ - with: - path: ${{ runner.os != 'Windows' && 'bin' || 'C:\Program Files (x86)\Intel\oneAPI' }} - - - name: Build modflow6 (Linux & Mac) - if: runner.os != 'Windows' && matrix.env == 'pip' - working-directory: modflow6 - shell: bash - run: | - meson setup builddir -Ddebug=false --prefix=$(pwd) --libdir=bin - meson compile -v -C builddir - meson install -C builddir - - - name: Build modflow6 (Linux & Mac) - if: runner.os != 'Windows' && matrix.env != 'pip' - working-directory: modflow6 - run: | - meson setup builddir -Ddebug=false --prefix=$(pwd) --libdir=bin - meson compile -v -C builddir - meson install -C builddir - - - name: Add micromamba Scripts dir to path (Windows) - if: runner.os == 'Windows' && matrix.env == 'micromamba' - shell: pwsh - run: | - # adding micromamba scripts dir to system path - $mamba_bin = "C:\Users\runneradmin\micromamba-root\envs\modflow6\Scripts" - - if (Test-Path $mamba_bin) { - echo "adding micromamba scripts dir to path: $mamba_bin" - echo $mamba_bin | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append - } - - - name: Build modflow6 (Windows bash) - if: runner.os == 'Windows' - continue-on-error: true - working-directory: modflow6 - shell: bash -l {0} - run: | - meson setup builddir -Ddebug=false --prefix=$(pwd) --libdir=bin - meson compile -v -C builddir - meson install -C builddir - - - name: Show meson build log - run: cat modflow6/builddir/meson-logs/meson-log.txt - - - name: Build modflow6 (Windows pwsh) - if: runner.os == 'Windows' - continue-on-error: true - working-directory: modflow6 - shell: pwsh - run: | - meson setup builddir -Ddebug=false --prefix=$(pwd) --libdir=bin --wipe - meson compile -v -C builddir - meson install -C builddir - - - name: Build modflow6 (Windows cmd) - if: runner.os == 'Windows' - working-directory: modflow6 - shell: cmd /C call {0} - run: | - meson setup builddir -Ddebug=false --prefix=%CD% --libdir=bin --wipe - meson compile -v -C builddir - meson install -C builddir + # test_modflow_meson: + # name: Build modflow6 with meson + # runs-on: ${{ matrix.os }} + # strategy: + # fail-fast: false + # matrix: + # os: [ ubuntu-latest, macos-latest, windows-latest ] + # env: [ pip, miniconda, micromamba ] + # defaults: + # run: + # shell: + # # necessary for miniconda and micromamba + # # https://github.com/mamba-org/provision-with-micromamba#important + # bash -l {0} + # steps: + + # - name: Checkout action + # uses: actions/checkout@v3 + + # - name: Checkout modflow6 + # uses: actions/checkout@v3 + # with: + # repository: MODFLOW-USGS/modflow6 + # path: modflow6 + + # - name: Setup Python + # if: matrix.env == 'pip' + # uses: actions/setup-python@v4 + # with: + # python-version: 3.9 + # cache: 'pip' + + # - name: Install Python dependencies + # if: matrix.env == 'pip' + # shell: bash + # run: pip install -r test/requirements.txt + + # - name: Install miniconda environment + # if: matrix.env == 'miniconda' + # uses: conda-incubator/setup-miniconda@v2 + # with: + # environment-file: modflow6/environment.yml + + # - name: Install micromamba environment + # if: matrix.env == 'micromamba' + # uses: mamba-org/provision-with-micromamba@main + # with: + # environment-file: modflow6/environment.yml + # cache-downloads: true + # cache-env: true + + # - name: Install ifort + # uses: ./ + # with: + # path: ${{ runner.os != 'Windows' && 'bin' || 'C:\Program Files (x86)\Intel\oneAPI' }} + + # - name: Build modflow6 (Linux & Mac) + # if: runner.os != 'Windows' && matrix.env == 'pip' + # working-directory: modflow6 + # shell: bash + # run: | + # meson setup builddir -Ddebug=false --prefix=$(pwd) --libdir=bin + # meson compile -v -C builddir + # meson install -C builddir + + # - name: Build modflow6 (Linux & Mac) + # if: runner.os != 'Windows' && matrix.env != 'pip' + # working-directory: modflow6 + # run: | + # meson setup builddir -Ddebug=false --prefix=$(pwd) --libdir=bin + # meson compile -v -C builddir + # meson install -C builddir + + # - name: Add micromamba Scripts dir to path (Windows) + # if: runner.os == 'Windows' && matrix.env == 'micromamba' + # shell: pwsh + # run: | + # # adding micromamba scripts dir to system path + # $mamba_bin = "C:\Users\runneradmin\micromamba-root\envs\modflow6\Scripts" + # + # if (Test-Path $mamba_bin) { + # echo "adding micromamba scripts dir to path: $mamba_bin" + # echo $mamba_bin | Out-File -FilePath $env:GITHUB_PATH -Encoding utf8 -Append + # } + + # - name: Build modflow6 (Windows bash) + # if: runner.os == 'Windows' + # continue-on-error: true + # working-directory: modflow6 + # shell: bash -l {0} + # run: | + # meson setup builddir -Ddebug=false --prefix=$(pwd) --libdir=bin + # meson compile -v -C builddir + # meson install -C builddir + + # - name: Show meson build log + # run: cat modflow6/builddir/meson-logs/meson-log.txt + + # - name: Build modflow6 (Windows pwsh) + # if: runner.os == 'Windows' + # continue-on-error: true + # working-directory: modflow6 + # shell: pwsh + # run: | + # meson setup builddir -Ddebug=false --prefix=$(pwd) --libdir=bin --wipe + # meson compile -v -C builddir + # meson install -C builddir + + # - name: Build modflow6 (Windows cmd) + # if: runner.os == 'Windows' + # working-directory: modflow6 + # shell: cmd /C call {0} + # run: | + # meson setup builddir -Ddebug=false --prefix=%CD% --libdir=bin --wipe + # meson compile -v -C builddir + # meson install -C builddir test_modflow_msvs: name: Build modflow6 with MSVS @@ -162,70 +162,73 @@ jobs: with: vs2019: 'true' + - name: Setup tmate session + uses: mxschmitt/action-tmate@v3 + - name: Build modflow6 working-directory: modflow6/msvs run: devenv mf6.sln /Build - name: Show build log shell: bash - run: cat "D:\a\modflow6\modflow6\modflow6\msvs\UpgradeLog.htm" - - test_pymake: - name: Test pymake integration - runs-on: ${{ matrix.os }} - strategy: - fail-fast: false - matrix: - # windows-2022 runners have Visual Studio 17.4.*, which oneapi toolchain doesn't support yet - os: [ ubuntu-latest, macos-latest, windows-2019 ] - defaults: - run: - shell: bash - steps: - - - name: Checkout action - uses: actions/checkout@v3 - - - name: Checkout pymake - uses: actions/checkout@v3 - with: - repository: modflowpy/pymake - path: pymake - - - name: Setup Graphviz - if: runner.os == 'Linux' - uses: ts-graphviz/setup-graphviz@v1 - - - name: Set up Python - uses: actions/setup-python@v4.3.0 - with: - python-version: 3.9 - - - name: Install Python packages - working-directory: pymake - run: .github/common/install-python.sh - - - name: Setup oneAPI compilers - uses: ./ - with: - path: ${{ runner.os != 'Windows' && 'bin' || 'C:\Program Files (x86)\Intel\oneAPI' }} - - - name: Download examples - working-directory: pymake - run: .github/common/download-examples.sh - - - name: Test (Linux) - if: runner.os == 'Linux' - working-directory: pymake - run: pytest -v -n=auto --dist=loadfile -m="base or regression" --durations=0 --cov=pymake --cov-report=xml autotest/ - - - name: Test (MacOS) - if: runner.os == 'macOS' - working-directory: pymake - run: pytest -v -n=auto --dist=loadfile -m="base" --durations=0 --cov=pymake --cov-report=xml autotest/ - - - name: Test (Windows) - if: runner.os == 'Windows' - working-directory: pymake - shell: cmd - run: pytest -v -m="base" --durations=0 --cov=pymake --cov-report=xml autotest/ \ No newline at end of file + run: cat "D:\a\install-intelfortran-action\install-intelfortran-action\modflow6\msvs\UpgradeLog.htm" + + # test_pymake: + # name: Test pymake integration + # runs-on: ${{ matrix.os }} + # strategy: + # fail-fast: false + # matrix: + # # windows-2022 runners have Visual Studio 17.4.*, which oneapi toolchain doesn't support yet + # os: [ ubuntu-latest, macos-latest, windows-2019 ] + # defaults: + # run: + # shell: bash + # steps: + + # - name: Checkout action + # uses: actions/checkout@v3 + + # - name: Checkout pymake + # uses: actions/checkout@v3 + # with: + # repository: modflowpy/pymake + # path: pymake + + # - name: Setup Graphviz + # if: runner.os == 'Linux' + # uses: ts-graphviz/setup-graphviz@v1 + + # - name: Set up Python + # uses: actions/setup-python@v4.3.0 + # with: + # python-version: 3.9 + + # - name: Install Python packages + # working-directory: pymake + # run: .github/common/install-python.sh + + # - name: Setup oneAPI compilers + # uses: ./ + # with: + # path: ${{ runner.os != 'Windows' && 'bin' || 'C:\Program Files (x86)\Intel\oneAPI' }} + + # - name: Download examples + # working-directory: pymake + # run: .github/common/download-examples.sh + + # - name: Test (Linux) + # if: runner.os == 'Linux' + # working-directory: pymake + # run: pytest -v -n=auto --dist=loadfile -m="base or regression" --durations=0 --cov=pymake --cov-report=xml autotest/ + + # - name: Test (MacOS) + # if: runner.os == 'macOS' + # working-directory: pymake + # run: pytest -v -n=auto --dist=loadfile -m="base" --durations=0 --cov=pymake --cov-report=xml autotest/ + + # - name: Test (Windows) + # if: runner.os == 'Windows' + # working-directory: pymake + # shell: cmd + # run: pytest -v -m="base" --durations=0 --cov=pymake --cov-report=xml autotest/ \ No newline at end of file