stages:  
  - build
  - test:scripts
  - test:monitoring
  - test:inputs
  - clean

build:tests:
  stage: build
  script: 
    - python setup.py sdist --dist-dir=build
  artifacts:
    paths:
    - build/clmctest-SNAPSHOT.tar.gz
    expire_in: 1 day

test:scripts:
  stage: test:scripts
  dependencies: 
    - build:tests
  script: 
    - vagrant --fixture=scripts -- up
    - vagrant --fixture=scripts -- ssh test-runner -- -tt "pip3 install /vagrant/build/clmctest-SNAPSHOT.tar.gz"
    - vagrant --fixture=scripts -- ssh test-runner -- -tt "pytest -s --pyargs clmctest.scripts"
  when: on_success   
  
test:monitoring:
  stage: test:monitoring
  dependencies: 
    - test:scripts
  script: 
    - vagrant --fixture=monitoring -- up
    - vagrant --fixture=monitoring -- ssh test-runner -- -tt "pytest -s --pyargs clmctest.monitoring"  
  when: on_success   
  
test:inputs:
  stage: test:inputs
  dependencies: 
    - test:monitoring
  script: 
    - vagrant --fixture=inputs -- up
    - vagrant --fixture=inputs -- ssh test-runner -- -tt "pytest -s --pyargs clmctest.inputs"
  when: on_success     
  
clean:test:
  stage: clean
  script: 
    - echo "Clean VMs"
  after_script:
    - vagrant --fixture=inputs -- destroy --force     
    - vagrant --fixture=monitoring -- destroy --force     
    - vagrant --fixture=scripts -- destroy --force         
  when: always       