.gitlab-ci.yml 2.56 KB
Newer Older
Jait Dixit's avatar
Jait Dixit committed
1 2 3 4 5 6 7 8
image: ubuntu:latest

stages:
  - test
  - release

variables:
  DOCKER_DRIVER: overlay
9
  RELEASE_IMAGE_MASTER: iftmpa/nifty:dev
10
  RELEASE_IMAGE_TAGGED: iftmpa/nifty:$CI_BUILD_TAG
Jait Dixit's avatar
Jait Dixit committed
11 12 13 14 15

before_script:
  - apt-get update
  - >
    apt-get install -y build-essential python python-pip python-dev git 
Jait Dixit's avatar
Jait Dixit committed
16
    gfortran autoconf gsl-bin libgsl-dev wget
Jait Dixit's avatar
Jait Dixit committed
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
  - pip install -r ci/requirements_base.txt
  - chmod +x ci/*.sh

test_min:
  stage: test
  script:
    - python setup.py build_ext --inplace
    - nosetests -vv

test_mpi:
  stage: test
  script:
    - apt-get install -y openmpi-bin libopenmpi-dev
    - pip install astropy healpy mpi4py
    - pip install git+https://github.com/mrbell/gfft
    - ci/install_libsharp.sh
    - python setup.py build_ext --inplace
    - nosetests -vv

test_mpi_fftw:
  stage: test
  script:
    - apt-get install -y openmpi-bin libopenmpi-dev
    - >
      apt-get install -y libatlas-base-dev libfftw3-bin libfftw3-dev
      libfftw3-double3 libfftw3-long3 libfftw3-mpi-dev libfftw3-mpi3
      libfftw3-quad3 libfftw3-single3
    - pip install astropy healpy mpi4py
    - pip install git+https://github.com/mrbell/gfft
    - ci/install_libsharp.sh
    - ci/install_pyfftw.sh
    - python setup.py build_ext --inplace
    - nosetests -vv

test_mpi_fftw_hdf5:
  stage: test
  script:
    - apt-get install -y openmpi-bin libopenmpi-dev
    - >
      apt-get install -y libatlas-base-dev libfftw3-bin libfftw3-dev
      libfftw3-double3 libfftw3-long3 libfftw3-mpi-dev libfftw3-mpi3
      libfftw3-quad3 libfftw3-single3
    - >
      apt-get install -y libhdf5-10 libhdf5-dev libhdf5-openmpi-10
Jait Dixit's avatar
Jait Dixit committed
61
      libhdf5-openmpi-dev hdf5-tools
Jait Dixit's avatar
Jait Dixit committed
62 63
    - pip install astropy healpy mpi4py
    - pip install git+https://github.com/mrbell/gfft
Jait Dixit's avatar
Jait Dixit committed
64
    - ci/install_h5py.sh
Jait Dixit's avatar
Jait Dixit committed
65 66 67
    - ci/install_libsharp.sh
    - ci/install_pyfftw.sh
    - python setup.py build_ext --inplace
68
    - nosetests -vv --with-coverage --cover-package=nifty --cover-branches
Jait Dixit's avatar
Jait Dixit committed
69 70
    - >
      coverage report | grep TOTAL | awk '{ print "TOTAL: "$6; }'
Jait Dixit's avatar
Jait Dixit committed
71

72
release_image_master:
Jait Dixit's avatar
Jait Dixit committed
73 74 75 76 77 78 79
  image: docker:latest
  stage: release
  before_script:
    - pwd
  services:
    - docker:dind
  script:
80
    - docker login -u $DOCKER_HUB_USERNAME -p $DOCKER_HUB_PASSWORD
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
    - docker build -t $RELEASE_IMAGE_MASTER .
    - docker push $RELEASE_IMAGE_MASTER
  only:
    - master

release_image_tagged:
  image: docker:latest
  stage: release
  before_script:
    - pwd
  services:
    - docker:dind
  script:
    - docker login -u $DOCKER_HUB_USERNAME -p $DOCKER_HUB_PASSWORD
    - docker build -t $RELEASE_IMAGE_TAGGED .
    - docker push $RELEASE_IMAGE_TAGGED
  only:
    - tags