Skip to content

Merge branch 'main' into dokken/pull_back_scratch_memory #343

Merge branch 'main' into dokken/pull_back_scratch_memory

Merge branch 'main' into dokken/pull_back_scratch_memory #343

Workflow file for this run

name: Conda install
on:
# build on push/pr to this file
push:
paths:
- .github/workflows/conda.yml
# Uncomment the below 'push' to trigger on push
# branches:
# - "**"
pull_request:
paths:
- .github/workflows/conda.yml
schedule:
# '*' is a special character in YAML, so string must be quoted
- cron: "0 2 * * WED"
workflow_dispatch: ~
env:
UCX_TLS: tcp # Use TCP only, avoiding InfiniBand/MANA
jobs:
conda-install:
name: Install and test
strategy:
matrix:
os: [ubuntu-26.04, ubuntu-26.04-arm, macos-15, macos-26, windows-2022]
python-version: ["3.11", "3.12", "3.13", "3.14"]
petsc-scalar-type: ["real"]
include:
- os: ubuntu-26.04
python-version: "3.12"
petsc-scalar-type: "complex"
exclude:
- os: windows-2022
python-version: "3.13"
runs-on: ${{ matrix.os }}
timeout-minutes: 30
# This is necessary to ensure conda environment is activated in every step.
defaults:
run:
shell: bash -el {0}
steps:
- uses: conda-incubator/setup-miniconda@v4
with:
auto-update-conda: true
channels: conda-forge
mamba-version: ">=2.6"
miniforge-version: latest
python-version: ${{ matrix.python-version }}
# TODO: These could probably be merged into one cross-platform step.
- name: Install DOLFINx with MPICH (Unix-like)
if: ${{ runner.os == 'macOS' || runner.os == 'Linux' }}
run: |
mamba install fenics-dolfinx mpich petsc=*=${{ matrix.petsc-scalar-type }}*
- name: Install DOLFINx (Windows)
if: ${{ runner.os == 'Windows' }}
run: |
mamba install fenics-dolfinx
- name: Test (Unix-like)
if: ${{ runner.os == 'macOS' || runner.os == 'Linux' }}
run: |
conda info
conda list
mpiexec --version
mpiexec -v -np 1 python -c "from mpi4py import MPI; import dolfinx; dolfinx.mesh.create_rectangle(comm=MPI.COMM_WORLD, points=((0, 0), (2, 1)), n=(32, 16))"
mpiexec -v -np 2 python -c "from mpi4py import MPI; import dolfinx; dolfinx.mesh.create_rectangle(comm=MPI.COMM_WORLD, points=((0, 0), (2, 1)), n=(32, 16))"
# NOTE: Late 2024, Intel MPI is only correctly setup using cmd.exe.
- name: Test (Windows)
if: ${{ runner.os == 'Windows' }}
shell: cmd /C CALL {0}
run: |
conda info
conda list
mpiexec --version
mpiexec -v -np 1 python -c "from mpi4py import MPI; import dolfinx; dolfinx.mesh.create_rectangle(comm=MPI.COMM_WORLD, points=((0, 0), (2, 1)), n=(32, 16))"
mpiexec -v -np 2 python -c "from mpi4py import MPI; import dolfinx; dolfinx.mesh.create_rectangle(comm=MPI.COMM_WORLD, points=((0, 0), (2, 1)), n=(32, 16))"