forked from salesagility/SuiteCRM
-
Notifications
You must be signed in to change notification settings - Fork 0
/
.travis.yml
130 lines (119 loc) · 5.07 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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
language: php
os: linux
sudo: required
matrix:
fast_finish: true
include:
- name: "PHP 5.6 / MySQL 5.6"
php: "5.6"
dist: trusty
- name: "PHP 7.0 / MySQL 5.7"
php: "7.0"
dist: xenial
- name: "PHP 7.1 / MySQL 5.7"
php: "7.1"
dist: xenial
- name: "PHP 7.2 / MySQL 5.7"
php: "7.2"
dist: xenial
- name: "PHP 7.3 / MySQL 5.7"
php: "7.3"
dist: xenial
# Run composer validate to make sure the composer.json and composer.lock are in sync.
- name: "composer validate"
php: "7.2"
dist: xenial
before_script: composer install
script: composer validate
- stage: codecoverage
if: type IN (pull_request) OR branch in (master, develop, hotfix)
php: "7.0"
dist: xenial
script: ./vendor/bin/codecept run install --env travis-ci-hub -f --ext DotReporter; echo "\$sugar_config['state_checker']['test_state_check_mode'] = 1;" >> config_override.php ; ./vendor/bin/robo code:coverage; cat codeception.yml; bash <(curl -s https://codecov.io/bash) -f ./_output/coverage.xml
services:
- mysql
- elasticsearch
addons:
chrome: stable
cache:
directories:
- $HOME/.composer/cache/files
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 &
# Lint PHP
- for file in $(git diff --name-status HEAD~1 HEAD | egrep "^[ACMR].*\.php$" | cut -c 3-); do php -l $file; done
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 --ext DotReporter
- ./build/push_output.sh
# Run the unit tests
- sudo chmod -R 777 .
- ./vendor/bin/phpunit --stop-on-failure --stop-on-error --colors --configuration ./tests/phpunit.xml.dist ./tests/unit/phpunit
# 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 --ext DotReporter
# RUN Basic Acceptance test
- echo "\$sugar_config['imap_test'] = true;" >> config_override.php
- ./vendor/bin/codecept run acceptance --env travis-ci-hub -f --ext DotReporter
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
# 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.*/