---
stages:
  - tests
  - page_stage

tests:
  stage: tests
  cache:
    key: vendor_format_client_cache_odoo10
    paths:
      - vendor_clients_odoo10
  script:
    ##
    ## Install ssh-agent if not already installed, it is required by Docker.
    ## (change apt-get to yum if you use an RPM-based image)
    ##
    - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
    ##
    ## Run ssh-agent (inside the build environment)
    ##
    - eval $(ssh-agent -s)
    ##
    ## Add the SSH key stored in SSH_PRIVATE_KEY variable to the agent store
    ## We're using tr to fix line endings which makes ed25519 keys work
    ## without extra base64 encoding.
    ## https://gitlab.com/gitlab-examples/ssh-private-key/issues/1#note_48526556
    ##
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
    ##
    ## Create the SSH directory and give it the right permissions
    ##
    - mkdir -p ~/.ssh && chmod 700 ~/.ssh
    - ssh-keyscan -t rsa gitlab.suvit.ru >> ~/.ssh/known_hosts

    # install maintainer quality tools
    - git clone https://github.com/OCA/maintainer-quality-tools.git ${VENDOR}/maintainer-quality-tools || true
    - export PATH=${VENDOR}/maintainer-quality-tools/travis:${PATH}

    # install dependency
    - pip install -qq -r requirements.txt
    - git clone -b 10.0 https://github.com/OCA/server-tools ${VENDOR}/dependencies/server-tools || true
    - git clone -b 10.0 https://github.com/OCA/web ${VENDOR}/dependencies/web || true
    - git clone -b 10.0 https://github.com/OCA/reporting-engine ${VENDOR}/dependencies/reporting-engine || true
    - git clone -b 10.0 https://github.com/OCA/account-financial-tools ${VENDOR}/dependencies/account-financial-tools || true
    - git clone -b 10.0 https://github.com/Vauxoo/addons-vauxoo ${VENDOR}/dependencies/addons-vauxoo || true  # XXX only for format_heineken
    - git clone -b 10.0 https://github.com/suvitorg/suvit-odoo ${VENDOR}/dependencies/suvit-odoo || true
    - git clone -b 10.0 git@gitlab.suvit.ru:format-pd/format-frontend ${VENDOR}/dependencies/format-frontend || true
    - git clone -b 10.0 git@gitlab.suvit.ru:format-pd/format-odoo ${VENDOR}/dependencies/format-odoo || true

    - rm ${VENDOR}/maintainer-quality-tools/travis/node || true
    - rm ${VENDOR}/maintainer-quality-tools/travis/phantomjs || true

    - if [ -d ${VENDOR}/odoo-10.0 ]; then mv -v ${VENDOR}/odoo-10.0 ${VENDOR}/odoo; fi
    - if [ -d ${VENDOR}/odoo ]; then export REPO_CACHED=${VENDOR}; fi

    - service postgresql restart && service postgresql status
    - su -c "createuser -s root" postgres

    - rm -rf ${VENDOR}/odoo-10.0 ${VENDOR}/odoo

    - HOME=${VENDOR} travis_install_nightly 1> /dev/null
    - cp -v .coveragerc.format .coveragerc
    - 'sed -i "s|    check_root_user()|    # check_root_user()|g" ${VENDOR}/odoo-10.0/odoo/cli/server.py'
    - 'sed -i "s|    check_postgres_user()|    # check_postgres_user()|g" ${VENDOR}/odoo-10.0/odoo/cli/server.py'
    - HOME=${VENDOR} travis_run_tests
    - HOME=${VENDOR} travis_after_tests_success 1> /dev/null

    - coverage html
    - coverage report -m

  coverage: '/TOTAL.+ ([0-9]{1,3}%)/'
  artifacts:
    paths:
      - htmlcov
    expire_in: 1 day

pages:
  stage: page_stage
  script:
    - mkdir -p public/$CI_COMMIT_REF_NAME/coverage
    - cp -fr htmlcov/* public/$CI_COMMIT_REF_NAME/
  artifacts:
    paths:
      - public
  only:
    refs:
      - master
      - '10.0'