Skip to content

Commit

Permalink
GHA: Install with pip
Browse files Browse the repository at this point in the history
  • Loading branch information
dalcinl committed Aug 15, 2023
1 parent 486d6a8 commit c6c3a64
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 60 deletions.
61 changes: 43 additions & 18 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
@@ -1,34 +1,59 @@
name: github-CI

on: [push]
on:
push:
branches:
- master
pull_request:
branches:
- master
workflow_dispatch:

jobs:
build:

test:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
python-version: ["3.7", "3.8", "3.9", "3.10", "3.11"]
name: Python ${{ matrix.python-version }} example (${{ matrix.os }})

defaults:
run:
shell: bash -el {0}
os:
- ubuntu-latest
- macos-latest
mpi:
- mpich
- openmpi
python-version:
- "3.7"
- "3.8"
- "3.9"
- "3.10"
- "3.11"
- "3.12-dev"

steps:

- uses: actions/checkout@v3

- uses: conda-incubator/setup-miniconda@v2
- uses: actions/setup-python@v4
with:
miniforge-variant: Mambaforge
miniforge-version: latest
channel-priority: strict
python-version: ${{ matrix.python-version }}
conda-build-version: '*'

- run: conda install -n root numpy fftw
- run: conda build --python ${{ matrix.python-version }} ./conf
- run: conda install --use-local mpi4py_fft_test
- run: |
# Install fftw
case $(uname) in
Linux)
sudo apt update && sudo apt install -y -q fftw-dev
;;
Darwin)
brew install fftw
;;
esac
- run: python -m pip install -U pip build

- run: python -m build

- uses: mpi4py/setup-mpi@v1
with:
mpi: ${{ matrix.mpi }}

- run: pip install -vvv dist/mpi4py_fft-*.whl
73 changes: 39 additions & 34 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
@@ -1,35 +1,35 @@
jobs:
- job: macOS
displayName: macos-latest
pool:
vmImage: 'macos-latest'
strategy:
matrix:
Python37:
python.version: '3.7'
Python38:
python.version: '3.8'
Python39:
python.version: '3.9'
Python310:
python.version: '3.10'

steps:
- bash: echo "##vso[task.prependpath]$CONDA/bin"
displayName: Add conda to PATH

- bash: sudo chown -R $USER $CONDA
displayName: Take ownership of conda installation

- bash: |
conda config --add channels conda-forge
conda config --set always_yes yes
conda install -n root conda-build numpy fftw
displayName: Set up Anaconda
- bash: |
conda build --python $PYTHON_VERSION ./conf
displayName: Build and test
# - job: macOS
# displayName: macos-latest
# pool:
# vmImage: 'macos-latest'
# strategy:
# matrix:
# Python37:
# python.version: '3.7'
# Python38:
# python.version: '3.8'
# Python39:
# python.version: '3.9'
# Python310:
# python.version: '3.10'
#
# steps:
# - bash: echo "##vso[task.prependpath]$CONDA/bin"
# displayName: Add conda to PATH
#
# - bash: sudo chown -R $USER $CONDA
# displayName: Take ownership of conda installation
#
# - bash: |
# conda config --add channels conda-forge
# conda config --set always_yes yes
# conda install -n root conda-build numpy fftw
# displayName: Set up Anaconda
#
# - bash: |
# conda build --python $PYTHON_VERSION ./conf
# displayName: Build and test

- job: Ubuntu
displayName: Ubuntu
Expand All @@ -45,6 +45,8 @@ jobs:
python.version: '3.9'
Python310:
python.version: '3.10'
Python311:
python.version: '3.11'

steps:
- bash: echo "##vso[task.prependpath]$CONDA/bin"
Expand All @@ -53,13 +55,16 @@ jobs:
- bash: |
conda config --add channels conda-forge
conda config --set always_yes yes
conda install -n root conda-build numpy fftw
conda install -n root mpi4py mpich numpy fftw
displayName: Set up Anaconda
- bash: |
conda build --no-test --python $PYTHON_VERSION ./conf
conda create --name mpi4py_fft_env mpi4py_fft_test coverage scipy pyfftw=0.12 python=$PYTHON_VERSION --use-local
conda create --name mpi4py_fft_env \
python=$PYTHON_VERSION \
numpy fftw mpi4py mpich \
pyfftw=0.12 scipy coverage
source activate mpi4py_fft_env
pip install -vvv --no-deps .
pip install codecov
cd tests && ./runtests.sh
displayName: Build and test
Expand Down
4 changes: 2 additions & 2 deletions tests/test_mpifft.py
Original file line number Diff line number Diff line change
Expand Up @@ -152,8 +152,8 @@ def test_mpifft():
fft.backward.input_array.shape)
assert (fft.backward.output_pencil.subshape ==
fft.backward.output_array.shape)
assert np.alltrue(np.array(fft.global_shape(True)) == np.array(fft.forward.output_pencil.shape))
assert np.alltrue(np.array(fft.global_shape(False)) == np.array(fft.forward.input_pencil.shape))
assert np.all(np.array(fft.global_shape(True)) == np.array(fft.forward.output_pencil.shape))
assert np.all(np.array(fft.global_shape(False)) == np.array(fft.forward.input_pencil.shape))
ax = -1 if axes is None else axes[-1] if isinstance(axes[-1], int) else axes[-1][-1]
assert fft.forward.input_pencil.substart[ax] == 0
assert fft.backward.output_pencil.substart[ax] == 0
Expand Down
7 changes: 1 addition & 6 deletions tests/test_speed.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,10 @@
from time import time
import numpy as np
import pyfftw
import scipy.fftpack as sp
from mpi4py_fft import fftw
import pickle

try:
import pyfftw
except ImportError:
print('pyFFTW not available')
raise SystemExit(0)

try:
#fftw.import_wisdom('wisdom.dat')
pyfftw.import_wisdom(pickle.load(open('pyfftw.wisdom', 'rb')))
Expand Down

0 comments on commit c6c3a64

Please sign in to comment.