forked from salesagility/SuiteCRM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
114 lines (105 loc) · 4.63 KB
/
.travis.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
language: php
php:
- 5.6
- 7.0
- 7.1
- 7.2
matrix:
fast_finish: true
jobs:
include:
- stage: codecoverage
if: type IN (pull_request) OR branch in (master, develop, hotfix)
php: 7.0
script: ./vendor/bin/codecept run install --env travis-ci-hub -f -vvv -d ; ./vendor/bin/robo -vvv code:coverage; cat codeception.yml; bash <(curl -s https://codecov.io/bash) -f ./_output/coverage.xml
sudo: required
dist: trusty
services:
- mysql
- elasticsearch
addons:
chrome: stable
env:
- INSTANCE_URL=http://localhost DATABASE_DRIVER=MYSQL DATABASE_NAME=automated_tests DATABASE_HOST=localhost DATABASE_USER=automated_tests DATABASE_PASSWORD=automated_tests INSTANCE_ADMIN_USER=admin INSTANCE_ADMIN_PASSWORD=admin1 COMPOSER_MEMORY_LIMIT=-1
before_install:
# Install chrome driver#
- whereis google-chrome-stable
- wget https://chromedriver.storage.googleapis.com/2.36/chromedriver_linux64.zip
- unzip -o chromedriver_linux64.zip
- ./chromedriver --url-base=/wd/hub &
install:
- phpenv config-add travis.php.ini
- composer self-update && composer --version
before_script:
# Set up MySQL
- mysql -e "CREATE DATABASE automated_tests CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;"
- mysql -u root -e "CREATE USER 'automated_tests'@'localhost' IDENTIFIED BY 'automated_tests';"
- mysql -u root -e "GRANT ALL PRIVILEGES ON automated_tests.* TO 'automated_tests'@'localhost';"
# Install apache - images with PHP 7 or above
- sudo apt-get update
- sudo apt-get install apache2 libapache2-mod-fastcgi
# Enable php-fpm - images with PHP 7 or above
- sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.d/www.conf 2>/dev/null || true
- sudo cp ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf.default ~/.phpenv/versions/$(phpenv version-name)/etc/php-fpm.conf
- sudo a2enmod rewrite actions fastcgi alias
- echo "cgi.fix_pathinfo = 1" >> ~/.phpenv/versions/$(phpenv version-name)/etc/php.ini
- sudo sed -i -e "s,www-data,travis,g" /etc/apache2/envvars
- sudo chown -R travis:travis /var/lib/apache2/fastcgi
- ~/.phpenv/versions/$(phpenv version-name)/sbin/php-fpm
# Configure apache virtual hosts - images with PHP 7 or above
- sudo cp -f build/travis-ci-apache /etc/apache2/sites-available/000-default.conf
- sudo sed -e "s?%TRAVIS_BUILD_DIR%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
# Additional PHP config
- phpenv config-add travis.php.ini
- sudo service apache2 restart
# Install composer
- composer install
- ./vendor/bin/codecept build
script:
# Run the wizard installer
- echo "using install wizard"
- ./vendor/bin/codecept run install --env travis-ci-hub -f -vvv -d
- ./build/push_output.sh
# Run the unit tests
# - ./vendor/bin/codecept run unit --steps -f -vvv -d
- sudo chmod -R 777 .
- echo "\$sugar_config['state_checker']['test_state_check_mode'] = 2;" >> config_override.php
- echo "\$sugar_config['show_log_trace'] = true;" >> config_override.php
- echo "\$sugar_config['logger']['level'] = 'fatal';" >> config_override.php
- cd tests
- ../vendor/bin/phpunit --stop-on-failure --stop-on-error --colors --configuration $(pwd)/phpunit.xml.dist ./tests/unit/phpunit
- cd ..
# Install OAuth2 demo data
- mysql -u root -D automated_tests -v -e "source tests/_data/api_data.sql"
# Install demo user data
- mysql -u root -D automated_tests -v -e "source tests/_data/demo_users.sql"
# set the log level to error
- echo "\$sugar_config['logger']['level'] = 'error';" >> config_override.php
# add keys
- sudo chmod -R 777 .
- openssl genrsa -out Api/V8/OAuth2/private.key 2048
- openssl rsa -in Api/V8/OAuth2/private.key -pubout -out Api/V8/OAuth2/public.key
- sudo chmod 600 Api/V8/OAuth2/p*.key
# - sudo chown www-data:www-data Api/V8/OAuth2/p*.key
# Run API functional tests
- ./vendor/bin/codecept run tests/api/V8/ -f -vvv -d
# RUN Basic Acceptance test
- echo "\$sugar_config['imap_test'] = true;" >> config_override.php
- ./vendor/bin/codecept run acceptance --env travis-ci-hub -f -vvv -d
after_script:
- ./build/push_output.sh
- curl -i -F [email protected] https://www.simpleupload.co.uk/Api/FileUpload.php?d=upload
- curl -i -F file=@var/log/apache2/error.log https://www.simpleupload.co.uk/Api/FileUpload.php?d=upload
# - cat suitecrm.log TODO: Upload the suitecrm.log to an external file host.
# ElasticSearch Indexing logs
- cat search_index.log
- sudo cat /var/log/apache2/error.log
- echo $TRAVIS_COMMIT_RANGE
branches:
only:
- master
- develop
- /hotfix.*/
- /feature.*/
- /fix.*/
- /staging.*/