github_ci_php71_pgsql.yml.disabled 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365
  1. name: GitHub CI PHP 7.1 Postgres
  2. on:
  3. push:
  4. branches:
  5. - develop
  6. - 1*
  7. - 2*
  8. pull_request:
  9. types: [opened]
  10. permissions:
  11. contents: read
  12. jobs:
  13. github_ci_php71_pgsql:
  14. runs-on: ubuntu-latest
  15. services:
  16. mysql:
  17. image: mysql:5.7
  18. env:
  19. MYSQL_ROOT_PASSWORD: password
  20. ports:
  21. - 32574:3306
  22. postgres:
  23. image: postgres
  24. env:
  25. POSTGRES_PASSWORD: postgres
  26. POSTGRES_USER: postgres
  27. POSTGRES_DB: postgres
  28. # Set health checks to wait until postgres has started
  29. options: >-
  30. --health-cmd pg_isready
  31. --health-interval 10s
  32. --health-timeout 5s
  33. --health-retries 5
  34. ports:
  35. - 5432:5432
  36. steps:
  37. # git clone dolibarr into GITHUB_WORKSPACE = /home/runner/work/dolibarr/dolibarr
  38. - uses: actions/checkout@v3
  39. with:
  40. fetch-depth: 1
  41. - name: Version PHP
  42. run: |
  43. php -i | head -
  44. - name: Install packages for PHP 7.1
  45. run: |
  46. sudo composer self-update 2.2.18
  47. sudo chmod -R a+rwx /home/runner
  48. composer -n config -g vendor-dir htdocs/includes
  49. sudo add-apt-repository -y ppa:ondrej/php
  50. sudo apt-get update
  51. sudo apt-get install -y pgloader memcached
  52. sudo apt install apache2 php7.1 php7.1-cli php7.1-curl php7.1-mysql php7.1-pgsql php7.1-gd php7.1-imap php7.1-intl php7.1-ldap php7.1-xml php7.1-mbstring php7.1-xml php7.1-zip libapache2-mod-php7.1
  53. sudo update-alternatives --set php /usr/bin/php7.1
  54. php -i | head -
  55. cd $GITHUB_WORKSPACE
  56. ls $GITHUB_WORKSPACE
  57. composer -n require --ignore-platform-reqs phpunit/phpunit ^7.5 \
  58. php-parallel-lint/php-parallel-lint ^1 \
  59. php-parallel-lint/php-console-highlighter ^0 \
  60. php-parallel-lint/php-var-dump-check ~0.4 \
  61. squizlabs/php_codesniffer ^3
  62. #For php7.3
  63. #composer -n require phpunit/phpunit ^7.5 \
  64. # php-parallel-lint/php-parallel-lint ^1.2 \
  65. # php-parallel-lint/php-console-highlighter ^0 \
  66. # php-parallel-lint/php-var-dump-check ~0.4 \
  67. # squizlabs/php_codesniffer ^3
  68. sudo rm -fr htdocs/includes/phpunit/php-code-coverage/src/Report/Html
  69. - name: Adding path of binaries tools installed by composer to the PATH
  70. run: |
  71. export PATH="$GITHUB_WORKSPACE/htdocs/includes/bin:$PATH"
  72. echo $PATH
  73. # We must have a directory bin created by the previous composer call
  74. ls $GITHUB_WORKSPACE/htdocs/includes/bin
  75. - name: Version information
  76. run: |
  77. composer -V
  78. # Check Parallel-lint version
  79. echo "Parallel-lint version"
  80. htdocs/includes/bin/parallel-lint -V
  81. # Check PHP CodeSniffer version
  82. echo "PHPCS version"
  83. htdocs/includes/bin/phpcs --version | head -
  84. htdocs/includes/bin/phpcs -i | head -
  85. # Check PHP Vardump check version
  86. echo "PHP Vardump check version"
  87. htdocs/includes/bin/var-dump-check --version
  88. # Check PHPUnit version
  89. echo "PHPUnit version"
  90. htdocs/includes/bin/phpunit --version | head -
  91. # Check Apache version
  92. echo "Apache version"
  93. apache2 -v | head -
  94. # Check Database
  95. echo "Database version"
  96. mysql --version | head -
  97. psql --version
  98. echo "Check pgloader version"
  99. pgloader --version
  100. - name: Create database
  101. run: |
  102. pwd
  103. echo GITHUB_WORKSPACE = $GITHUB_WORKSPACE
  104. sudo apt-get install -y mysql-client
  105. mysql --version | head -
  106. mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SELECT VERSION();" | head -
  107. mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "SHOW DATABASES"
  108. echo "Drop and create database"
  109. mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'DROP DATABASE IF EXISTS travis;'
  110. mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE DATABASE IF NOT EXISTS travis CHARACTER SET = 'utf8';"
  111. mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e "CREATE USER 'travis'@'127.0.0.1' IDENTIFIED BY 'password';"
  112. mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'GRANT ALL PRIVILEGES ON travis.* TO travis@127.0.0.1;'
  113. mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -e 'FLUSH PRIVILEGES;'
  114. mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis < dev/initdemo/mysqldump_dolibarr_3.5.0.sql
  115. mysql --host 127.0.0.1 --port 32574 -uroot -ppassword -D travis -e "UPDATE llx_const set value = '0666' WHERE name = 'MAIN_UMASK';"
  116. echo "Init postgresql database"
  117. ps fauxww | grep postgres
  118. ls /etc/postgresql/14/main/
  119. sudo chmod -R a+rwx /etc/postgresql/14/main/pg_hba.conf
  120. sudo sed -i -e '/local.*peer/s/postgres/all/' -e 's/peer\|md5/trust/g' /etc/postgresql/14/main/pg_hba.conf
  121. sudo cat /etc/postgresql/14/main/pg_hba.conf
  122. sudo /etc/init.d/postgresql restart
  123. psql postgresql://postgres:postgres@127.0.0.1:5432 -l -A
  124. psql postgresql://postgres:postgres@127.0.0.1:5432 -c 'create database travis;'
  125. sudo mkdir -p /tmp/pgloader
  126. sudo chmod -R a+rwx /tmp/pgloader/
  127. echo sudo pgloader mysql://root:password@127.0.0.1:32574/travis postgresql://postgres:postgres@127.0.0.1:5432/travis
  128. sudo pgloader mysql://root:password@127.0.0.1:32574/travis postgresql://postgres:postgres@127.0.0.1:5432/travis
  129. echo 'ALTER SEQUENCE llx_accountingaccount_rowid_seq RENAME TO llx_accounting_account_rowid_seq' | psql postgresql://postgres:postgres@127.0.0.1:5432/travis
  130. echo 'ALTER SEQUENCE llx_accounting_account_rowid_seq RESTART WITH 1000001;' | psql postgresql://postgres:postgres@127.0.0.1:5432/travis
  131. # Create pgsql compatibility functions
  132. psql postgresql://postgres:postgres@127.0.0.1:5432/travis < htdocs/install/pgsql/functions/functions.sql
  133. - name: Generate Dolibarr conf file
  134. run: |
  135. export CONF_FILE=$GITHUB_WORKSPACE/htdocs/conf/conf.php
  136. echo "Setting up Dolibarr $CONF_FILE"
  137. echo '<?php' > $CONF_FILE
  138. echo '$'dolibarr_main_url_root=\'http://127.0.0.1\'';' >> $CONF_FILE
  139. echo '$'dolibarr_main_document_root=\'/var/www/html\'';' >> $CONF_FILE
  140. echo '$'dolibarr_main_data_root=\'/var/www/html/documents\'';' >> $CONF_FILE
  141. echo '$'dolibarr_main_db_host=\'127.0.0.1\'';' >> $CONF_FILE
  142. echo '$'dolibarr_main_db_name=\'travis\'';' >> $CONF_FILE
  143. echo '$'dolibarr_main_db_user=\'postgres\'';' >> $CONF_FILE
  144. echo '$'dolibarr_main_db_pass=\'postgres\'';' >> $CONF_FILE
  145. echo '$'dolibarr_main_instance_unique_id=\'travis1234567890\'';' >> $CONF_FILE
  146. echo '$'dolibarr_main_db_type=\'pgsql\'';' >> $CONF_FILE
  147. echo '$'dolibarr_main_db_port=\'5432\'';' >> $CONF_FILE
  148. echo '$'dolibarr_main_authentication=\'dolibarr\'';' >> $CONF_FILE
  149. cat $CONF_FILE
  150. - name: Generate install.forced.php file to test installation
  151. run: |
  152. export INSTALL_FORCED_FILE=$GITHUB_WORKSPACE/htdocs/install/install.forced.php
  153. echo "Setting up Dolibarr $INSTALL_FORCED_FILE to test installation"
  154. # Ensure we catch errors
  155. set +e
  156. echo '<?php' > $INSTALL_FORCED_FILE
  157. echo '$'force_install_noedit=2';' >> $INSTALL_FORCED_FILE
  158. echo '$'force_install_type=\'pgsql\'';' >> $INSTALL_FORCED_FILE
  159. echo '$'force_install_dbserver=\'127.0.0.1\'';' >> $INSTALL_FORCED_FILE
  160. echo '$'force_install_database=\'travis\'';' >> $INSTALL_FORCED_FILE
  161. echo '$'force_install_databaselogin=\'postgres\'';' >> $INSTALL_FORCED_FILE
  162. echo '$'force_install_databasepass=\'postgres\'';' >> $INSTALL_FORCED_FILE
  163. echo '$'force_install_port=\'5432\'';' >> $INSTALL_FORCED_FILE
  164. echo '$'force_install_prefix=\'llx_\'';' >> $INSTALL_FORCED_FILE
  165. echo '$'force_install_createdatabase=false';' >> $INSTALL_FORCED_FILE
  166. echo '$'force_install_createuser=false';' >> $INSTALL_FORCED_FILE
  167. echo '$'force_install_mainforcehttps=false';' >> $INSTALL_FORCED_FILE
  168. echo '$'force_install_main_data_root=\'/var/www/html\'';' >> $INSTALL_FORCED_FILE
  169. cat $INSTALL_FORCED_FILE
  170. - name: Create document directory
  171. run: |
  172. echo "Create documents directory and set permissions"
  173. # and admin/temp subdirectory needed for unit tests
  174. sudo mkdir -p /var/www/html/documents/admin/temp
  175. sudo chmod -R a+rwx /var/www/html/documents
  176. sudo echo "***** First line of dolibarr.log" > /var/www/html/documents/dolibarr.log
  177. sudo chmod a+rwx /var/www/html/documents/dolibarr.log
  178. - name: Copy app into /var/www
  179. run: |
  180. sudo cp -r $GITHUB_WORKSPACE/htdocs/. /var/www/html
  181. sudo mv /var/www/html/index.html /var/www/html/index.disabled.html
  182. sudo ln -fs /var/www/html /var/www/htdocs
  183. sudo cp -r $GITHUB_WORKSPACE/test/. /var/www/test
  184. sudo cp -r $GITHUB_WORKSPACE/dev/. /var/www/dev
  185. sudo cp -r $GITHUB_WORKSPACE/scripts/. /var/www/scripts
  186. - name: Setup Apache
  187. run: |
  188. pwd
  189. whoami
  190. # install apache web server
  191. a2query -s
  192. a2query -m
  193. ls /etc/apache2/sites-available
  194. #sudo cp -f $GITHUB_WORKSPACE/build/travis-ci/apache-githubaction.conf /etc/apache2/sites-available/000-default.conf
  195. #sudo sed -e "s?%GITHUB_WORKSPACE%?$(pwd)?g" --in-place /etc/apache2/sites-available/000-default.conf
  196. a2ensite 000-default
  197. a2enmod php7.1
  198. ls /etc/apache2/sites-enabled
  199. sudo adduser $(whoami) www-data
  200. sudo adduser $(whoami) root
  201. sudo adduser root www-data
  202. sudo chown -R www-data:www-data /etc/apache2/sites-available/
  203. sudo chmod -R 777 /etc/apache2/sites-available/
  204. sudo chown -R www-data:www-data /var/www/html/
  205. ls -l /var/www/html
  206. #ls -l /var/www/html/conf
  207. #ls -l /var/www/html/install/
  208. set +e
  209. sudo cat /etc/apache2/sites-enabled/000-default.conf
  210. sudo service apache2 restart
  211. curl -I localhost
  212. - name: Check Apache availability
  213. run: |
  214. echo "Checking webserver availability by a wget -O - --debug http://127.0.0.1"
  215. # Ensure we stop on error with set -e
  216. set +e
  217. ls /var/log/apache2
  218. #wget -O - --debug http://127.0.0.1/robots.txt
  219. # The wget should return a page with line '<meta name="generator" content="Dolibarr installer">
  220. wget -O - --debug http://127.0.0.1 > $GITHUB_WORKSPACE/test.html 2>&1
  221. head -n 200 $GITHUB_WORKSPACE/test.html
  222. echo Logs are...
  223. #sudo cat /tmp/install.log
  224. sudo cat /var/log/apache2/access.log
  225. sudo cat /var/log/apache2/error.log
  226. sudo cat /var/log/apache2/other_vhosts_access.log
  227. set +e
  228. - name: Upgrading Dolibarr
  229. run: |
  230. # Ensure we catch errors. Set this to +e if you want to go to the end to see log files.
  231. set -e
  232. sudo chmod -R a+rwx $GITHUB_WORKSPACE
  233. sudo chmod -R a+rwx /var/www
  234. ls -l /var/www
  235. cd /var/www/html/install
  236. echo Execute upgrade, upgrade2 and step5 for each major version
  237. php upgrade.php 3.5.0 3.6.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade350360.log
  238. php upgrade2.php 3.5.0 3.6.0 > $GITHUB_WORKSPACE/upgrade350360-2.log
  239. php step5.php 3.5.0 3.6.0 > $GITHUB_WORKSPACE/upgrade350360-3.log
  240. php upgrade.php 3.6.0 3.7.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade360370.log
  241. php upgrade2.php 3.6.0 3.7.0 > $GITHUB_WORKSPACE/upgrade360370-2.log
  242. php step5.php 3.6.0 3.7.0 > $GITHUB_WORKSPACE/upgrade360370-3.log
  243. php upgrade.php 3.7.0 3.8.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade370380.log
  244. php upgrade2.php 3.7.0 3.8.0 > $GITHUB_WORKSPACE/upgrade370380-2.log
  245. php step5.php 3.7.0 3.8.0 > $GITHUB_WORKSPACE/upgrade370380-3.log
  246. php upgrade.php 3.8.0 3.9.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade380390.log
  247. php upgrade2.php 3.8.0 3.9.0 > $GITHUB_WORKSPACE/upgrade380390-2.log
  248. php step5.php 3.8.0 3.9.0 > $GITHUB_WORKSPACE/upgrade380390-3.log
  249. php upgrade.php 3.9.0 4.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade390400.log
  250. php upgrade2.php 3.9.0 4.0.0 > $GITHUB_WORKSPACE/upgrade390400-2.log
  251. php step5.php 3.9.0 4.0.0 > $GITHUB_WORKSPACE/upgrade390400-3.log
  252. php upgrade.php 4.0.0 5.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade400500.log
  253. php upgrade2.php 4.0.0 5.0.0 > $GITHUB_WORKSPACE/upgrade400500-2.log
  254. php step5.php 4.0.0 5.0.0 > $GITHUB_WORKSPACE/upgrade400500-3.log
  255. php upgrade.php 5.0.0 6.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade500600.log
  256. php upgrade2.php 5.0.0 6.0.0 > $GITHUB_WORKSPACE/upgrade500600-2.log
  257. php step5.php 5.0.0 6.0.0 > $GITHUB_WORKSPACE/upgrade500600-3.log
  258. php upgrade.php 6.0.0 7.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade600700.log
  259. php upgrade2.php 6.0.0 7.0.0 > $GITHUB_WORKSPACE/upgrade600700-2.log
  260. php step5.php 6.0.0 7.0.0 > $GITHUB_WORKSPACE/upgrade600700-3.log
  261. echo "\dt llx_c_paiement" | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
  262. echo "\dt llx_c_payment_term" | psql 'postgresql://postgres:postgres@127.0.0.1:5432/travis'
  263. php upgrade.php 7.0.0 8.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade700800.log
  264. php upgrade2.php 7.0.0 8.0.0 > $GITHUB_WORKSPACE/upgrade700800-2.log
  265. php step5.php 7.0.0 8.0.0 > $GITHUB_WORKSPACE/upgrade700800-3.log
  266. php upgrade.php 8.0.0 9.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade800900.log
  267. php upgrade2.php 8.0.0 9.0.0 > $GITHUB_WORKSPACE/upgrade800900-2.log
  268. php step5.php 8.0.0 9.0.0 > $GITHUB_WORKSPACE/upgrade800900-3.log
  269. php upgrade.php 9.0.0 10.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade9001000.log
  270. php upgrade2.php 9.0.0 10.0.0 > $GITHUB_WORKSPACE/upgrade9001000-2.log
  271. php step5.php 9.0.0 10.0.0 > $GITHUB_WORKSPACE/upgrade9001000-3.log
  272. php upgrade.php 10.0.0 11.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade10001100.log
  273. php upgrade2.php 10.0.0 11.0.0 > $GITHUB_WORKSPACE/upgrade10001100-2.log
  274. php step5.php 10.0.0 11.0.0 > $GITHUB_WORKSPACE/upgrade10001100-3.log
  275. php upgrade.php 11.0.0 12.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade11001200.log
  276. php upgrade2.php 11.0.0 12.0.0 > $GITHUB_WORKSPACE/upgrade11001200-2.log
  277. php step5.php 11.0.0 12.0.0 > $GITHUB_WORKSPACE/upgrade11001200-3.log
  278. php upgrade.php 12.0.0 13.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade12001300.log
  279. php upgrade2.php 12.0.0 13.0.0 > $GITHUB_WORKSPACE/upgrade12001300-2.log
  280. php step5.php 12.0.0 13.0.0 > $GITHUB_WORKSPACE/upgrade12001300-3.log
  281. php upgrade.php 13.0.0 14.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade13001400.log
  282. php upgrade2.php 13.0.0 14.0.0 > $GITHUB_WORKSPACE/upgrade13001400-2.log
  283. php step5.php 13.0.0 14.0.0 > $GITHUB_WORKSPACE/upgrade13001400-3.log
  284. php upgrade.php 14.0.0 15.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade14001500.log
  285. php upgrade2.php 14.0.0 15.0.0 > $GITHUB_WORKSPACE/upgrade14001500-2.log
  286. php step5.php 14.0.0 15.0.0 > $GITHUB_WORKSPACE/upgrade14001500-3.log
  287. php upgrade.php 15.0.0 16.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade15001600.log
  288. php upgrade2.php 15.0.0 16.0.0 > $GITHUB_WORKSPACE/upgrade15001600-2.log
  289. php step5.php 15.0.0 16.0.0 > $GITHUB_WORKSPACE/upgrade15001600-3.log
  290. php upgrade.php 16.0.0 17.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade16001700.log
  291. php upgrade2.php 16.0.0 17.0.0 > $GITHUB_WORKSPACE/upgrade16001700-2.log
  292. php step5.php 16.0.0 17.0.0 > $GITHUB_WORKSPACE/upgrade16001700-3.log
  293. php upgrade.php 17.0.0 18.0.0 ignoredbversion > $GITHUB_WORKSPACE/upgrade17001800.log
  294. php upgrade2.php 17.0.0 18.0.0 > $GITHUB_WORKSPACE/upgrade17001800-2.log
  295. php step5.php 17.0.0 18.0.0 > $GITHUB_WORKSPACE/upgrade17001800-3.log
  296. - name: Result of migration scripts
  297. if: always()
  298. run: |
  299. ls -alrt $GITHUB_WORKSPACE/
  300. echo Show content of last file
  301. cat "$(ls -rt $GITHUB_WORKSPACE/ | tail -n1)"
  302. - name: Enabling new modules
  303. run: |
  304. # Enable modules not enabled into original dump
  305. set -e
  306. cd /var/www/html/install
  307. php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_API,MAIN_MODULE_ProductBatch,MAIN_MODULE_SupplierProposal,MAIN_MODULE_STRIPE,MAIN_MODULE_ExpenseReport > $GITHUB_WORKSPACE/enablemodule.log
  308. php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_WEBSITE,MAIN_MODULE_TICKET,MAIN_MODULE_ACCOUNTING,MAIN_MODULE_MRP >> $GITHUB_WORKSPACE/enablemodule.log
  309. php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_RECEPTION,MAIN_MODULE_RECRUITMENT >> $GITHUB_WORKSPACE/enablemodule.log
  310. php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_KnowledgeManagement,MAIN_MODULE_EventOrganization,MAIN_MODULE_PARTNERSHIP >> $GITHUB_WORKSPACE/enablemodule.log
  311. php upgrade2.php 0.0.0 0.0.0 MAIN_MODULE_EmailCollector >> $GITHUB_WORKSPACE/enablemodule.log
  312. echo $?
  313. cd -
  314. - name: Result of enabling modules scripts
  315. if: always()
  316. run: |
  317. echo Show content of enablemodule.log file
  318. cat $GITHUB_WORKSPACE/enablemodule.log
  319. - name: Unit testing
  320. run: |
  321. # Ensure we catch errors. Set this to +e instead of -e if you want to go to the end to see dolibarr.log file.
  322. set -e
  323. cd /var/www/html
  324. sudo chmod -R a+rwx /var/www/html/documents
  325. includes/bin/phpunit -d memory_limit=-1 -c /var/www/test/phpunit/phpunittest.xml /var/www/test/phpunit/AllTests.php
  326. phpunitresult=$?
  327. echo "Phpunit return code = $phpunitresult"
  328. set +e