aboutsummaryrefslogtreecommitdiff
path: root/.azure-pipelines.yml
blob: f378100ee7e9580ce1ff771fa819724a591d4468 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
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
61
62
63
64
65
66
67
68
69
# -*- mode: yaml -*-

pool:
  vmImage: 'ubuntu-18.04'

pr:
  autoCancel: true

jobs:
- job:
  variables:
    WARPX_CI_NUM_MAKE_JOBS: 2
    WARPX_CI_CCACHE: 'TRUE'
    WARPX_CI_OPENPMD: 'TRUE'
    FFTW_HOME: '/usr/'
    BLASPP_HOME: '/usr/local/'
    LAPACKPP_HOME: '/usr/local/'
    OMP_NUM_THREADS: 1

  strategy:
    matrix:
      cartesian2d:
        WARPX_CI_REGULAR_CARTESIAN_2D: 'TRUE'
      cartesian3d:
        WARPX_CI_REGULAR_CARTESIAN_3D: 'TRUE'
      python:
        WARPX_CI_PYTHON_MAIN: 'TRUE'
      single_precision:
        WARPX_CI_SINGLE_PRECISION: 'TRUE'
      rz_or_nompi:
        WARPX_CI_RZ_OR_NOMPI: 'TRUE'
      qed:
        WARPX_CI_QED: 'TRUE'
      embedded_boundary:
        WARPX_CI_EB: 'TRUE'

  # default: 60; maximum: 360
  timeoutInMinutes: 90

  steps:
  - script: |
      cat /proc/cpuinfo | grep "model name" | sort -u
      sudo apt-get update
      sudo apt-get install -y ccache gcc gfortran g++ openmpi-bin libopenmpi-dev \
        libfftw3-dev libfftw3-mpi-dev libhdf5-openmpi-dev pkg-config make \
        python3 python3-pip python3-setuptools libblas-dev liblapack-dev
      sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 2
      sudo update-alternatives --set python /usr/bin/python3
      python -m pip install --upgrade pip
      python -m pip install --upgrade wheel
      python -m pip install --upgrade cmake matplotlib==3.2.2 mpi4py numpy scipy yt
      export CEI_CMAKE="$HOME/.local/bin/cmake"
      export CEI_SUDO="sudo"
      sudo curl -L -o /usr/local/bin/cmake-easyinstall https://git.io/JvLxY
      sudo chmod a+x /usr/local/bin/cmake-easyinstall
      if [ "${WARPX_CI_OPENPMD:-FALSE}" == "TRUE" ]; then
        cmake-easyinstall --prefix=/usr/local git+https://github.com/openPMD/openPMD-api.git@0.13.2 \
          -DopenPMD_USE_PYTHON=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DBUILD_CLI_TOOLS=OFF
        python -m pip install --upgrade openpmd-api
      fi
      cmake-easyinstall --prefix=/usr/local git+https://bitbucket.org/icl/blaspp.git \
        -Duse_openmp=OFF -Dbuild_tests=OFF -DCMAKE_VERBOSE_MAKEFILE=ON
      cmake-easyinstall --prefix=/usr/local git+https://bitbucket.org/icl/lapackpp.git \
        -Duse_cmake_find_lapack=ON -Dbuild_tests=OFF -DCMAKE_VERBOSE_MAKEFILE=ON
    displayName: 'Install dependencies'

  - script: |
      ./run_test.sh
    displayName: 'Build & test'