.travis.yml
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=