jfx/ci-report

View on GitHub
.travis.yml

Summary

Maintainability
Test Coverage
dist: trusty
sudo: required

jobs:
  include:
    - stage: "Unit tests"
      language: php
      php: 7.2
      services:
        - mysql
      cache:
        yarn: true
        directories:
          - "$HOME/.composer/cache/files"
      env:
        - SYMFONY_VERSION="4.1.*" DB=mysql DATABASE_URL="mysql://root@127.0.0.1:3306/ci-report" BUILD_ID=${TRAVIS_BRANCH}-${TRAVIS_COMMIT:0:7}-${TRAVIS_BUILD_NUMBER}
      before_install:
        - phpenv config-add php-config-travis.ini
        - composer self-update
        - nvm install 9
        - sudo apt-key adv --fetch-keys http://dl.yarnpkg.com/debian/pubkey.gpg
        - echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
        - sudo apt-get update -qq && sudo apt-get install -y -qq yarn
        - sudo rm /usr/local/bin/yarn
      install:
        - make composer-install
        - make yarn-install
        - make assets-install
        - cp phpunit.xml.dist phpunit.xml
        - bin/setBuildId.sh ${BUILD_ID}
        - make lint
        - make db
      script:
        - make unit-test
        - cat var/log/test.log | grep -Ev 'NotFoundHttpException|MethodNotAllowedHttpException|BadRequestHttpException' || true

    - stage: "Build docker images"
      services:
        - docker
      env:
        - BUILD_ID=${TRAVIS_BRANCH}-${TRAVIS_COMMIT:0:7}-${TRAVIS_BUILD_NUMBER}
      before_install:
        - curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
        - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
        - sudo apt-get update && sudo apt-get -y install docker-ce
      script:
        - echo "$DOCKER_PASSWORD" | docker login -u "$DOCKER_USER" --password-stdin
        - make docker-build
        - docker images
        - TAG_ID=`echo ${BUILD_ID} | tr -dc a-zA-Z0-9-._`
        - docker tag ci-report-app:latest cireport/ci-report-app:${TAG_ID}
        - docker tag ci-report-web:latest cireport/ci-report-web:${TAG_ID}
        - docker push cireport/ci-report-app:${TAG_ID}
        - docker push cireport/ci-report-web:${TAG_ID}

    - stage: "Staging : deploy"
      env:
        - OC_VERSION="3.10.27" BUILD_ID=${TRAVIS_BRANCH}-${TRAVIS_COMMIT:0:7}-${TRAVIS_BUILD_NUMBER}
      before_install:
        - curl -fsSLO https://mirror.openshift.com/pub/openshift-v3/clients/${OC_VERSION}/linux/oc.tar.gz
        - sudo tar xzf oc.tar.gz -C /usr/local/bin
      script:
        - TAG_ID=`echo ${BUILD_ID} | tr -dc a-zA-Z0-9-._`
        - make openshift-stag-undeploy token=${OPENSHIFT_TOKEN}
        - make openshift-stag-deploy tag=${TAG_ID} endpoint=${OPENSHIFT_ENDPOINT_HOST} url=${OPENSHIFT_DATABASE_URL} token=${OPENSHIFT_TOKEN}

    - stage: "Staging : e2e tests"
      language: python
      python: 2.7
      env:
        - BUILD_ID=${TRAVIS_BRANCH}-${TRAVIS_COMMIT:0:7}-${TRAVIS_BUILD_NUMBER}
      install:
        - pip install -r tests/RF/requirements.txt
        - mv tests/RF/Common/Conf/mail.txt.dist tests/RF/Common/Conf/mail.txt
        - make db-import url=${DATABASE_URL_STAG} file=tests/dump-test-data.sql
      script:
        - pabot --processes 5 -e EDIT -e MAIL -e STORAGE -e LOCAL -v DB_URL:${DATABASE_URL_STAG} -v BUILD_ID:${BUILD_ID} -v REMOTE:True -v ENV:PROD -v WEB_HOST:${OPENSHIFT_WEB_HOST} -v GRID:True -v GRID_URL:${GRID_URL} -v MAIL_USER:${RF_MAIL_USER} tests/RF
        # - robot -i MAIL -e STORAGE -e LOCAL -v DB_URL:${DATABASE_URL_STAG} -v DB_DUMP_FILE:dump-stag.sql -v BUILD_ID:${BUILD_ID} -v REMOTE:True -v ENV:PROD -v WEB_HOST:https://${HEROKU_APP_STAG}.herokuapp.com -v GRID:True -v GRID_URL:${GRID_URL} -v IMAP_SERVER:${RF_IMAP_SERVER} -v MAIL_USER:${RF_MAIL_USER} -v MAIL_PASSWORD:${RF_MAIL_PASSWORD} -v MAIL_SENDER:${RF_MAIL_SENDER} tests/RF
        - robot -i EDIT -e MAIL -e STORAGE -e LOCAL -v DB_URL:${DATABASE_URL_STAG} -v DB_DUMP_FILE:tests/dump-test-data.sql -v BUILD_ID:${BUILD_ID} -v REMOTE:True -v ENV:PROD -v WEB_HOST:${OPENSHIFT_WEB_HOST} -v GRID:True -v GRID_URL:${GRID_URL} -v MAIL_USER:${RF_MAIL_USER} tests/RF

    - stage: "Release"
      language: node_js
      node_js: 9
      before_install:
        - sudo apt-key adv --fetch-keys http://dl.yarnpkg.com/debian/pubkey.gpg
        - echo "deb http://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list
        - sudo apt-get update -qq && sudo apt-get install -y -qq yarn
        - sudo rm /usr/local/bin/yarn
      script: skip
      deploy:
        provider: script
        skip_cleanup: true
        script:
          - npx semantic-release

notifications:
  slack:
    secure: VoxTm0ES0rknLxynTfwWrnv4o9WBKD3aNKVCXYeXmsvhgsuWj9XVoKXGQc9xFrvYFmH/Ymd3sVhyVYOYDGc6FprY6UEpkwhpAWKj8AM+vUIC71doAhprMwns1jLCWFT/AYeqsRjKX42bg3Y7ml9ChdiPU4FDPRpnvVAYz4MR1XTHuWPz6g7TWahyU4WAIxuo+Is6iKLJwuISNysf2+zv2PjUCpGyJYByEBbgcqIn9ZoWIYgcT2eDxd4zULipt5hiY3LRrkDuw0rhVkD0QjN3dhFejDJ3xrjckjDuKOJ/q5HiZwMZ8F2dlRB4rFKXAWqUvUzYXyltIugnHuMg8EJb7CebLEPfCW1HYxDUTM4ZligeHndT9zTl7xZGz7+BTX/vaaefYZTzTdNMIpqU4f5kAxJS0fxev/nWmreBQ6o67cI9UYZHrM7/9kOD8uQG7eXAbJY/1RGrSkMdTc3lLIiYfQosZhJVdp60G9UjPqI8kRWoFENm3/5zypLpVrBrJobcr+z+hcD99ZOsXSAwpPgSVyMmEq3ijKJOP9+KnkJi5/BEAvhnxS6CelCFyqb+zKPgox+jOdIbxBbRwlxTV0InObdedGGL5/wfo/+WEKVd9lcTz+kJFV2EEoCRmQjPb3aC7I1G4J1mjigkL2WDI7J7oNHtFxjWJ5mXNmuWEovTkyg=