Skip to content

Support running inside a container #101

Support running inside a container

Support running inside a container #101

Workflow file for this run

name: ci
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:
jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
mpi:
- mpich
- openmpi
- intelmpi
- msmpi
os:
- ubuntu-22.04
- ubuntu-20.04
- macos-14
- macos-13
- macos-12
- windows-2022
- windows-2019
exclude:
- os: ubuntu-22.04
mpi: msmpi
- os: ubuntu-20.04
mpi: msmpi
- os: macos-14
mpi: intelmpi
- os: macos-14
mpi: msmpi
- os: macos-13
mpi: intelmpi
- os: macos-13
mpi: msmpi
- os: macos-12
mpi: intelmpi
- os: macos-12
mpi: msmpi
- os: windows-2022
mpi: mpich
- os: windows-2022
mpi: openmpi
- os: windows-2019
mpi: mpich
- os: windows-2019
mpi: openmpi
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup MPI
id: setup-mpi
uses: ./
with:
mpi: ${{ matrix.mpi }}
- name: Show MPI name
run: echo "${{ steps.setup-mpi.outputs.mpi }}"
- name: Show MPI info
run: mpichversion
if: ${{ matrix.mpi == 'mpich' }}
- name: Show MPI info
run: ompi_info
if: ${{ matrix.mpi == 'openmpi' }}
- name: Show MPI info
run: impi_info
if: ${{ matrix.mpi == 'intelmpi' }}
- name: Show MPI info
run: |
Write-Host MSMPI_BIN=$Env:MSMPI_BIN
Write-Host MSMPI_INC=$Env:MSMPI_INC
Write-Host MSMPI_LIB32=$Env:MSMPI_LIB32
Write-Host MSMPI_LIB64=$Env:MSMPI_LIB64
if: ${{ matrix.mpi == 'msmpi' }}
- name: Show MPI compiler wrappers
run: |
command -v mpicc
mpicc -show
command -v mpicxx
mpicxx -show
mpifort=$(command -v mpifort || command -v mpifc)
command -v $mpifort
$mpifort -show
if: ${{ runner.os != 'Windows' }}
- name: Show MPI compiler wrappers
run: |
mpicc -show
mpicxx -show
mpifc -show
if: ${{ runner.os == 'Windows' && matrix.mpi == 'intelmpi' }}
- name: Help MPI executor
run: |
command -v mpiexec
mpiexec --help
if: ${{ runner.os != 'Windows' }}
- name: Help MPI executor
run: |
mpiexec -help
if: ${{ runner.os == 'Windows' && matrix.mpi == 'intelmpi' }}
- name: Help MPI executor
run: |
mpiexec /help2
mpiexec /help3
if: ${{ runner.os == 'Windows' && matrix.mpi == 'msmpi' }}
Linux:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup MPICH
id: setup1
uses: ./
with:
mpi: mpich
- run: test ${{ steps.setup1.outputs.mpi }} == mpich
- run: command -v mpichversion
- name: Setup Open MPI
id: setup2
uses: ./
with:
mpi: openmpi
- run: test ${{ steps.setup2.outputs.mpi }} == openmpi
- run: command -v ompi_info
- name: Setup Intel MPI
id: setup3
uses: ./
with:
mpi: intelmpi
- run: test ${{ steps.setup3.outputs.mpi }} == intelmpi
- run: command -v impi_info
container:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
image:
- debian
- ubuntu
container: ${{ matrix.image }}
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup MPICH
id: setup1
uses: ./
with:
mpi: mpich
- run: test ${{ steps.setup1.outputs.mpi }} = mpich
- run: command -v mpichversion
- name: Setup Open MPI
id: setup2
uses: ./
with:
mpi: openmpi
- run: test ${{ steps.setup2.outputs.mpi }} = openmpi
- run: command -v ompi_info
- name: Setup Intel MPI
id: setup3
uses: ./
with:
mpi: intelmpi
- run: test ${{ steps.setup3.outputs.mpi }} = intelmpi
- run: command -v impi_info
macOS:
runs-on: macos-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup MPICH
id: setup1
uses: ./
with:
mpi: mpich
- run: test ${{ steps.setup1.outputs.mpi }} == mpich
- run: command -v mpichversion
- name: Setup Open MPI
id: setup2
uses: ./
with:
mpi: open-mpi
- run: test ${{ steps.setup2.outputs.mpi }} == openmpi
- run: command -v ompi_info
- name: Unlink Homebrew MPI formulae
run: brew unlink mpich openmpi
- name: Setup MPICH
id: setup3
uses: ./
with:
mpi: mpich
- run: test ${{ steps.setup3.outputs.mpi }} == mpich
- run: command -v mpichversion
- name: Setup Open MPI
id: setup4
uses: ./
with:
mpi: ompi
- run: test ${{ steps.setup4.outputs.mpi }} == openmpi
- run: command -v ompi_info
Windows:
runs-on: windows-latest
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Setup Intel MPI
id: setup1
uses: ./
with:
mpi: intel
- name: Setup Microsoft MPI
id: setup2
uses: ./
with:
mpi: microsoft
- run: test ${{ steps.setup1.outputs.mpi }} == intelmpi
- run: test ${{ steps.setup2.outputs.mpi }} == msmpi