aboutsummaryrefslogtreecommitdiff
path: root/.azure-pipelines.yml
blob: dc71eea439b74cd2bf9a4f1f89a7debd4d3c68b1 (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
70
71
72
73
74
75
76
77
78
79
# -*- mode: yaml -*-

pool:
  vmImage: 'ubuntu-20.04'

pr:
  autoCancel: true
  drafts: false

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:
      cartesian1d:
        WARPX_CI_REGULAR_CARTESIAN_1D: 'TRUE'
        WARPX_CI_PSATD: 'FALSE'
        WARPX_CI_OPENPMD: 'FALSE'
      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 update
      sudo apt 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-venv 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 pipx
      python -m pipx install cmake
      python -m pipx ensurepath
      export PATH="$HOME/.local/bin:$PATH"
      python -m pip install --upgrade matplotlib mpi4py numpy scipy yt
      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.14.3 \
          -DopenPMD_USE_PYTHON=OFF -DBUILD_TESTING=OFF -DBUILD_EXAMPLES=OFF -DBUILD_CLI_TOOLS=OFF
        python -m pip install --upgrade openpmd-api
      fi
      if [[ "${WARPX_CI_RZ_OR_NOMPI:-FALSE}" == "TRUE" || "${WARPX_CI_PYTHON_MAIN:-FALSE}" == "TRUE" ]]; then
        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
      fi
    displayName: 'Install dependencies'

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