Cancel superseded pull request runs #351
Workflow file for this run
This file contains hidden or 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: 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: ~ | |
| # Cancel superseded runs: a new commit on a pull request makes the | |
| # previous run's result irrelevant. Pushes to 'main' and 'release' are | |
| # left to finish, since they populate caches and publish artefacts. | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| 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))" |