CarpetX: a Cactus driver for the Einstein Toolkit based on AMReX
# Choose an agent virtual image
pool:
  vmImage: ubuntu-16.04
container:
  image: einsteintoolkit/cactus-amrex

steps:
- script: |
    set -euxo pipefail
    wget https://raw.githubusercontent.com/gridaphobe/CRL/ET_2019_10/GetComponents
    chmod a+x GetComponents
    ./GetComponents --parallel azure-pipelines/carpetx.th
    echo 'docker' >$HOME/.hostname
    cp azure-pipelines/defs.local.ini Cactus/simfactory/etc
    cp azure-pipelines/docker.ini Cactus/simfactory/mdb/machines
    cp azure-pipelines/ubuntu.cfg Cactus/simfactory/mdb/optionlists
    cp azure-pipelines/docker.sub Cactus/simfactory/mdb/submitscripts
    cp azure-pipelines/docker.run Cactus/simfactory/mdb/runscripts
    mkdir $HOME/simulations
  displayName: Download Cactus
- script: |
    set -euxo pipefail
    cd Cactus
    ./simfactory/bin/sim build -j$(nproc) --thornlist=../azure-pipelines/carpetx.th
  displayName: Build Cactus
- script: |
    set -euxo pipefail
    cd Cactus
    env OMP_NUM_THREADS=2 ./simfactory/bin/sim submit ./simfactory/etc/parfiles/empty.par
    ./simfactory/bin/sim show-output empty
    env OMP_NUM_THREADS=2 mpiexec -n 2 ./exe/cactus_sim ../azure-pipelines/carpetx.par
  displayName: Run example
- script: |
    set -euxo pipefail
    cd Cactus
    ./simfactory/bin/sim submit sim-test-1 --test --procs=1 --num-threads=2
    cat /home/vsts_azpcontainer/simulations/sim-test-1/output-0000/sim-test-1.log
    # TODO
    cat /home/vsts_azpcontainer/simulations/sim-test-1/output-0000/TEST/sim/AdvectHRSC/square.log
    ./simfactory/bin/sim submit sim-test-2 --test --procs=2 --num-threads=1
    cat /home/vsts_azpcontainer/simulations/sim-test-2/output-0000/sim-test-2.log
    grep -q 'Number failed            -> 0' /home/vsts_azpcontainer/simulations/sim-test-1/output-0000/sim-test-1.log
    grep -q 'Number failed            -> 0' /home/vsts_azpcontainer/simulations/sim-test-2/output-0000/sim-test-2.log
  displayName: Run tests