appveyor.yml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. build: false
  2. platform: 'x64'
  3. clone_folder: c:\projects\cakephp
  4. cache:
  5. - '%LOCALAPPDATA%\Composer\files -> composer.lock'
  6. - composer.phar
  7. - C:\ProgramData\chocolatey\bin -> .appveyor.yml
  8. - C:\ProgramData\chocolatey\lib -> .appveyor.yml
  9. - C:\php -> .appveyor.yml
  10. branches:
  11. only:
  12. - master
  13. - 3.next
  14. - 4.x
  15. environment:
  16. global:
  17. PHP: "C:/PHP"
  18. php_ver_target: 7.2
  19. matrix:
  20. - db: 2012
  21. db_dsn: 'sqlserver://sa:Password12!@.\SQL2012SP1/cakephp?MultipleActiveResultSets=false'
  22. services:
  23. - mssql2012sp1
  24. init:
  25. - SET PATH=C:\Program Files\OpenSSL;C:\php;%PATH%
  26. - SET COMPOSER_NO_INTERACTION=1
  27. - SET PHP=1 # This var is connected to PHP install cache
  28. - SET ANSICON=121x90 (121x90)
  29. install:
  30. - IF EXIST C:\php (SET PHP=0)
  31. - ps: appveyor-retry cinst --params '""/InstallDir:C:\php""' --ignore-checksums -y php --version ((choco search php --exact --all-versions -r | select-string -pattern $env:php_ver_target | sort { [version]($_ -split '\|' | select -last 1) } -Descending | Select-Object -first 1) -replace '[php|]','')
  32. - cd C:\php
  33. - IF %PHP%==1 copy php.ini-production php.ini /Y
  34. - IF %PHP%==1 echo date.timezone="UTC" >> php.ini
  35. - IF %PHP%==1 echo extension_dir=ext >> php.ini
  36. - IF %PHP%==1 echo extension=php_openssl.dll >> php.ini
  37. - IF %PHP%==1 echo extension=php_mbstring.dll >> php.ini
  38. - IF %PHP%==1 echo extension=php_intl.dll >> php.ini
  39. - IF %PHP%==1 echo extension=php_fileinfo.dll >> php.ini
  40. - IF %PHP%==1 curl -fsS https://windows.php.net/downloads/pecl/releases/pdo_sqlsrv/5.2.0/php_pdo_sqlsrv-5.2.0-7.2-nts-vc15-x64.zip -o pdosqlsrv.zip
  41. - IF %PHP%==1 7z x pdosqlsrv.zip -oC:\php\ext php_pdo_sqlsrv.dll > nul
  42. - IF %PHP%==1 curl -fsS https://windows.php.net/downloads/pecl/releases/sqlsrv/5.2.0/php_sqlsrv-5.2.0-7.2-nts-vc15-x64.zip -o sqlsrv.zip
  43. - IF %PHP%==1 7z x sqlsrv.zip -oC:\php\ext php_sqlsrv.dll > nul
  44. - IF %PHP%==1 echo extension=php_pdo_sqlsrv.dll >> php.ini
  45. - IF %PHP%==1 echo extension=php_sqlsrv.dll >> php.ini
  46. - IF %PHP%==1 curl -fsS https://windows.php.net/downloads/pecl/releases/wincache/2.0.0.8/php_wincache-2.0.0.8-7.2-nts-vc15-x64.zip -o wincache.zip
  47. - IF %PHP%==1 7z x wincache.zip -oC:\php\ext php_wincache.dll > nul
  48. - IF %PHP%==1 echo extension=php_wincache.dll >> php.ini
  49. - IF %PHP%==1 echo wincache.enablecli = 1 >> php.ini
  50. - IF %PHP%==1 echo @php %%~dp0composer.phar %%* > composer.bat
  51. - appveyor-retry appveyor DownloadFile https://getcomposer.org/composer.phar
  52. - cd C:\projects\cakephp
  53. - appveyor-retry composer install --no-progress
  54. - php -i | grep "ICU version"
  55. before_test:
  56. # This script solves the "Database 'model' is being recovered. Waiting until recovery is finished."
  57. # This solution comes from https://gist.github.com/jonathanhickford/1cb0d6665adab8b9c664
  58. # and is follow by http://help.appveyor.com/discussions/suggestions/264-database-mssqlsystemresource-is-being-recovered-waiting-for-sql-server-to-start
  59. - ps: >-
  60. $tries = 5;
  61. $pause = 10; # Seconds to wait between tries
  62. While ($tries -gt 0) {
  63. try {
  64. $ServerConnectionString = "Data Source=(local)\SQL2012SP1;Initial Catalog=master;User Id=sa;PWD=Password12!";
  65. $ServerConnection = new-object system.data.SqlClient.SqlConnection($ServerConnectionString);
  66. $query = "exec sp_configure 'clr enabled', 1;`n"
  67. $query = $query + "RECONFIGURE;`n"
  68. $cmd = new-object system.data.sqlclient.sqlcommand($query, $ServerConnection);
  69. $ServerConnection.Open();
  70. "Running:"
  71. $query
  72. if ($cmd.ExecuteNonQuery() -ne -1) {
  73. "SQL Error";
  74. } else {
  75. "Success"
  76. }
  77. $ServerConnection.Close();
  78. $tries = 0;
  79. } catch {
  80. "Error:"
  81. $_.Exception.Message
  82. "Retry in $pause seconds. Attempts left: $tries";
  83. Start-Sleep -s $pause;
  84. }
  85. $tries = $tries -1;
  86. }
  87. test_script:
  88. - sqlcmd -S ".\SQL2012SP1" -U sa -P Password12! -Q "create database cakephp;"
  89. - cd C:\projects\cakephp
  90. - vendor\bin\phpunit.bat