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
11 echo "Not using composer github api token"
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
29 echo "-----------------------------------------------"
30 jobTest="${mes} - Checking for PHP styling (PSR-12) issues"
31 jobTests+="${jobTest}\n"
33 echo "-----------------------------------------------"
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
48 echo "-----------------------------------------------"
49 jobTest="${mes} - Checking for PHP theme styling issues"
50 jobTests+="${jobTest}\n"
52 echo "-----------------------------------------------"
55 echo "------------------------------"
56 echo "Checking for PHP syntax errors"
57 echo "------------------------------"
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
70 echo "---------------------------------------"
71 jobTest="${mes} - Checking for PHP syntax errors"
72 jobTests+="${jobTest}\n"
74 echo "---------------------------------------"
75 - &dockers_env_start |
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
89 echo "------------------------------------------------------------------------------"
90 jobTest="${mes} - Start up the appropriate testing docker system to allow testing below"
91 jobTests+="${jobTest}\n"
93 echo "------------------------------------------------------------------------------"
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
114 echo "---------------------------"
115 jobTest="${mes} - Main OpenEMR Build"
116 jobTests+="${jobTest}\n"
118 echo "---------------------------"
121 echo "------------------"
122 echo "CCDA OpenEMR Build"
123 echo "------------------"
124 cd ccdaservice || failTest=true
125 npm install || failTest=true
126 cd ../ || failTest=true
133 echo "---------------------------"
134 jobTest="${mes} - CCDA OpenEMR Build"
135 jobTests+="${jobTest}\n"
137 echo "---------------------------"
138 - &install_configure |
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
159 echo "-------------------------------------------------------------------------------------------------------"
160 jobTest="${mes} - Install and Configure OpenEMR for testing (remove registration modal on login and turn on api)"
161 jobTests+="${jobTest}\n"
163 echo "-------------------------------------------------------------------------------------------------------"
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
176 echo "-----------------------"
177 jobTest="${mes} - Run Unit Tests"
178 jobTests+="${jobTest}\n"
180 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
193 echo "----------------------"
194 jobTest="${mes} - Run E2e Tests"
195 jobTests+="${jobTest}\n"
197 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
210 echo "----------------------"
211 jobTest="${mes} - Run Api Tests"
212 jobTests+="${jobTest}\n"
214 echo "----------------------"
215 - &build_test_fixtures |
218 echo "Run Fixture Tests"
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
227 echo "----------------------"
228 jobTest="${mes} - Run Fixture Tests"
229 jobTests+="${jobTest}\n"
231 echo "----------------------"
232 - &build_test_services |
235 echo "Run Service Tests"
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
244 echo "----------------------"
245 jobTest="${mes} - Run Service Tests"
246 jobTests+="${jobTest}\n"
248 echo "----------------------"
249 - &build_test_validators |
252 echo "Run Validator Tests"
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
261 echo "----------------------"
262 jobTest="${mes} - Run Validator Tests"
263 jobTests+="${jobTest}\n"
265 echo "----------------------"
266 - &build_test_controllers |
269 echo "Run Controller Tests"
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
278 echo "----------------------"
279 jobTest="${mes} - Run Controller Tests"
280 jobTests+="${jobTest}\n"
282 echo "----------------------"
283 - &build_test_common |
286 echo "Run Common Tests"
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
295 echo "----------------------"
296 jobTest="${mes} - Run Common Tests"
297 jobTests+="${jobTest}\n"
299 echo "----------------------"
300 - &job_summary_prep |
306 jobSummary="--------------------------------------------\n"
307 jobSummary+="--------------------------------------------\n"
308 jobSummary+="${mes} - JOB SUMMARY\n"
309 jobSummary+="--------------------------------------------\n"
310 jobSummary+="${jobTests}"
311 jobSummary+="--------------------------------------------"
313 - echo "extension=ldap.so" >>php --ini | grep "Loaded Configuration" | sed -e "s|.:\s||"``
315 - echo 'error_reporting = "E_ALL & ~E_NOTICE & ~E_STRICT"' >> ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/travis.ini
318 - name: 'Psr12 style'
322 - *composer_github_auth
325 - echo -e "${jobSummary}"
326 - if $failJob; then travis_terminate 1; fi
327 - name: 'Theme style'
333 - echo -e "${jobSummary}"
334 - if $failJob; then travis_terminate 1; fi
335 - name: 'Syntax - PHP 7.2'
341 - echo -e "${jobSummary}"
342 - if $failJob; then travis_terminate 1; fi
343 - name: 'Syntax - PHP 7.3'
349 - echo -e "${jobSummary}"
350 - if $failJob; then travis_terminate 1; fi
351 - name: 'Syntax - PHP 7.4'
357 - echo -e "${jobSummary}"
358 - if $failJob; then travis_terminate 1; fi
359 - name: 'Syntax - PHP 8.0'
365 - echo -e "${jobSummary}"
366 - if $failJob; then travis_terminate 1; fi
367 - name: 'Build and test - PHP 7.3 - Apache - MariaDB 10.5'
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"
376 - *composer_github_auth
383 - *build_test_fixtures
384 - *build_test_services
385 - *build_test_validators
386 - *build_test_controllers
389 - echo -e "${jobSummary}"
390 - if $failJob; then travis_terminate 1; fi
391 - name: 'Build and test - PHP 7.3 - Apache - MariaDB 10.4'
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"
400 - *composer_github_auth
407 - *build_test_fixtures
408 - *build_test_services
409 - *build_test_validators
410 - *build_test_controllers
413 - echo -e "${jobSummary}"
414 - if $failJob; then travis_terminate 1; fi
415 - name: 'Build and test - PHP 7.3 - Apache - MariaDB 10.3'
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"
424 - *composer_github_auth
431 - *build_test_fixtures
432 - *build_test_services
433 - *build_test_validators
434 - *build_test_controllers
437 - echo -e "${jobSummary}"
438 - if $failJob; then travis_terminate 1; fi
439 - name: 'Build and test - PHP 7.3 - Apache - MariaDB 10.2'
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"
448 - *composer_github_auth
455 - *build_test_fixtures
456 - *build_test_services
457 - *build_test_validators
458 - *build_test_controllers
461 - echo -e "${jobSummary}"
462 - if $failJob; then travis_terminate 1; fi
463 - name: 'Build and test - PHP 7.3 - Apache - MariaDB 10.1'
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"
472 - *composer_github_auth
479 - *build_test_fixtures
480 - *build_test_services
481 - *build_test_validators
482 - *build_test_controllers
485 - echo -e "${jobSummary}"
486 - if $failJob; then travis_terminate 1; fi
487 - name: 'Build and test - PHP 7.3 - Apache - MySQL 8'
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"
496 - *composer_github_auth
503 - *build_test_fixtures
504 - *build_test_services
505 - *build_test_validators
506 - *build_test_controllers
509 - echo -e "${jobSummary}"
510 - if $failJob; then travis_terminate 1; fi
511 - name: 'Build and test - PHP 7.3 - Apache - MySQL 5.7'
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"
520 - *composer_github_auth
527 - *build_test_fixtures
528 - *build_test_services
529 - *build_test_validators
530 - *build_test_controllers
533 - echo -e "${jobSummary}"
534 - if $failJob; then travis_terminate 1; fi
535 - name: 'Build and test - PHP 7.3 - Apache - MySQL 5.6'
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"
544 - *composer_github_auth
551 - *build_test_fixtures
552 - *build_test_services
553 - *build_test_validators
554 - *build_test_controllers
557 - echo -e "${jobSummary}"
558 - if $failJob; then travis_terminate 1; fi
559 - name: 'Build and test - PHP 7.2 - Nginx - MariaDB 10.4'
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"
568 - *composer_github_auth
574 - *build_test_fixtures
575 - *build_test_services
576 - *build_test_validators
577 - *build_test_controllers
580 - echo -e "${jobSummary}"
581 - if $failJob; then travis_terminate 1; fi
582 - name: 'Build and test - PHP 7.3 - Nginx - MariaDB 10.4'
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"
591 - *composer_github_auth
597 - *build_test_fixtures
598 - *build_test_services
599 - *build_test_validators
600 - *build_test_controllers
603 - echo -e "${jobSummary}"
604 - if $failJob; then travis_terminate 1; fi
605 - name: 'Build and test - PHP 7.4 - Nginx - MariaDB 10.4'
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"
614 - *composer_github_auth
620 - *build_test_fixtures
621 - *build_test_services
622 - *build_test_validators
623 - *build_test_controllers
626 - echo -e "${jobSummary}"
627 - if $failJob; then travis_terminate 1; fi
628 - name: 'Build and test - PHP 8.0 - Nginx - MariaDB 10.4'
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"
637 - *composer_github_auth
643 - *build_test_fixtures
644 - *build_test_services
645 - *build_test_validators
646 - *build_test_controllers
649 - echo -e "${jobSummary}"
650 - if $failJob; then travis_terminate 1; fi
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'