image: derfnull/ci-dfatool:2022.05.22

stages:
  - test
  - build
  - deploy

run_tests:
  stage: test
  variables:
    GIT_SUBMODULE_STRATEGY: normal
  script:
  - mkdir test-data
  - wget -qO test-data/20161221_123347_mmparam.tar https://lib.finalrewind.org/energy-models/20161221_123347_mmparam.tar
  - wget -qO test-data/20170116_124500_LM75x.tar https://lib.finalrewind.org/energy-models/20170116_124500_LM75x.tar
  - wget -qO test-data/20170116_131306_LM75x.tar https://lib.finalrewind.org/energy-models/20170116_131306_LM75x.tar
  - wget -qO test-data/20170116_142654_mmstatic.tar https://lib.finalrewind.org/energy-models/20170116_142654_mmstatic.tar
  - wget -qO test-data/20170116_143516_mmstatic.tar https://lib.finalrewind.org/energy-models/20170116_143516_mmstatic.tar
  - wget -qO test-data/20170116_145420_sharpLS013B4DN.tar https://lib.finalrewind.org/energy-models/20170116_145420_sharpLS013B4DN.tar
  - wget -qO test-data/20170116_151348_sharpLS013B4DN.tar https://lib.finalrewind.org/energy-models/20170116_151348_sharpLS013B4DN.tar
  - wget -qO test-data/20170220_164723_RF24_int_A.tar https://lib.finalrewind.org/energy-models/20170220_164723_RF24_int_A.tar
  - wget -qO test-data/20190815_103347_nRF24_no-rx.json https://lib.finalrewind.org/energy-models/20190815_103347_nRF24_no-rx.json
  - wget -qO test-data/20190815_111745_nRF24_no-rx.json https://lib.finalrewind.org/energy-models/20190815_111745_nRF24_no-rx.json
  - wget -qO test-data/20190815_122531_nRF24_no-rx.json https://lib.finalrewind.org/energy-models/20190815_122531_nRF24_no-rx.json
  - wget -qO test-data/20191024-150723-nrf24l01-var-ack-retry.tar https://lib.finalrewind.org/energy-models/20191024-150723-nrf24l01-var-ack-retry.tar
  - wget -qO test-data/20191024-152648-nrf24l01-var-ack.tar https://lib.finalrewind.org/energy-models/20191024-152648-nrf24l01-var-ack.tar
  - wget -qO test-data/20200722-113624-timedResistiveLoad.tar https://lib.finalrewind.org/energy-models/20200722-113624-timedResistiveLoad.tar
  - wget -qO test-data/20201203-112341-et_la_dco.tar https://lib.finalrewind.org/energy-models/20201203-112341-et_la_dco.tar
  - wget -qO test-data/20201203-110526-et_timer_dco.tar https://lib.finalrewind.org/energy-models/20201203-110526-et_timer_dco.tar
  - wget -qO test-data/20201203-113313-et_la_hfxt0.tar https://lib.finalrewind.org/energy-models/20201203-113313-et_la_hfxt0.tar
  - wget -qO test-data/20201203-114004-et_timer_hfxt0.tar https://lib.finalrewind.org/energy-models/20201203-114004-et_timer_hfxt0.tar
  - pytest-3 --cov=lib
  - python3-coverage html -i
  artifacts:
    paths:
    - htmlcov/
    expire_in: 1 week

make_benchmark:
  stage: build
  variables:
    GIT_SUBMODULE_STRATEGY: normal
  script:
  - mkdir -p kconfig-static-data models
  - cd kconfig-static-data
  - ../examples/explore-and-model-static
  artifacts:
    paths:
    - models

make_model:
  stage: build
  variables:
    GIT_SUBMODULE_STRATEGY: normal
  script:
  - mkdir -p models
  - wget -q https://ess.cs.uos.de/.private/dfatool/multipass.json.xz https://ess.cs.uos.de/.private/dfatool/multipass.kconfig
  - DFATOOL_DTREE_IGNORE_IRRELEVANT_PARAMS=0 bin/analyze-kconfig.py multipass.kconfig multipass.json.xz --export-webconf models/multipass-rmt.json
  - wget -q https://ess.cs.uos.de/.private/dfatool/x264.json.xz https://ess.cs.uos.de/.private/dfatool/x264.kconfig https://ess.cs.uos.de/.private/dfatool/x264.nfpkeys.json
  - mv x264.nfpkeys.json nfpkeys.json
  - DFATOOL_DTREE_SKLEARN_CART=1 DFATOOL_PARAM_CATEGORIAL_TO_SCALAR=1 bin/analyze-kconfig.py x264.kconfig x264.json.xz --export-webconf models/x264-cart.json
  - DFATOOL_DTREE_IGNORE_IRRELEVANT_PARAMS=0 bin/analyze-kconfig.py x264.kconfig x264.json.xz --export-webconf models/x264-rmt.json
  artifacts:
    paths:
    - models

deploy_model:
  stage: deploy
  image: debian:bullseye
  before_script:
    - apt-get -y update
    - apt-get -y install lftp
    - mkdir -p ~/.ssh
    - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
    - chmod 600 "$STAGING_PRIVATE_KEY"
  script:
    - lftp -e "set sftp:connect-program 'ssh -a -x -i $STAGING_PRIVATE_KEY'; mkdir -p -f /dfatool/$CI_COMMIT_REF_NAME; mput -e -O dfatool/$CI_COMMIT_REF_NAME models/*; quit" --password invalid sftp://ci-deploy@ess.cs.uos.de