First impression, update the look of the landing page (#3626)
[openemr.git] / .travis.yml
blobe2230aa0d80a1590baa072f57d4f21343f95381f
1 language: php
2 .steps:
3   - &composer_github_auth |
4       githubTokenRateLimitRequest=`curl -H "Authorization: token 310659f0a8658693af9ccb9da8969584b598910a" https://api.github.com/rate_limit`
5       githubTokenRateLimit=`echo $githubTokenRateLimitRequest | jq '.rate.remaining'`
6       echo "Number of github api requests remaining is $githubTokenRateLimit"
7       if [ "$githubTokenRateLimit" -gt 500 ]; then
8         echo "Using composer github api token"
9         composer config --global --auth github-oauth.github.com 310659f0a8658693af9ccb9da8969584b598910a
10       else
11         echo "Not using composer github api token"
12       fi
13   - &lint_style |
14       failTest=false
15       echo "--------------------------------------"
16       echo "Checking for PHP styling (PSR-12) issues"
17       echo "--------------------------------------"
18       composer global require "squizlabs/php_codesniffer=3.*" || failTest=true
19       $HOME/.config/composer/vendor/bin/phpcs -p -n --extensions=php,inc --report-width=120 --standard=ci/phpcs.xml --report=full . || failTest=true
20       # todo clean up method visibility and other refactors in src/
21       # $HOME/.config/composer/vendor/bin/phpcs -p -n --extensions=php,inc --report-width=120 --standard=ci/phpcs_src.xml --report=full src/ || failTest=true
23       if $failTest; then
24         failJob=true
25         mes="FAILED"
26       else
27         mes="PASSED"
28       fi
29       echo "-----------------------------------------------"
30       jobTest="${mes} - Checking for PHP styling (PSR-12) issues"
31       jobTests+="${jobTest}\n"
32       echo "${jobTest}"
33       echo "-----------------------------------------------"
34   - &lint_theme_style |
35       failTest=false
36       echo "--------------------------------------"
37       echo "Checking for PHP theme styling issues"
38       echo "--------------------------------------"
39       npm install || failTest=true
40       npx stylelint "**/*.css" || failTest=true
41       npx stylelint "**/*.scss" || failTest=true
42       if $failTest; then
43         failJob=true
44         mes="FAILED"
45       else
46         mes="PASSED"
47       fi
48       echo "-----------------------------------------------"
49       jobTest="${mes} - Checking for PHP theme styling issues"
50       jobTests+="${jobTest}\n"
51       echo "${jobTest}"
52       echo "-----------------------------------------------"
53   - &lint_syntax |
54       failTest=false
55       echo "------------------------------"
56       echo "Checking for PHP syntax errors"
57       echo "------------------------------"
58       failSyntax=false
59       if find . -type f -name "*.php" -exec php -d error_reporting=32767 -l {} \; 2>&1 >&- | grep "^"; then failSyntax=true; fi
60       if find . -type f -name "*.inc" -exec php -d error_reporting=32767 -l {} \; 2>&1 >&- | grep "^"; then failSyntax=true; fi
61       if $failSyntax; then
62         failTest=true
63       fi
64       if $failTest; then
65         failJob=true
66         mes="FAILED"
67       else
68         mes="PASSED"
69       fi
70       echo "---------------------------------------"
71       jobTest="${mes} - Checking for PHP syntax errors"
72       jobTests+="${jobTest}\n"
73       echo "${jobTest}"
74       echo "---------------------------------------"
75   - &dockers_env_start |
76       failTest=false
77       echo "---------------------------------------------------------------------"
78       echo "Start up the appropriate testing docker system to allow testing below"
79       echo "---------------------------------------------------------------------"
80       cd ci/${DOCKER_DIR} || failTest=true
81       docker-compose up -d || failTest=true
82       cd ../../ || failTest=true
83       if $failTest; then
84         failJob=true
85         mes="FAILED"
86       else
87         mes="PASSED"
88       fi
89       echo "------------------------------------------------------------------------------"
90       jobTest="${mes} - Start up the appropriate testing docker system to allow testing below"
91       jobTests+="${jobTest}\n"
92       echo "${jobTest}"
93       echo "------------------------------------------------------------------------------"
94   - &main_build |
95       failTest=false
96       echo "------------------"
97       echo "Main OpenEMR Build"
98       echo "------------------"
99       composer install || failTest=true
100       npm install || failTest=true
101       npm run build || failTest=true
102       composer global require phing/phing || failTest=true
103       $HOME/.config/composer/vendor/bin/phing vendor-clean || failTest=true
104       $HOME/.config/composer/vendor/bin/phing assets-clean || failTest=true
105       composer global remove phing/phing || failTest=true
106       composer dump-autoload -o || failTest=true
107       rm -fr node_modules || failTest=true
108       if $failTest; then
109         failJob=true
110         mes="FAILED"
111       else
112         mes="PASSED"
113       fi
114       echo "---------------------------"
115       jobTest="${mes} - Main OpenEMR Build"
116       jobTests+="${jobTest}\n"
117       echo "${jobTest}"
118       echo "---------------------------"
119   - &ccda_build |
120       failTest=false
121       echo "------------------"
122       echo "CCDA OpenEMR Build"
123       echo "------------------"
124       cd ccdaservice || failTest=true
125       npm install || failTest=true
126       cd ../ || failTest=true
127       if $failTest; then
128         failJob=true
129         mes="FAILED"
130       else
131         mes="PASSED"
132       fi
133       echo "---------------------------"
134       jobTest="${mes} - CCDA OpenEMR Build"
135       jobTests+="${jobTest}\n"
136       echo "${jobTest}"
137       echo "---------------------------"
138   - &install_configure |
139       failTest=false
140       echo "----------------------------------------------------------------------------------------------"
141       echo "Install and Configure OpenEMR for testing (remove registration modal on login and turn on api)"
142       echo "----------------------------------------------------------------------------------------------"
143       sudo chmod 666 sites/default/sqlconf.php || failTest=true
144       sudo chmod -R 777 sites/default/documents || failTest=true
145       sed -e 's@^exit;@ @' < contrib/util/installScripts/InstallerAuto.php > contrib/util/installScripts/InstallerAutoTemp.php || failTest=true
146       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c "php -f ${OPENEMR_DIR}/contrib/util/installScripts/InstallerAutoTemp.php rootpass=root server=mysql loginhost=%" || failTest=true
147       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c "rm -f ${OPENEMR_DIR}/contrib/util/installScripts/InstallerAutoTemp.php" || failTest=true
148       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c 'mysql -u openemr --password="openemr" -h mysql -e "INSERT INTO product_registration (opt_out) VALUES (1)" openemr' || failTest=true
149       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c 'mysql -u openemr --password="openemr" -h mysql -e "UPDATE globals SET gl_value = 1 WHERE gl_name = \"rest_api\"" openemr' || failTest=true
150       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c 'mysql -u openemr --password="openemr" -h mysql -e "UPDATE globals SET gl_value = 1 WHERE gl_name = \"rest_fhir_api\"" openemr' || failTest=true
151       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c 'mysql -u openemr --password="openemr" -h mysql -e "UPDATE globals SET gl_value = 1 WHERE gl_name = \"rest_portal_api\"" openemr' || failTest=true
152       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c 'mysql -u openemr --password="openemr" -h mysql -e "UPDATE globals SET gl_value = 1 WHERE gl_name = \"rest_portal_fhir_api\"" openemr' || failTest=true
153       if $failTest; then
154         failJob=true
155         mes="FAILED"
156       else
157         mes="PASSED"
158       fi
159       echo "-------------------------------------------------------------------------------------------------------"
160       jobTest="${mes} - Install and Configure OpenEMR for testing (remove registration modal on login and turn on api)"
161       jobTests+="${jobTest}\n"
162       echo "${jobTest}"
163       echo "-------------------------------------------------------------------------------------------------------"
164   - &build_test_unit |
165       failTest=false
166       echo "---------------"
167       echo "Run Unit Tests"
168       echo "---------------"
169       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c "cd ${OPENEMR_DIR}; php ${OPENEMR_DIR}/vendor/bin/phpunit --testsuite unit --testdox" || failTest=true
170       if $failTest; then
171         failJob=true
172         mes="FAILED"
173       else
174         mes="PASSED"
175       fi
176       echo "-----------------------"
177       jobTest="${mes} - Run Unit Tests"
178       jobTests+="${jobTest}\n"
179       echo "${jobTest}"
180       echo "-----------------------"
181   - &build_test_e2e |
182       failTest=false
183       echo "-------------"
184       echo "Run E2e Tests"
185       echo "-------------"
186       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c "${CHROMIUM_INSTALL}; export PANTHER_NO_SANDBOX=1; cd ${OPENEMR_DIR}; php ${OPENEMR_DIR}/vendor/bin/phpunit --testsuite e2e --testdox" || failTest=true
187       if $failTest; then
188         failJob=true
189         mes="FAILED"
190       else
191         mes="PASSED"
192       fi
193       echo "----------------------"
194       jobTest="${mes} - Run E2e Tests"
195       jobTests+="${jobTest}\n"
196       echo "${jobTest}"
197       echo "----------------------"
198   - &build_test_api |
199       failTest=false
200       echo "-------------"
201       echo "Run Api Tests"
202       echo "-------------"
203       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c "cd ${OPENEMR_DIR}; php ${OPENEMR_DIR}/vendor/bin/phpunit --testsuite api --testdox" || failTest=true
204       if $failTest; then
205         failJob=true
206         mes="FAILED"
207       else
208         mes="PASSED"
209       fi
210       echo "----------------------"
211       jobTest="${mes} - Run Api Tests"
212       jobTests+="${jobTest}\n"
213       echo "${jobTest}"
214       echo "----------------------"
215   - &build_test_fixtures |
216       failTest=false
217       echo "-------------"
218       echo "Run Fixture Tests"
219       echo "-------------"
220       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c "cd ${OPENEMR_DIR}; php ${OPENEMR_DIR}/vendor/bin/phpunit --testsuite fixtures --testdox" || failTest=true
221       if $failTest; then
222         failJob=true
223         mes="FAILED"
224       else
225         mes="PASSED"
226       fi
227       echo "----------------------"
228       jobTest="${mes} - Run Fixture Tests"
229       jobTests+="${jobTest}\n"
230       echo "${jobTest}"
231       echo "----------------------"
232   - &build_test_services |
233       failTest=false
234       echo "-------------"
235       echo "Run Service Tests"
236       echo "-------------"
237       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c "cd ${OPENEMR_DIR}; php ${OPENEMR_DIR}/vendor/bin/phpunit --testsuite services --testdox" || failTest=true
238       if $failTest; then
239         failJob=true
240         mes="FAILED"
241       else
242         mes="PASSED"
243       fi
244       echo "----------------------"
245       jobTest="${mes} - Run Service Tests"
246       jobTests+="${jobTest}\n"
247       echo "${jobTest}"
248       echo "----------------------"
249   - &build_test_validators |
250       failTest=false
251       echo "-------------"
252       echo "Run Validator Tests"
253       echo "-------------"
254       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c "cd ${OPENEMR_DIR}; php ${OPENEMR_DIR}/vendor/bin/phpunit --testsuite validators --testdox" || failTest=true
255       if $failTest; then
256         failJob=true
257         mes="FAILED"
258       else
259         mes="PASSED"
260       fi
261       echo "----------------------"
262       jobTest="${mes} - Run Validator Tests"
263       jobTests+="${jobTest}\n"
264       echo "${jobTest}"
265       echo "----------------------"
266   - &build_test_controllers |
267       failTest=false
268       echo "-------------"
269       echo "Run Controller Tests"
270       echo "-------------"
271       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c "cd ${OPENEMR_DIR}; php ${OPENEMR_DIR}/vendor/bin/phpunit --testsuite controllers --testdox" || failTest=true
272       if $failTest; then
273         failJob=true
274         mes="FAILED"
275       else
276         mes="PASSED"
277       fi
278       echo "----------------------"
279       jobTest="${mes} - Run Controller Tests"
280       jobTests+="${jobTest}\n"
281       echo "${jobTest}"
282       echo "----------------------"
283   - &build_test_common |
284       failTest=false
285       echo "-------------"
286       echo "Run Common Tests"
287       echo "-------------"
288       docker exec -i $(docker ps | grep _openemr | cut -f 1 -d " ") sh -c "cd ${OPENEMR_DIR}; php ${OPENEMR_DIR}/vendor/bin/phpunit --testsuite common --testdox" || failTest=true
289       if $failTest; then
290         failJob=true
291         mes="FAILED"
292       else
293         mes="PASSED"
294       fi
295       echo "----------------------"
296       jobTest="${mes} - Run Common Tests"
297       jobTests+="${jobTest}\n"
298       echo "${jobTest}"
299       echo "----------------------"
300   - &job_summary_prep |
301       if $failJob; then
302         mes="FAILED"
303       else
304         mes="PASSED"
305       fi
306       jobSummary="--------------------------------------------\n"
307       jobSummary+="--------------------------------------------\n"
308       jobSummary+="${mes} - JOB SUMMARY\n"
309       jobSummary+="--------------------------------------------\n"
310       jobSummary+="${jobTests}"
311       jobSummary+="--------------------------------------------"
312 before_install:
313   - echo "extension=ldap.so" >>php --ini | grep "Loaded Configuration" | sed -e "s|.:\s||"``
314 before_script:
315   - echo 'error_reporting = "E_ALL & ~E_NOTICE & ~E_STRICT"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
316 jobs:
317   include:
318     - name: 'Psr12 style'
319       php: '7.4'
320       script:
321         - failJob=false
322         - *composer_github_auth
323         - *lint_style
324         - *job_summary_prep
325         - echo -e "${jobSummary}"
326         - if $failJob; then travis_terminate 1; fi
327     - name: 'Theme style'
328       php: '7.4'
329       script:
330         - failJob=false
331         - *lint_theme_style
332         - *job_summary_prep
333         - echo -e "${jobSummary}"
334         - if $failJob; then travis_terminate 1; fi
335     - name: 'Syntax - PHP 7.2'
336       php: '7.2'
337       script:
338         - failJob=false
339         - *lint_syntax
340         - *job_summary_prep
341         - echo -e "${jobSummary}"
342         - if $failJob; then travis_terminate 1; fi
343     - name: 'Syntax - PHP 7.3'
344       php: '7.3'
345       script:
346         - failJob=false
347         - *lint_syntax
348         - *job_summary_prep
349         - echo -e "${jobSummary}"
350         - if $failJob; then travis_terminate 1; fi
351     - name: 'Syntax - PHP 7.4'
352       php: '7.4'
353       script:
354         - failJob=false
355         - *lint_syntax
356         - *job_summary_prep
357         - echo -e "${jobSummary}"
358         - if $failJob; then travis_terminate 1; fi
359     - name: 'Syntax - PHP 8.0'
360       php: 'nightly'
361       script:
362         - failJob=false
363         - *lint_syntax
364         - *job_summary_prep
365         - echo -e "${jobSummary}"
366         - if $failJob; then travis_terminate 1; fi
367     - name: 'Build and test - PHP 7.3 - Apache - MariaDB 10.5'
368       php: '7.3'
369       env:
370         - DOCKER_DIR=apache_73_105
371         - OPENEMR_DIR=/var/www/localhost/htdocs/openemr
372         - CHROMIUM_INSTALL="apk update; apk add --no-cache chromium chromium-chromedriver; export PANTHER_CHROME_DRIVER_BINARY=/usr/lib/chromium/chromedriver"
373       script:
374         - failJob=false
375         - *dockers_env_start
376         - *composer_github_auth
377         - *main_build
378         - *ccda_build
379         - *install_configure
380         - *build_test_unit
381         - *build_test_e2e
382         - *build_test_api
383         - *build_test_fixtures
384         - *build_test_services
385         - *build_test_validators
386         - *build_test_controllers
387         - *build_test_common
388         - *job_summary_prep
389         - echo -e "${jobSummary}"
390         - if $failJob; then travis_terminate 1; fi
391     - name: 'Build and test - PHP 7.3 - Apache - MariaDB 10.4'
392       php: '7.3'
393       env:
394         - DOCKER_DIR=apache_73_104
395         - OPENEMR_DIR=/var/www/localhost/htdocs/openemr
396         - CHROMIUM_INSTALL="apk update; apk add --no-cache chromium chromium-chromedriver; export PANTHER_CHROME_DRIVER_BINARY=/usr/lib/chromium/chromedriver"
397       script:
398         - failJob=false
399         - *dockers_env_start
400         - *composer_github_auth
401         - *main_build
402         - *ccda_build
403         - *install_configure
404         - *build_test_unit
405         - *build_test_e2e
406         - *build_test_api
407         - *build_test_fixtures
408         - *build_test_services
409         - *build_test_validators
410         - *build_test_controllers
411         - *build_test_common
412         - *job_summary_prep
413         - echo -e "${jobSummary}"
414         - if $failJob; then travis_terminate 1; fi
415     - name: 'Build and test - PHP 7.3 - Apache - MariaDB 10.3'
416       php: '7.3'
417       env:
418         - DOCKER_DIR=apache_73_103
419         - OPENEMR_DIR=/var/www/localhost/htdocs/openemr
420         - CHROMIUM_INSTALL="apk update; apk add --no-cache chromium chromium-chromedriver; export PANTHER_CHROME_DRIVER_BINARY=/usr/lib/chromium/chromedriver"
421       script:
422         - failJob=false
423         - *dockers_env_start
424         - *composer_github_auth
425         - *main_build
426         - *ccda_build
427         - *install_configure
428         - *build_test_unit
429         - *build_test_e2e
430         - *build_test_api
431         - *build_test_fixtures
432         - *build_test_services
433         - *build_test_validators
434         - *build_test_controllers
435         - *build_test_common
436         - *job_summary_prep
437         - echo -e "${jobSummary}"
438         - if $failJob; then travis_terminate 1; fi
439     - name: 'Build and test - PHP 7.3 - Apache - MariaDB 10.2'
440       php: '7.3'
441       env:
442         - DOCKER_DIR=apache_73_102
443         - OPENEMR_DIR=/var/www/localhost/htdocs/openemr
444         - CHROMIUM_INSTALL="apk update; apk add --no-cache chromium chromium-chromedriver; export PANTHER_CHROME_DRIVER_BINARY=/usr/lib/chromium/chromedriver"
445       script:
446         - failJob=false
447         - *dockers_env_start
448         - *composer_github_auth
449         - *main_build
450         - *ccda_build
451         - *install_configure
452         - *build_test_unit
453         - *build_test_e2e
454         - *build_test_api
455         - *build_test_fixtures
456         - *build_test_services
457         - *build_test_validators
458         - *build_test_controllers
459         - *build_test_common
460         - *job_summary_prep
461         - echo -e "${jobSummary}"
462         - if $failJob; then travis_terminate 1; fi
463     - name: 'Build and test - PHP 7.3 - Apache - MariaDB 10.1'
464       php: '7.3'
465       env:
466         - DOCKER_DIR=apache_73_101
467         - OPENEMR_DIR=/var/www/localhost/htdocs/openemr
468         - CHROMIUM_INSTALL="apk update; apk add --no-cache chromium chromium-chromedriver; export PANTHER_CHROME_DRIVER_BINARY=/usr/lib/chromium/chromedriver"
469       script:
470         - failJob=false
471         - *dockers_env_start
472         - *composer_github_auth
473         - *main_build
474         - *ccda_build
475         - *install_configure
476         - *build_test_unit
477         - *build_test_e2e
478         - *build_test_api
479         - *build_test_fixtures
480         - *build_test_services
481         - *build_test_validators
482         - *build_test_controllers
483         - *build_test_common
484         - *job_summary_prep
485         - echo -e "${jobSummary}"
486         - if $failJob; then travis_terminate 1; fi
487     - name: 'Build and test - PHP 7.3 - Apache - MySQL 8'
488       php: '7.3'
489       env:
490         - DOCKER_DIR=apache_73_8
491         - OPENEMR_DIR=/var/www/localhost/htdocs/openemr
492         - CHROMIUM_INSTALL="apk update; apk add --no-cache chromium chromium-chromedriver; export PANTHER_CHROME_DRIVER_BINARY=/usr/lib/chromium/chromedriver"
493       script:
494         - failJob=false
495         - *dockers_env_start
496         - *composer_github_auth
497         - *main_build
498         - *ccda_build
499         - *install_configure
500         - *build_test_unit
501         - *build_test_e2e
502         - *build_test_api
503         - *build_test_fixtures
504         - *build_test_services
505         - *build_test_validators
506         - *build_test_controllers
507         - *build_test_common
508         - *job_summary_prep
509         - echo -e "${jobSummary}"
510         - if $failJob; then travis_terminate 1; fi
511     - name: 'Build and test - PHP 7.3 - Apache - MySQL 5.7'
512       php: '7.3'
513       env:
514         - DOCKER_DIR=apache_73_57
515         - OPENEMR_DIR=/var/www/localhost/htdocs/openemr
516         - CHROMIUM_INSTALL="apk update; apk add --no-cache chromium chromium-chromedriver; export PANTHER_CHROME_DRIVER_BINARY=/usr/lib/chromium/chromedriver"
517       script:
518         - failJob=false
519         - *dockers_env_start
520         - *composer_github_auth
521         - *main_build
522         - *ccda_build
523         - *install_configure
524         - *build_test_unit
525         - *build_test_e2e
526         - *build_test_api
527         - *build_test_fixtures
528         - *build_test_services
529         - *build_test_validators
530         - *build_test_controllers
531         - *build_test_common
532         - *job_summary_prep
533         - echo -e "${jobSummary}"
534         - if $failJob; then travis_terminate 1; fi
535     - name: 'Build and test - PHP 7.3 - Apache - MySQL 5.6'
536       php: '7.3'
537       env:
538         - DOCKER_DIR=apache_73_56
539         - OPENEMR_DIR=/var/www/localhost/htdocs/openemr
540         - CHROMIUM_INSTALL="apk update; apk add --no-cache chromium chromium-chromedriver; export PANTHER_CHROME_DRIVER_BINARY=/usr/lib/chromium/chromedriver"
541       script:
542         - failJob=false
543         - *dockers_env_start
544         - *composer_github_auth
545         - *main_build
546         - *ccda_build
547         - *install_configure
548         - *build_test_unit
549         - *build_test_e2e
550         - *build_test_api
551         - *build_test_fixtures
552         - *build_test_services
553         - *build_test_validators
554         - *build_test_controllers
555         - *build_test_common
556         - *job_summary_prep
557         - echo -e "${jobSummary}"
558         - if $failJob; then travis_terminate 1; fi
559     - name: 'Build and test - PHP 7.2 - Nginx - MariaDB 10.4'
560       php: '7.2'
561       env:
562         - DOCKER_DIR=nginx_72
563         - OPENEMR_DIR=/usr/share/nginx/html/openemr
564         - CHROMIUM_INSTALL="apt-get update; apt-get install -y zip libnss3 chromium"
565       script:
566         - failJob=false
567         - *dockers_env_start
568         - *composer_github_auth
569         - *main_build
570         - *ccda_build
571         - *install_configure
572         - *build_test_unit
573         - *build_test_e2e
574         - *build_test_fixtures
575         - *build_test_services
576         - *build_test_validators
577         - *build_test_controllers
578         - *build_test_common
579         - *job_summary_prep
580         - echo -e "${jobSummary}"
581         - if $failJob; then travis_terminate 1; fi
582     - name: 'Build and test - PHP 7.3 - Nginx - MariaDB 10.4'
583       php: '7.3'
584       env:
585         - DOCKER_DIR=nginx_73
586         - OPENEMR_DIR=/usr/share/nginx/html/openemr
587         - CHROMIUM_INSTALL="apt-get update; apt-get install -y zip libnss3 chromium"
588       script:
589         - failJob=false
590         - *dockers_env_start
591         - *composer_github_auth
592         - *main_build
593         - *ccda_build
594         - *install_configure
595         - *build_test_unit
596         - *build_test_e2e
597         - *build_test_fixtures
598         - *build_test_services
599         - *build_test_validators
600         - *build_test_controllers
601         - *build_test_common
602         - *job_summary_prep
603         - echo -e "${jobSummary}"
604         - if $failJob; then travis_terminate 1; fi
605     - name: 'Build and test - PHP 7.4 - Nginx - MariaDB 10.4'
606       php: '7.4'
607       env:
608         - DOCKER_DIR=nginx_74
609         - OPENEMR_DIR=/usr/share/nginx/html/openemr
610         - CHROMIUM_INSTALL="apt-get update; apt-get install -y zip libnss3 chromium"
611       script:
612         - failJob=false
613         - *dockers_env_start
614         - *composer_github_auth
615         - *main_build
616         - *ccda_build
617         - *install_configure
618         - *build_test_unit
619         - *build_test_e2e
620         - *build_test_fixtures
621         - *build_test_services
622         - *build_test_validators
623         - *build_test_controllers
624         - *build_test_common
625         - *job_summary_prep
626         - echo -e "${jobSummary}"
627         - if $failJob; then travis_terminate 1; fi
628     - name: 'Build and test - PHP 8.0 - Nginx - MariaDB 10.4'
629       php: 'nightly'
630       env:
631         - DOCKER_DIR=nginx_80
632         - OPENEMR_DIR=/usr/share/nginx/html/openemr
633         - CHROMIUM_INSTALL="apt-get update; apt-get install -y zip libnss3 chromium"
634       script:
635         - failJob=false
636         - *dockers_env_start
637         - *composer_github_auth
638         - *main_build
639         - *ccda_build
640         - *install_configure
641         - *build_test_unit
642         - *build_test_e2e
643         - *build_test_fixtures
644         - *build_test_services
645         - *build_test_validators
646         - *build_test_controllers
647         - *build_test_common
648         - *job_summary_prep
649         - echo -e "${jobSummary}"
650         - if $failJob; then travis_terminate 1; fi
651   allow_failures:
652     - name: 'Build and test - PHP 7.3 - Apache - MariaDB 10.5'
653     - name: 'Syntax - PHP 8.0'
654     - name: 'Build and test - PHP 8.0 - Nginx - MariaDB 10.4'