appveyor.yml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. build: false
  2. shallow_clone: false
  3. platform: 'x86'
  4. clone_folder: c:\projects\cakephp
  5. cache:
  6. - '%LOCALAPPDATA%\Composer'
  7. - '%APPDATA%\Composer'
  8. branches:
  9. only:
  10. - master
  11. - 3.next
  12. environment:
  13. global:
  14. PHP: "C:/PHP"
  15. matrix:
  16. - db: 2012
  17. db_dsn: 'sqlserver://sa:Password12!@.\SQL2012SP1/cakephp?MultipleActiveResultSets=false'
  18. services:
  19. - mssql2012sp1
  20. init:
  21. - SET PATH=C:\php\;%PATH%
  22. install:
  23. - cd c:\
  24. - appveyor DownloadFile http://windows.php.net/downloads/releases/archives/php-5.5.10-nts-Win32-VC11-x86.zip -FileName php.zip
  25. - 7z x php.zip -oc:\php
  26. - appveyor DownloadFile https://dl.dropboxusercontent.com/s/euip490d9183jkr/SQLSRV32.cab -FileName sqlsrv.cab
  27. - 7z x sqlsrv.cab -oc:\php\ext php*_55_nts.dll
  28. - cd c:\php
  29. - copy php.ini-production php.ini
  30. - echo date.timezone="UTC" >> php.ini
  31. - echo extension_dir=ext >> php.ini
  32. - echo extension=php_openssl.dll >> php.ini
  33. - echo extension=php_sqlsrv_55_nts.dll >> php.ini
  34. - echo extension=php_pdo_sqlsrv_55_nts.dll >> php.ini
  35. - echo extension=php_intl.dll >> php.ini
  36. - echo extension=php_mbstring.dll >> php.ini
  37. - echo extension=php_fileinfo.dll >> php.ini
  38. - cd C:\projects\cakephp
  39. - appveyor DownloadFile https://getcomposer.org/composer.phar
  40. - php composer.phar install --prefer-dist --no-interaction --ansi --no-progress
  41. - php -i | grep "ICU version"
  42. before_test:
  43. # This script solves the "Database 'model' is being recovered. Waiting until recovery is finished."
  44. # This solution comes from https://gist.github.com/jonathanhickford/1cb0d6665adab8b9c664
  45. # and is follow by http://help.appveyor.com/discussions/suggestions/264-database-mssqlsystemresource-is-being-recovered-waiting-for-sql-server-to-start
  46. - ps: >-
  47. $tries = 5;
  48. $pause = 10; # Seconds to wait between tries
  49. While ($tries -gt 0) {
  50. try {
  51. $ServerConnectionString = "Data Source=(local)\SQL2012SP1;Initial Catalog=master;User Id=sa;PWD=Password12!";
  52. $ServerConnection = new-object system.data.SqlClient.SqlConnection($ServerConnectionString);
  53. $query = "exec sp_configure 'clr enabled', 1;`n"
  54. $query = $query + "RECONFIGURE;`n"
  55. $cmd = new-object system.data.sqlclient.sqlcommand($query, $ServerConnection);
  56. $ServerConnection.Open();
  57. "Running:"
  58. $query
  59. if ($cmd.ExecuteNonQuery() -ne -1) {
  60. "SQL Error";
  61. } else {
  62. "Success"
  63. }
  64. $ServerConnection.Close();
  65. $tries = 0;
  66. } catch {
  67. "Error:"
  68. $_.Exception.Message
  69. "Retry in $pause seconds. Attempts left: $tries";
  70. Start-Sleep -s $pause;
  71. }
  72. $tries = $tries -1;
  73. }
  74. test_script:
  75. - sqlcmd -S ".\SQL2012SP1" -U sa -P Password12! -Q "create database cakephp;"
  76. - cd C:\projects\cakephp
  77. - vendor\bin\phpunit.bat