FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
.gitlab-ci.yml 11.4 KiB
Newer Older
image: lb584/ews_coordinator:latest

L. Bower's avatar
L. Bower committed
variables:
  # NOTE, MAKE SURE ANY PIPELINE-LEVEL VARIABLES ARE UNIQUE TO THIS PIPELINE
  # WHEN CALLED FROM A MULTI-PIPELINE TRIGGER, VARIABLES WITH SHARED NAMES WILL BE OVERWRITTEN

  OUTPUT_DIR: "$CI_PROJECT_DIR/outputs/"
  TEST_WORKSPACE_DIR: "/storage/app/EWS_prod/regions/EastAfrica/test_workspace/"
#  FULL_FAT_RUN_DATE_TYPE:
#    value: "default"
#    options:
#      - "default"
#      - "today"
#      - "yesterday"
#      - "custom"
#    description: "Full-fat tests will pull data from the deployment environment. For robustness, the default option is a
#    pre-selected date we know works. Select \"today\" or \"yesterday\" to test with recent live data. If \"custom\" is
#    selected, manually enter the key value pair using the format in this example: CUSTOM_RUN_DATE 20230115"
  CUSTOM_RUN_DATE:
    value: "20231127"
    description: "Full-fat tests will pull data from the deployment environment. For robustness, the default option is a
    pre-selected date we know works. To override the default date, manually enter the key value pair using the format 
    in this example e.g.: CUSTOM_RUN_DATE 20230115"
L. Bower's avatar
L. Bower committed

cache:
  paths:
    - .cache/pip
    - venv/

stages:
L. Bower's avatar
L. Bower committed
  - docs
  - half-fat
  - full-fat

  before_script:
      - BRANCH="main"
      - echo "branch - " $BRANCH
      - RUN_TIME=$(date '+%Y-%m-%d_%H%M%S')
      - echo "run time - $RUN_TIME"
      - PACKAGES_DIR="$CI_PROJECT_DIR/packages/"
      - echo "project dir - " $CI_PROJECT_DIR
      - echo "output dir - " $OUTPUT_DIR
      - echo "packages dir - " $PACKAGES_DIR
      - echo "pip dir - " $PIP_CACHE_DIR
      - echo "full-fat run date type - " FULL_FAT_RUN_DATE_TYPE
      - echo "custom full-fat run date - " $CUSTOM_RUN_DATE

L. Bower's avatar
L. Bower committed
      - source /storage/app/EWS_prod/envs/venv/ews_prod/bin/activate
      - pip install coverage
      - python3 -V  # Print out python version for debugging
      - mkdir -p $OUTPUT_DIR
      - git clone -b $BRANCH "https://nouser:$GROUP_WHEAT_ACCESS_VAR@gitlab.developers.cam.ac.uk/gilligan-epid/wheat-rusts/ews-source-generation.git" $PACKAGES_DIR/source_gen
      - git clone -b $BRANCH "https://nouser:$GROUP_WHEAT_ACCESS_VAR@gitlab.developers.cam.ac.uk/gilligan-epid/wheat-rusts/ews_plotting.git" $PACKAGES_DIR/plotting
      - git clone -b $BRANCH "https://nouser:$GROUP_WHEAT_ACCESS_VAR@gitlab.developers.cam.ac.uk/gilligan-epid/wheat-rusts/ews-epimodel.git" $PACKAGES_DIR/epimodel
      - git clone -b main "https://nouser:$GROUP_WHEAT_ACCESS_VAR@gitlab.developers.cam.ac.uk/gilligan-epid/wheat-rusts/ews-advisory-builder.git" $PACKAGES_DIR/advisory_builder
      - git clone -b main "https://nouser:$GROUP_WHEAT_ACCESS_VAR@gitlab.developers.cam.ac.uk/gilligan-epid/wheat-rusts/ews_environmental_suitability_v2.git" $PACKAGES_DIR/environmental_suitability
      - git clone -b $BRANCH "https://nouser:$GROUP_WHEAT_ACCESS_VAR@gitlab.developers.cam.ac.uk/gilligan-epid/wheat-rusts/ews-postprocessing.git" $PACKAGES_DIR/post_processing
      - git clone -b main "https://nouser:$GROUP_WHEAT_ACCESS_VAR@gitlab.developers.cam.ac.uk/gilligan-epid/wheat-rusts/ews-met-processing.git" $PACKAGES_DIR/met_processing
      - epimodel=$PACKAGES_DIR/epimodel
      - advisory=$PACKAGES_DIR/advisory_builder
      - met_processing=$PACKAGES_DIR/met_processing
      - met_processor=$PACKAGES_DIR/environmental_suitability
      - plotting=$PACKAGES_DIR/plotting
      - post_processing=$PACKAGES_DIR/post_processing
      - source_gen=$PACKAGES_DIR/source_gen
L. Bower's avatar
L. Bower committed
      - coordinator=$CI_PROJECT_DIR
      - coordinator_tests=$CI_PROJECT_DIR/tests
      - export PYTHONPATH=$PYTHONPATH:$met_processor_temp:$epimodel:$advisory:$met_processing:$met_processor:$plotting:$source_gen:$post_processing:$coordinator:$coordinator_tests
      - echo "pythonpath - " $PYTHONPATH
L. Bower's avatar
L. Bower committed

half_fat_tests:
L. Bower's avatar
L. Bower committed
  when: manual
  stage: half-fat
  extends: .before_script
L. Bower's avatar
L. Bower committed
  script:
L. Bower's avatar
L. Bower committed
    - cd $CI_PROJECT_DIR/tests/integration/partial/
    - python3 -m coverage run run_test_suite.py $CI_PROJECT_DIR/test_reports
L. Bower's avatar
L. Bower committed
    - python3 -m coverage report
L. Bower's avatar
L. Bower committed
    - python3 -m coverage html -d $CI_PROJECT_DIR/coverage
L. Bower's avatar
L. Bower committed
  artifacts:
    when: always
L. Bower's avatar
L. Bower committed
    paths:
L. Bower's avatar
L. Bower committed
      - $CI_PROJECT_DIR/coverage
L. Bower's avatar
L. Bower committed
      - $CI_PROJECT_DIR/test_reports
    expire_in: 10 days
L. Bower's avatar
L. Bower committed

half_fat_epi_tests:
  stage: half-fat
  extends: .before_script
  script:
    - cd $CI_PROJECT_DIR/tests/integration/partial/
    - python3 -m coverage run -m unittest test_epi.py
    - python3 -m coverage report
L. Bower's avatar
L. Bower committed
    - python3 -m coverage html -d $CI_PROJECT_DIR/coverage
    - ls
  artifacts:
    paths:
      - $CI_PROJECT_DIR/coverage
L. Bower's avatar
L. Bower committed
      - $CI_PROJECT_DIR/test_reports
    expire_in: 10 days
full_fat_depo:
  when: manual
  stage: full-fat
  extends: .before_script
  tags: ["ewas-production"]
  script:
      cd $CI_PROJECT_DIR/tests/integration/full/
      python3 full_test_deposition.py 
L. Bower's avatar
L. Bower committed
      --sys_config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/sys_config_EastAfrica_fc_live.json
      --config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/depo_config_EastAfrica_fc_live.json
      --email_cred /storage/app/EWS_prod/envs/credentials/Cred_gmail.json
L. Bower's avatar
L. Bower committed
      --$CI_PROJECT_DIR/test_reports
      --custom_run_date $CUSTOM_RUN_DATE
L. Bower's avatar
L. Bower committed
      --custom_dir_prefix temp_depo_2024-07-12_095208
  artifacts:
    paths:
L. Bower's avatar
L. Bower committed
      - $CI_PROJECT_DIR/test_reports
L. Bower's avatar
L. Bower committed
    expire_in: 10 days
L. Bower's avatar
L. Bower committed
full_fat_env_suit:
L. Bower's avatar
L. Bower committed
  stage: full-fat
  extends: .before_script
L. Bower's avatar
L. Bower committed
  tags: ["ewas-production"]
  script:
    - >
      cd $CI_PROJECT_DIR/tests/integration/full/

      python3 full_test_env_suit.py 
L. Bower's avatar
L. Bower committed
      --sys_config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/sys_config_EastAfrica_fc_live.json
      --config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/env_suit_config_EastAfrica_fc_live.json
L. Bower's avatar
L. Bower committed
      --email_cred /storage/app/EWS_prod/envs/credentials/Cred_gmail.json
      --custom_run_date $CUSTOM_RUN_DATE

full_fat_survey:
  stage: full-fat
  extends: .before_script
  tags: ["ewas-production"]
  script:
    - >
L. Bower's avatar
L. Bower committed
      cd $CI_PROJECT_DIR/tests/integration/full/
      
      python3 full_test_survey.py 
L. Bower's avatar
L. Bower committed
      --sys_config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/sys_config_EastAfrica_fc_live.json
L. Bower's avatar
L. Bower committed
      --config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/survey_config_EastAfrica_fc_live.json
      --email_cred /storage/app/EWS_prod/envs/credentials/Cred_gmail.json
      --custom_run_date $CUSTOM_RUN_DATE
L. Bower's avatar
L. Bower committed
      --custom_dir_prefix "temp_survey_$RUN_TIME"
full_fat_advisory:
  when: manual
  stage: full-fat
  extends: .before_script
  tags: ["ewas-production"]
  script:
    - >
      cd $CI_PROJECT_DIR/tests/integration/full/

      SURVEY_RUN_DATE=$(date -d "$CUSTOM_RUN_DATE -1 day" +%Y%m%d)

      python3 full_test_survey.py 
      --sys_config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/sys_config_EastAfrica_fc_live.json
      --config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/survey_config_EastAfrica_fc_live.json
      --outdir ${TEST_WORKSPACE_DIR}/integration/full/
      --email_cred /storage/app/EWS_prod/envs/credentials/Cred_gmail.json
      --custom_run_date $SURVEY_RUN_DATE
      --custom_dir_prefix "temp_advisory_2024-07-11_102855"

      python3 full_test_deposition.py 
      --sys_config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/sys_config_EastAfrica_fc_live.json
      --config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/depo_config_EastAfrica_fc_live.json
      --outdir ${TEST_WORKSPACE_DIR}/integration/full/
      --email_cred /storage/app/EWS_prod/envs/credentials/Cred_gmail.json
      --test_report_dir $CI_PROJECT_DIR/test_reports
      --custom_run_date $CUSTOM_RUN_DATE
      --custom_dir_prefix "temp_advisory_2024-07-11_102855"

      python3 full_test_env_suit.py 
      --sys_config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/sys_config_EastAfrica_fc_live.json
      --config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/env_suit_config_EastAfrica_fc_live.json
      --outdir ${TEST_WORKSPACE_DIR}/integration/full/
      --email_cred /storage/app/EWS_prod/envs/credentials/Cred_gmail.json
      --custom_run_date $CUSTOM_RUN_DATE
      --custom_dir_prefix "temp_advisory_2024-07-11_102855"
      python3 full_test_advisory.py 
L. Bower's avatar
L. Bower committed
      --sys_config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/sys_config_EastAfrica_fc_live.json
      --config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/advisory_config_EastAfrica_fc_live.json
      --email_cred /storage/app/EWS_prod/envs/credentials/Cred_gmail.json
      --custom_run_date $CUSTOM_RUN_DATE
      --custom_dir_prefix "temp_advisory_2024-07-11_102855"
full_fat_epi:
  when: manual
  stage: full-fat
  extends: .before_script
  tags: ["ewas-production"]
  script:
    - >
      cd $CI_PROJECT_DIR/tests/integration/full/

      python3 full_test_deposition.py 
      --sys_config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/sys_config_EastAfrica_fc_live.json
      --config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/depo_config_EastAfrica_fc_live.json
      --outdir ${TEST_WORKSPACE_DIR}/integration/full/
      --email_cred /storage/app/EWS_prod/envs/credentials/Cred_gmail.json
      --test_report_dir $CI_PROJECT_DIR/test_reports
      --run_date_type $FULL_FAT_RUN_DATE_TYPE
      --custom_run_date $CUSTOM_RUN_DATE
      --custom_dir_prefix "temp_advisory_$RUN_TIME"

      python3 full_test_env_suit.py 
      --sys_config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/sys_config_EastAfrica_fc_live.json
      --config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/env_suit_config_EastAfrica_fc_live.json
      --outdir ${TEST_WORKSPACE_DIR}/integration/full/
      --email_cred /storage/app/EWS_prod/envs/credentials/Cred_gmail.json
      --run_date_type $FULL_FAT_RUN_DATE_TYPE
      --custom_run_date $CUSTOM_RUN_DATE
      --custom_dir_prefix "temp_advisory_$RUN_TIME"

      python3 full_test_epi.py 
L. Bower's avatar
L. Bower committed
      --sys_config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/sys_config_EastAfrica_fc_live.json
      --config /storage/app/EWS_prod/regions/EastAfrica/resources/configs/coordinator/fc/epi_config_EastAfrica_fc_live.json
      --email_cred /storage/app/EWS_prod/envs/credentials/Cred_gmail.json
      --run_date_type $FULL_FAT_RUN_DATE_TYPE
      --custom_run_date $CUSTOM_RUN_DATE
      --custom_dir_prefix "temp_advisory_$RUN_TIME"
L. Bower's avatar
L. Bower committed
pages:
L. Bower's avatar
L. Bower committed
  stage: docs
  extends: .before_script
L. Bower's avatar
L. Bower committed
  script:
    - export PATH=$PATH:/home/ewsmanager/.local/bin
    - pip install sphinx
    - pip install sphinx_rtd_theme
    - pip install sphinx_autodoc_typehints
    - pip install IPython
    - cd $CI_PROJECT_DIR/docs
    - make html
    - mkdir $CI_PROJECT_DIR/public
    - mv -v $CI_PROJECT_DIR/docs/_build/html/* $CI_PROJECT_DIR/public/
    - ls $CI_PROJECT_DIR/public/
L. Bower's avatar
L. Bower committed
  artifacts:
    paths:
      - $CI_PROJECT_DIR/public