|
1 | 1 | language: php
|
2 |
| -sudo: false |
3 |
| -dist: trusty |
| 2 | +dist: xenial |
4 | 3 |
|
5 | 4 | php:
|
6 |
| - - 5.6 |
7 |
| - - 7.0 |
8 |
| - - 7.1 |
9 |
| - - 7.2 |
| 5 | + - '5.6' |
| 6 | + - '7.0' |
| 7 | + - '7.1' |
| 8 | + - '7.2' |
| 9 | + - '7.3' |
| 10 | + - '7.4' |
10 | 11 |
|
11 | 12 | env:
|
12 | 13 | global:
|
13 | 14 | - DISPLAY=:99.0
|
14 | 15 | - BROWSER_NAME="htmlunit"
|
15 |
| - - CHROMEDRIVER_VERSION="2.38" |
| 16 | + - SELENIUM_SERVER="https://selenium-release.storage.googleapis.com/3.14/selenium-server-standalone-3.14.0.jar" # Latest version including HtmlUnit |
| 17 | + |
| 18 | +services: |
| 19 | + - xvfb |
16 | 20 |
|
17 | 21 | matrix:
|
18 | 22 | include:
|
19 |
| - # Add build to run tests against Firefox inside Travis environment |
20 |
| - - php: 7.2 |
21 |
| - env: BROWSER_NAME="firefox" |
| 23 | + # Build with lowest possible dependencies on lowest possible PHP |
| 24 | + - name: 'Lowest dependencies build' |
| 25 | + php: '5.6' |
| 26 | + env: DEPENDENCIES="--prefer-lowest" |
| 27 | + |
| 28 | + # Firefox inside Travis environment |
| 29 | + - name: 'Firefox 45 on Travis (OSS protocol); via legacy Selenium server' |
| 30 | + php: '7.3' |
| 31 | + env: |
| 32 | + - BROWSER_NAME="firefox" |
| 33 | + - SELENIUM_SERVER="legacy" |
22 | 34 | addons:
|
23 | 35 | firefox: "45.8.0esr"
|
24 | 36 |
|
25 |
| - # Add build to run tests against Chrome inside Travis environment |
26 |
| - - php: 7.2 |
27 |
| - env: BROWSER_NAME="chrome" CHROME_HEADLESS="1" |
| 37 | + # Firefox with Geckodriver (W3C mode) inside Travis environment |
| 38 | + - name: 'Firefox latest on Travis (W3C protocol); no Selenium server' |
| 39 | + php: '7.3' |
| 40 | + env: |
| 41 | + - BROWSER_NAME="firefox" |
| 42 | + - GECKODRIVER="1" |
| 43 | + addons: |
| 44 | + firefox: latest |
| 45 | + |
| 46 | + # Stable Chrome + Chromedriver (W3C mode) inside Travis environment via Selenium server proxy |
| 47 | + - name: 'Chrome stable on Travis (W3C protocol); via Selenium server' |
| 48 | + php: '7.3' |
| 49 | + env: |
| 50 | + - BROWSER_NAME="chrome" |
28 | 51 | addons:
|
29 | 52 | chrome: stable
|
30 | 53 |
|
31 |
| - # Build with lowest possible dependencies |
32 |
| - - php: 7.2 |
33 |
| - env: DEPENDENCIES="--prefer-lowest" |
| 54 | + # Stable Chrome + Chromedriver (W3C mode) inside Travis environment directly via Chromedriver |
| 55 | + - name: 'Chrome stable on Travis (W3C protocol); no Selenium server' |
| 56 | + php: '7.3' |
| 57 | + env: |
| 58 | + - BROWSER_NAME="chrome" |
| 59 | + - CHROMEDRIVER="1" |
| 60 | + addons: |
| 61 | + chrome: stable |
34 | 62 |
|
35 |
| - # Chrome on Travis build with lowest possible dependencies |
36 |
| - - php: 7.2 |
37 |
| - env: BROWSER_NAME="chrome" CHROME_HEADLESS="1" DEPENDENCIES="--prefer-lowest" |
| 63 | + # Stable Chrome + Chromedriver (JsonWire OSS mode) inside Travis environment directly via Chromedriver |
| 64 | + - name: 'Chrome stable on Travis (OSS protocol); no Selenium server' |
| 65 | + php: '7.3' |
| 66 | + env: |
| 67 | + - BROWSER_NAME="chrome" |
| 68 | + - CHROMEDRIVER="1" |
| 69 | + - DISABLE_W3C_PROTOCOL="1" |
38 | 70 | addons:
|
39 | 71 | chrome: stable
|
40 | 72 |
|
41 | 73 | # Saucelabs builds
|
42 |
| - - php: 7.2 |
43 |
| - env: SAUCELABS=1 BROWSER_NAME="firefox" VERSION="47.0" PLATFORM="Windows 10" |
| 74 | + - name: 'Sauce Labs, Firefox 47, OSS protocol' |
| 75 | + php: '7.3' |
| 76 | + env: SAUCELABS=1 BROWSER_NAME="firefox" VERSION="47.0" PLATFORM="Windows 10" DISABLE_W3C_PROTOCOL="1" |
44 | 77 | before_script:
|
45 | 78 | - php -S 127.0.0.1:8000 -t tests/functional/web/ &>>./logs/php-server.log &
|
46 | 79 | - until $(echo | nc localhost 8000); do sleep 1; echo waiting for PHP server on port 8000...; done; echo "PHP server started"
|
47 | 80 | addons:
|
48 | 81 | sauce_connect: true
|
49 | 82 | jwt:
|
50 |
| - secure: HPq5xFhosa1eSGnaRdJzeyEuaE0mhRlG1gf3G7+dKS0VniF30husSyrxZhbGCCKBGxmIySoAQzd43BCwL69EkUEVKDN87Cpid1Ce9KrSfU3cnN8XIb+4QINyy7x1a47RUAfaaOEx53TrW0ShalvjD+ZwDE8LrgagSox6KQ+nQLE= |
51 |
| - - php: 7.2 |
| 83 | + secure: 5s8iQfH1dHgEm0DeP9VZ/MCzCeiE/HnMWqPFzRmg6VD2qJ53oYdseo8j+QCbE25MIwoSnIbKzlnbCN6fVzZc/0S7Mo45xJiq8xVLPSdMjDoOeqYE4of+t5Srq4iSzGLPCLiMTtB4xDEl6blUVGhYxN5rA/tVN+cVtLNQvo3ovRon3Mw3MqR4pgCE6PofcLXtyJc3KuOBlUJLWdPGRdlZrpKWE5ogyj4a1h4bVwidckZqkOF+gm58Gf0zVfFazDQFIw2Xuq7SZmiNgdOD5yUEePkrMhy2tbOlPNAIgHCpzHldv5Y+GYyxIYHZ0mGlGxHrfjrcAoSA6r2iXB9q2ijLVwqOARpcvGcBzZBil9aMAHRIXHAOV9Ihv4velrzmiLKADtD60Bfj2zzntGYZA3EGucitMMkkP7vfAa769i5QWK1Lniq3+VUuGNVjRzl4GuQPpc0wMWeJvQGc5Uf9Kk/sOCkPp0SPWcZ6nNAUebRy3V5OoADA9IntyXxfTlZdOHSbJTsG+eOGve0uLGRAOS+oeCstO7Gk4e/Ylozju+ixkINEY7HHDGt6AyHGtjPdy08Y0XrIqs0JMxsHKrtTVNxDjIFKbMees+vtxU3DEr/tNo1sTo34ieGKZP2Cp5mG/IrcjD1saebUaCngQO3QfeuKcU8pBTR7l7PtFNHm3HrmdkY= |
| 84 | + |
| 85 | + - name: 'Sauce Labs, Chrome 74, OSS protocol' |
| 86 | + php: '7.3' |
| 87 | + env: SAUCELABS=1 BROWSER_NAME="chrome" VERSION="74.0" PLATFORM="Windows 10" DISABLE_W3C_PROTOCOL="1" # 74 is the last version which don't use W3C WebDriver by default |
| 88 | + before_script: |
| 89 | + - php -S 127.0.0.1:8000 -t tests/functional/web/ &>>./logs/php-server.log & |
| 90 | + - until $(echo | nc localhost 8000); do sleep 1; echo waiting for PHP server on port 8000...; done; echo "PHP server started" |
| 91 | + addons: |
| 92 | + sauce_connect: true |
| 93 | + jwt: |
| 94 | + secure: 5s8iQfH1dHgEm0DeP9VZ/MCzCeiE/HnMWqPFzRmg6VD2qJ53oYdseo8j+QCbE25MIwoSnIbKzlnbCN6fVzZc/0S7Mo45xJiq8xVLPSdMjDoOeqYE4of+t5Srq4iSzGLPCLiMTtB4xDEl6blUVGhYxN5rA/tVN+cVtLNQvo3ovRon3Mw3MqR4pgCE6PofcLXtyJc3KuOBlUJLWdPGRdlZrpKWE5ogyj4a1h4bVwidckZqkOF+gm58Gf0zVfFazDQFIw2Xuq7SZmiNgdOD5yUEePkrMhy2tbOlPNAIgHCpzHldv5Y+GYyxIYHZ0mGlGxHrfjrcAoSA6r2iXB9q2ijLVwqOARpcvGcBzZBil9aMAHRIXHAOV9Ihv4velrzmiLKADtD60Bfj2zzntGYZA3EGucitMMkkP7vfAa769i5QWK1Lniq3+VUuGNVjRzl4GuQPpc0wMWeJvQGc5Uf9Kk/sOCkPp0SPWcZ6nNAUebRy3V5OoADA9IntyXxfTlZdOHSbJTsG+eOGve0uLGRAOS+oeCstO7Gk4e/Ylozju+ixkINEY7HHDGt6AyHGtjPdy08Y0XrIqs0JMxsHKrtTVNxDjIFKbMees+vtxU3DEr/tNo1sTo34ieGKZP2Cp5mG/IrcjD1saebUaCngQO3QfeuKcU8pBTR7l7PtFNHm3HrmdkY= |
| 95 | + |
| 96 | + - name: 'Sauce Labs, Chrome latest, W3C protocol' |
| 97 | + php: '7.3' |
52 | 98 | env: SAUCELABS=1 BROWSER_NAME="chrome" VERSION="latest" PLATFORM="Windows 10"
|
53 | 99 | before_script:
|
54 | 100 | - php -S 127.0.0.1:8000 -t tests/functional/web/ &>>./logs/php-server.log &
|
55 | 101 | - until $(echo | nc localhost 8000); do sleep 1; echo waiting for PHP server on port 8000...; done; echo "PHP server started"
|
56 | 102 | addons:
|
57 | 103 | sauce_connect: true
|
58 | 104 | jwt:
|
59 |
| - secure: HPq5xFhosa1eSGnaRdJzeyEuaE0mhRlG1gf3G7+dKS0VniF30husSyrxZhbGCCKBGxmIySoAQzd43BCwL69EkUEVKDN87Cpid1Ce9KrSfU3cnN8XIb+4QINyy7x1a47RUAfaaOEx53TrW0ShalvjD+ZwDE8LrgagSox6KQ+nQLE= |
60 |
| - - php: 7.2 |
61 |
| - env: SAUCELABS=1 BROWSER_NAME="MicrosoftEdge" VERSION="15.15063" PLATFORM="Windows 10" |
| 105 | + secure: 5s8iQfH1dHgEm0DeP9VZ/MCzCeiE/HnMWqPFzRmg6VD2qJ53oYdseo8j+QCbE25MIwoSnIbKzlnbCN6fVzZc/0S7Mo45xJiq8xVLPSdMjDoOeqYE4of+t5Srq4iSzGLPCLiMTtB4xDEl6blUVGhYxN5rA/tVN+cVtLNQvo3ovRon3Mw3MqR4pgCE6PofcLXtyJc3KuOBlUJLWdPGRdlZrpKWE5ogyj4a1h4bVwidckZqkOF+gm58Gf0zVfFazDQFIw2Xuq7SZmiNgdOD5yUEePkrMhy2tbOlPNAIgHCpzHldv5Y+GYyxIYHZ0mGlGxHrfjrcAoSA6r2iXB9q2ijLVwqOARpcvGcBzZBil9aMAHRIXHAOV9Ihv4velrzmiLKADtD60Bfj2zzntGYZA3EGucitMMkkP7vfAa769i5QWK1Lniq3+VUuGNVjRzl4GuQPpc0wMWeJvQGc5Uf9Kk/sOCkPp0SPWcZ6nNAUebRy3V5OoADA9IntyXxfTlZdOHSbJTsG+eOGve0uLGRAOS+oeCstO7Gk4e/Ylozju+ixkINEY7HHDGt6AyHGtjPdy08Y0XrIqs0JMxsHKrtTVNxDjIFKbMees+vtxU3DEr/tNo1sTo34ieGKZP2Cp5mG/IrcjD1saebUaCngQO3QfeuKcU8pBTR7l7PtFNHm3HrmdkY= |
| 106 | + |
| 107 | + - name: 'Sauce Labs, Edge latest, W3C protocol' |
| 108 | + php: '7.3' |
| 109 | + env: SAUCELABS=1 BROWSER_NAME="MicrosoftEdge" VERSION="latest" PLATFORM="Windows 10" |
62 | 110 | before_script:
|
63 | 111 | - php -S 127.0.0.1:8000 -t tests/functional/web/ &>>./logs/php-server.log &
|
64 | 112 | - until $(echo | nc localhost 8000); do sleep 1; echo waiting for PHP server on port 8000...; done; echo "PHP server started"
|
65 | 113 | addons:
|
66 | 114 | sauce_connect: true
|
67 | 115 | jwt:
|
68 |
| - secure: HPq5xFhosa1eSGnaRdJzeyEuaE0mhRlG1gf3G7+dKS0VniF30husSyrxZhbGCCKBGxmIySoAQzd43BCwL69EkUEVKDN87Cpid1Ce9KrSfU3cnN8XIb+4QINyy7x1a47RUAfaaOEx53TrW0ShalvjD+ZwDE8LrgagSox6KQ+nQLE= |
69 |
| - |
70 |
| - # Codestyle check build |
71 |
| - - php: 7.2 |
72 |
| - env: CHECK_CODESTYLE=1 |
73 |
| - before_install: |
74 |
| - - phpenv config-rm xdebug.ini |
75 |
| - before_script: ~ |
76 |
| - script: |
77 |
| - - composer require phpstan/phpstan-shim # Not part of require-dev, because it won't install on PHP 5.6 |
78 |
| - - composer analyze |
79 |
| - - composer codestyle:check |
80 |
| - after_script: ~ |
81 |
| - after_success: ~ |
| 116 | + secure: 5s8iQfH1dHgEm0DeP9VZ/MCzCeiE/HnMWqPFzRmg6VD2qJ53oYdseo8j+QCbE25MIwoSnIbKzlnbCN6fVzZc/0S7Mo45xJiq8xVLPSdMjDoOeqYE4of+t5Srq4iSzGLPCLiMTtB4xDEl6blUVGhYxN5rA/tVN+cVtLNQvo3ovRon3Mw3MqR4pgCE6PofcLXtyJc3KuOBlUJLWdPGRdlZrpKWE5ogyj4a1h4bVwidckZqkOF+gm58Gf0zVfFazDQFIw2Xuq7SZmiNgdOD5yUEePkrMhy2tbOlPNAIgHCpzHldv5Y+GYyxIYHZ0mGlGxHrfjrcAoSA6r2iXB9q2ijLVwqOARpcvGcBzZBil9aMAHRIXHAOV9Ihv4velrzmiLKADtD60Bfj2zzntGYZA3EGucitMMkkP7vfAa769i5QWK1Lniq3+VUuGNVjRzl4GuQPpc0wMWeJvQGc5Uf9Kk/sOCkPp0SPWcZ6nNAUebRy3V5OoADA9IntyXxfTlZdOHSbJTsG+eOGve0uLGRAOS+oeCstO7Gk4e/Ylozju+ixkINEY7HHDGt6AyHGtjPdy08Y0XrIqs0JMxsHKrtTVNxDjIFKbMees+vtxU3DEr/tNo1sTo34ieGKZP2Cp5mG/IrcjD1saebUaCngQO3QfeuKcU8pBTR7l7PtFNHm3HrmdkY= |
82 | 117 |
|
83 | 118 | cache:
|
84 | 119 | directories:
|
85 | 120 | - $HOME/.composer/cache
|
86 |
| - - jar |
87 | 121 |
|
88 | 122 | install:
|
89 | 123 | - travis_retry composer self-update
|
90 | 124 | - travis_retry composer update --no-interaction $DEPENDENCIES
|
91 | 125 |
|
92 | 126 | before_script:
|
93 |
| - - if [ "$BROWSER_NAME" = "chrome" ]; then mkdir chromedriver; wget -q -t 3 https://chromedriver.storage.googleapis.com/$CHROMEDRIVER_VERSION/chromedriver_linux64.zip; unzip chromedriver_linux64 -d chromedriver; fi |
| 127 | + - if [ "$BROWSER_NAME" = "chrome" ]; then |
| 128 | + mkdir chromedriver; |
| 129 | + CHROME_VERSION=$(google-chrome --product-version); |
| 130 | + CHROME_VERSION=${CHROME_VERSION%.*}; |
| 131 | + wget -q -t 3 https://chromedriver.storage.googleapis.com/$(curl -L https://chromedriver.storage.googleapis.com/LATEST_RELEASE_${CHROME_VERSION})/chromedriver_linux64.zip; |
| 132 | + unzip chromedriver_linux64.zip -d chromedriver; |
| 133 | + fi |
94 | 134 | - if [ "$BROWSER_NAME" = "chrome" ]; then export CHROMEDRIVER_PATH=$PWD/chromedriver/chromedriver; fi
|
95 |
| - - sh -e /etc/init.d/xvfb start |
96 |
| - - if [ ! -f jar/selenium-server-standalone-3.8.1.jar ]; then wget -q -t 3 -P jar https://selenium-release.storage.googleapis.com/3.8/selenium-server-standalone-3.8.1.jar; fi |
97 |
| - - java -Dwebdriver.firefox.marionette=false -Dwebdriver.chrome.driver="$CHROMEDRIVER_PATH" -jar jar/selenium-server-standalone-3.8.1.jar -enablePassThrough false -log ./logs/selenium.log & |
| 135 | + - if [ "$GECKODRIVER" = "1" ]; then mkdir -p geckodriver; wget -q -t 3 https://github.com/mozilla/geckodriver/releases/download/v0.27.0/geckodriver-v0.27.0-linux64.tar.gz; tar xzf geckodriver-v0.27.0-linux64.tar.gz -C geckodriver; fi |
| 136 | + - if [ ! -f jar/selenium-server-standalone.jar ] && [ -n "$SELENIUM_SERVER" ]; then |
| 137 | + mkdir -p jar; |
| 138 | + if [ "$SELENIUM_SERVER" = "legacy" ]; then |
| 139 | + wget -q -t 3 -O jar/selenium-server-standalone.jar https://selenium-release.storage.googleapis.com/3.8/selenium-server-standalone-3.8.1.jar; |
| 140 | + else |
| 141 | + wget -q -t 3 -O jar/selenium-server-standalone.jar $SELENIUM_SERVER; |
| 142 | + fi |
| 143 | + fi |
| 144 | + - if [ "$GECKODRIVER" = "1" ]; then |
| 145 | + geckodriver/geckodriver &> ./logs/geckodriver.log & |
| 146 | + elif [ "$CHROMEDRIVER" = "1" ]; then |
| 147 | + chromedriver/chromedriver --port=4444 --url-base=/wd/hub &> ./logs/chromedriver.log & |
| 148 | + elif [ "$SELENIUM_SERVER" = "legacy" ]; then |
| 149 | + java -Dwebdriver.firefox.marionette=false -Dwebdriver.chrome.driver="$PWD/chromedriver/chromedriver" -jar jar/selenium-server-standalone.jar -enablePassThrough false -log ./logs/selenium.log & |
| 150 | + else |
| 151 | + java -Dwebdriver.chrome.driver="$PWD/chromedriver/chromedriver" -Dwebdriver.gecko.driver="$PWD/geckodriver/geckodriver" -jar jar/selenium-server-standalone.jar -log ./logs/selenium.log & |
| 152 | + fi |
98 | 153 | - until $(echo | nc localhost 4444); do sleep 1; echo Waiting for Selenium server on port 4444...; done; echo "Selenium server started"
|
99 | 154 | - php -S 127.0.0.1:8000 -t tests/functional/web/ &>>./logs/php-server.log &
|
100 | 155 | - until $(echo | nc localhost 8000); do sleep 1; echo waiting for PHP server on port 8000...; done; echo "PHP server started"
|
101 | 156 |
|
102 | 157 | script:
|
103 | 158 | - if [ -n "$SAUCELABS" ]; then EXCLUDE_GROUP+="exclude-saucelabs,"; fi
|
104 | 159 | - if [ "$BROWSER_NAME" = "MicrosoftEdge" ]; then EXCLUDE_GROUP+="exclude-edge,"; fi
|
| 160 | + - if [ "$BROWSER_NAME" = "firefox" ]; then EXCLUDE_GROUP+="exclude-firefox,"; fi |
| 161 | + - if [ "$BROWSER_NAME" = "chrome" ]; then EXCLUDE_GROUP+="exclude-chrome,"; fi |
105 | 162 | - if [ -n "$EXCLUDE_GROUP" ]; then EXTRA_PARAMS+=" --exclude-group $EXCLUDE_GROUP"; fi
|
106 | 163 | - ./vendor/bin/phpunit --coverage-clover ./logs/coverage-clover.xml $EXTRA_PARAMS
|
107 | 164 |
|
108 | 165 | after_script:
|
109 | 166 | - if [ -f ./logs/selenium.log ]; then cat ./logs/selenium.log; fi
|
110 | 167 | - if [ -f ./logs/php-server.log ]; then cat ./logs/php-server.log; fi
|
| 168 | + - if [ -f ./logs/geckodriver.log ]; then cat ./logs/geckodriver.log; fi |
| 169 | + - if [ -f ./logs/chromedriver.log ]; then cat ./logs/chromedriver.log; fi |
111 | 170 |
|
112 | 171 | after_success:
|
113 | 172 | - travis_retry php vendor/bin/php-coveralls -v
|
0 commit comments