-
-
Notifications
You must be signed in to change notification settings - Fork 2.1k
/
.travis.yml
114 lines (103 loc) · 4.45 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
os: linux
matrix:
fast_finish: true
include:
- name: "PHP 7.4 / MySQL 5.7"
php: "7.4"
dist: xenial
# Run composer validate to make sure the composer.json and composer.lock are in sync.
- name: "composer validate"
php: "7.4"
dist: xenial
before_script: composer install
script: composer validate
- name: "code coverage"
php: "7.4"
dist: xenial
script: ./vendor/bin/codecept run install --env travis-ci-hub -f --ext DotReporter; ./vendor/bin/robo code:coverage --ci; cat codeception.dist.yml; bash <(curl -s https://codecov.io/bash) -f tests/_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 --stable && 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
# 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.*/