stages:
    - prepare-ci
    - download
    - compile
    - run-small
    - run
    - validate

.runner: &runner
    tags:
        - alfred, occigen
    only:
        - develop

.variables: &dynamico
    <<: *runner
    variables: 
        APP_NAME: "DYNAMICO" 

.variables: &gromacs
    <<: *runner
    variables: 
        APP_NAME: "Gromacs" 

.variables: &smilei
    <<: *runner
    variables: 
        APP_NAME: "Smilei" 

.variables: &ramses
    <<: *runner
    variables: 
        APP_NAME: "RAMSES" 

.variables: &nemo
    <<: *runner
    variables: 
        APP_NAME: "NEMO" 

.download-app: &download-app
    stage: download
    script:
        - cd ${SCRATCHDIR}/abs/${CI_COMMIT_SHORT_SHA}/${APP_NAME}
        - ./download.sh

.compile-app: &compile-app
    stage: compile
    script:
        - cd ${SCRATCHDIR}/abs/${CI_COMMIT_SHORT_SHA}/${APP_NAME}
        - ./compile.sh occigen-bdw

.run-small: &run-small
    stage: run-small
    script:
        - cd ${SCRATCHDIR}/abs/${CI_COMMIT_SHORT_SHA}/${APP_NAME}/testcase_small
        - ./prepare.sh occigen-bdw
        - ./run.sh
    when: manual

.validate-small: &validate-small
    stage: validate
    script:
        - cd ${SCRATCHDIR}/abs/${CI_COMMIT_SHORT_SHA}/${APP_NAME}/testcase_small
        - ./validate.sh
    when: manual

#GLOBAL WORKFLOW
copy-files: 
    <<: *runner
    stage: prepare-ci
    script:
        - mkdir -p ${SCRATCHDIR}/abs/${CI_COMMIT_SHORT_SHA} 
        - cp -rip . $SCRATCHDIR/abs/$CI_COMMIT_SHORT_SHA 

dl-dynamico:
    <<: *dynamico
    <<: *download-app
dl-gromacs:
    <<: *gromacs
    <<: *download-app
dl-nemo:
    <<: *nemo
    <<: *download-app
dl-ramses:
    <<: *ramses
    <<: *download-app
dl-smilei:
    <<: *smilei
    <<: *download-app

compile-dynamico:
    <<: *dynamico
    <<: *compile-app
compile-gromacs:
    <<: *gromacs
    <<: *compile-app
compile-nemo:
    <<: *nemo
    <<: *compile-app
compile-ramses:
    <<: *ramses
    <<: *compile-app
compile-smilei:
    <<: *smilei
    <<: *compile-app

small-smilei:
    <<: *smilei
    <<: *run-small
validate-small-smilei:
    <<: *smilei
    <<: *validate-small