main.yml 3.09 KB
Newer Older
Andrey Mironov's avatar
Andrey Mironov committed
1 2 3 4 5 6
---
stages:
  - tests
  - page_stage

tests:
Viktor Safronovich's avatar
Viktor Safronovich committed
7
  stage: tests
Andrey Mironov's avatar
Andrey Mironov committed
8 9
  before_script:
    - export VERSION_DATE=$(date +%Y-%m-%d)
Viktor Safronovich's avatar
Viktor Safronovich committed
10
    - export VENDOR_KEY="vendor-${VERSION}-${VERSION_DEV}-${VERSION_DATE}"
Andrey Mironov's avatar
Andrey Mironov committed
11
    - export VENDOR="${TRAVIS_BUILD_DIR}/${VENDOR_KEY}"
Andrey Mironov's avatar
Andrey Mironov committed
12
  cache:
Viktor Safronovich's avatar
Viktor Safronovich committed
13
    key: "cache_${CI_PROJECT_NAME}${VERSION}"
Andrey Mironov's avatar
Andrey Mironov committed
14
    paths:
Viktor Safronovich's avatar
Viktor Safronovich committed
15
      - "${VENDOR}"
Andrey Mironov's avatar
Andrey Mironov committed
16
  script:
Andrey Mironov's avatar
Andrey Mironov committed
17 18 19 20
    #
    # Install ssh-agent if not already installed, it is required by Docker.
    # (change apt-get to yum if you use an RPM-based image)
    #
Andrey Mironov's avatar
Andrey Mironov committed
21
    - 'which ssh-agent || ( apt-get update -y -qq && apt-get install openssh-client -y -qq )'
Andrey Mironov's avatar
Andrey Mironov committed
22 23 24 25 26 27 28 29 30 31
    #
    # 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
    #
Andrey Mironov's avatar
Andrey Mironov committed
32
    - if [ ! -z "$SSH_PRIVATE_KEY" ]; then echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -; fi
Andrey Mironov's avatar
Andrey Mironov committed
33 34 35 36 37 38
    #
    # 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

Andrey Mironov's avatar
Andrey Mironov committed
39
    # install maintainer quality tools
Andrey Mironov's avatar
Andrey Mironov committed
40 41 42 43 44 45
    - git clone https://github.com/OCA/maintainer-quality-tools.git ${VENDOR}/maintainer-quality-tools || true
    - export PATH=${VENDOR}/maintainer-quality-tools/travis:${PATH}

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

Andrey Mironov's avatar
Andrey Mironov committed
46
    - if [ -d ${VENDOR}/odoo-${VERSION} ]; then mv -v ${VENDOR}/odoo-${VERSION} ${VENDOR}/odoo; fi
Andrey Mironov's avatar
Andrey Mironov committed
47 48 49 50 51
    - if [ -d ${VENDOR}/odoo ]; then export REPO_CACHED=${VENDOR}; fi

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

Andrey Mironov's avatar
Andrey Mironov committed
52
    - rm -rf ${VENDOR}/odoo-${VERSION} ${VENDOR}/odoo
Andrey Mironov's avatar
Andrey Mironov committed
53

Andrey Mironov's avatar
Andrey Mironov committed
54
    #- git clone https://github.com/odoo/odoo -b ${VERSION} --single-branch ${VENDOR}/odoo
Andrey Mironov's avatar
Andrey Mironov committed
55
    - wget -q -nc https://github.com/odoo/odoo/archive/${VERSION}.zip
Andrey Mironov's avatar
Andrey Mironov committed
56
    - which unzip || ( apt-get update -y -qq && apt-get install unzip -y -qq )
Andrey Mironov's avatar
Andrey Mironov committed
57
    - unzip -qn ${VERSION}.zip && mv -vf odoo-${VERSION} ${VENDOR}/odoo
Andrey Mironov's avatar
Andrey Mironov committed
58

Andrey Mironov's avatar
Andrey Mironov committed
59 60
    - pip install -qq odoo-autodiscover
    - pip install -qq -e ${VENDOR}/odoo/
Andrey Mironov's avatar
Andrey Mironov committed
61
    - pip install -qq -r requirements.txt
Andrey Mironov's avatar
Andrey Mironov committed
62

Andrey Mironov's avatar
Andrey Mironov committed
63
    - HOME=${VENDOR} REPO_CACHED=${VENDOR} travis_install_nightly 1> /dev/null
64
    - cp -v .coveragerc.format .coveragerc || true
Andrey Mironov's avatar
Andrey Mironov committed
65 66
    - 'sed -i "s|    check_root_user()|    # check_root_user()|g" ${VENDOR}/odoo-${VERSION}/odoo/cli/server.py'
    - 'sed -i "s|    check_postgres_user()|    # check_postgres_user()|g" ${VENDOR}/odoo-${VERSION}/odoo/cli/server.py'
Andrey Mironov's avatar
Andrey Mironov committed
67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
    - HOME=${VENDOR} travis_run_tests
    - HOME=${VENDOR} travis_after_tests_success 1> /dev/null

    - coverage html

  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
Andrey Mironov's avatar
Andrey Mironov committed
89
      - ${VERSION}