You are here

appveyor.yml in Drupal driver for SQL Server and SQL Azure 4.1.x

File

appveyor.yml
View source
  1. services:
  2. - mssql2016
  3. - iis
  4. image:
  5. - Visual Studio 2017
  6. environment:
  7. matrix:
  8. - TEST_SUITE: core-kernel
  9. - TEST_SUITE: core-kernel-2
  10. - TEST_SUITE: core-extensions-kernel-1
  11. - TEST_SUITE: core-extensions-kernel-2
  12. - TEST_SUITE: core-extensions-kernel-3
  13. - TEST_SUITE: core-extensions-kernel-4
  14. - TEST_SUITE: passing_functional,unit
  15. - TEST_SUITE: passing_functional2
  16. install:
  17. # Set up the Environment
  18. - cmd: mkdir c:\testlogs
  19. - ps: (New-Object Net.WebClient).DownloadFile('https://github.com/Beakerboy/drupal-sqlsrv-regex/releases/download/1.0/RegEx.dll', 'C:\testlogs\RegEx.dll')
  20. # SET UP PHP
  21. - ps: choco install php --version=7.3.12 --package-parameters="/InstallDir:C:\tools\php" -y --no-progress 2>&1 > C:\TestLogs\choco_install_php.txt
  22. - ps: choco install urlrewrite -y --no-progress 2>&1 > C:\testlogs\choco_install_urlrewrite.txt
  23. - ps: |
  24. $cli = New-Object Net.WebClient
  25. $cli.Headers['User-Agent'] = 'Appveyor';
  26. $cli.DownloadFile('https://windows.php.net/downloads/pecl/releases/pdo_sqlsrv/5.8.1/php_pdo_sqlsrv-5.8.1-7.3-nts-vc15-x64.zip', 'C:\testlogs\php_pdo_sqlsrv.zip')
  27. - ps: |
  28. $cli = New-Object Net.WebClient
  29. $cli.Headers['User-Agent'] = 'Appveyor';
  30. $cli.DownloadFile('http://windows.php.net/downloads/pecl/releases/yaml/2.1.0/php_yaml-2.1.0-7.3-nts-vc15-x64.zip', 'C:\testlogs\php_yaml.zip')
  31. - ps: Expand-Archive -Path 'C:\testlogs\php_pdo_sqlsrv.zip' -Destinationpath 'C:\testlogs\php_pdo_sqlsrv'
  32. - cmd: copy C:\testlogs\php_pdo_sqlsrv\php_pdo_sqlsrv.dll C:\tools\php\ext
  33. - ps: Expand-Archive -Path 'C:\testlogs\php_yaml.zip' -Destinationpath 'C:\testlogs\php_yaml'
  34. - cmd: xcopy C:\testlogs\php_yaml\php_yaml.dll C:\tools\php\ext
  35. # Start Windows Update service
  36. - cmd: sc config wuauserv start= auto
  37. - cmd: net start wuauserv
  38. # Add php binary to PATH
  39. - ps: $Env:Path = "C:\tools\php;" + $Env:Path;
  40. # Edit the php.ini file - Should we have a php.ini.dist file somewhere that we just `cat` into the exiting file?
  41. - ps: Add-Content C:\tools\php\php.ini "extension_dir=ext"
  42. - ps: Add-Content C:\tools\php\php.ini "extension=php_pdo_sqlsrv"
  43. - ps: Add-Content C:\tools\php\php.ini "extension=php_openssl"
  44. - ps: Add-Content C:\tools\php\php.ini "extension=php_mbstring"
  45. - ps: Add-Content C:\tools\php\php.ini "extension=php_curl"
  46. - ps: Add-Content C:\tools\php\php.ini "extension=php_yaml"
  47. - ps: Add-Content C:\tools\php\php.ini "extension=php_gd2.dll"
  48. # Install Composer
  49. - ps: new-item c:\composer -itemtype directory
  50. - cmd: cd /d C:\composer
  51. - cmd: choco install composer -y
  52. - ps: refreshenv
  53. - cmd: SET PATH=C:\ProgramData\ComposerSetup\bin;%PATH%
  54. # Download Drupal
  55. - cmd: cd /d C:\inetpub\
  56. - cmd: mv wwwroot wwwroot-old
  57. - cmd: git clone https://git.drupalcode.org/project/drupal.git -b 9.1.x wwwroot
  58. # IIS Config
  59. - cmd: powershell %APPVEYOR_BUILD_FOLDER%\dev\appveyor\iis.ps1
  60. build_script:
  61. # For some reason this cannot go in the install potion of the appveyor config
  62. - cmd: sqlcmd -U sa -P Password12! -Q "CREATE DATABASE mydrupalsite"
  63. - cmd: sqlcmd -d mydrupalsite -U sa -P Password12! -Q "EXEC sp_configure 'show advanced options', 1; RECONFIGURE; EXEC sp_configure 'clr enable', 1; RECONFIGURE"
  64. - cmd: sqlcmd -d mydrupalsite -U sa -P Password12! -Q "CREATE ASSEMBLY Regex from 'C:\testlogs\RegEx.dll' WITH PERMISSION_SET = SAFE"
  65. - cmd: sqlcmd -d mydrupalsite -U sa -P Password12! -Q "CREATE FUNCTION dbo.REGEXP(@pattern NVARCHAR(100), @matchString NVARCHAR(100)) RETURNS bit EXTERNAL NAME Regex.RegExCompiled.RegExCompiledMatch"
  66. # Set up Drupal
  67. - cmd: cd /d C:\inetpub\wwwroot
  68. # Apply any pre-composer patches
  69. - ps: (New-Object Net.WebClient).DownloadFile('https://www.drupal.org/files/issues/2020-07-28/3151118-31.patch', 'C:\inetpub\wwwroot\3151118.patch')
  70. - cmd: git apply 3151118.patch
  71. - cmd: del 3151118.patch
  72. - cmd: set COMPOSER_MEMORY_LIMIT=-1
  73. - cmd: composer install -q
  74. # Add composer installed binaries to PATH
  75. - cmd: SET PATH=C:\inetpub\wwwroot\vendor\bin;%PATH%
  76. # Install other composer packages for production
  77. # Copy in the module
  78. - cmd: xcopy /S /I /E /Y /Q %APPVEYOR_BUILD_FOLDER%\tests\database_statement_monitoring_test .\core\modules\system\tests\modules\database_statement_monitoring_test\src\sqlsrv
  79. - cmd: xcopy /S /I /E /Y /Q %APPVEYOR_BUILD_FOLDER%\dev\TestSuites %APPVEYOR_BUILD_FOLDER%\tests\src\TestSuites
  80. - cmd: xcopy /S /I /E /Y /Q %APPVEYOR_BUILD_FOLDER%\dev\appveyor\CITestSuiteBase.php %APPVEYOR_BUILD_FOLDER%\tests\src\TestSuites
  81. - cmd: xcopy /S /I /E /Y /Q %APPVEYOR_BUILD_FOLDER% %cd%\modules\sqlsrv
  82. - cmd: mkdir C:\inetpub\wwwroot\sites\simpletest
  83. - cmd: mkdir C:\inetpub\wwwroot\sites\simpletest\browser_output
  84. # Should we use recursive instead?
  85. - ps: |
  86. $sharepath = "C:\inetpub\wwwroot\sites"
  87. $Acl = Get-ACL $SharePath
  88. $AccessRule= New-Object System.Security.AccessControl.FileSystemAccessRule("everyone","FullControl","ContainerInherit,Objectinherit","none","Allow")
  89. $Acl.AddAccessRule($AccessRule)
  90. Set-Acl $SharePath $Acl
  91. - ps: |
  92. $sharepath = "C:\inetpub\wwwroot\sites\simpletest\browser_output"
  93. $Acl = Get-ACL $SharePath
  94. $AccessRule= New-Object System.Security.AccessControl.FileSystemAccessRule("everyone","FullControl","ContainerInherit,Objectinherit","none","Allow")
  95. $Acl.AddAccessRule($AccessRule)
  96. Set-Acl $SharePath $Acl
  97. # Core Patches
  98. # Testing Patches
  99. # ConnectionUnitTest defaults to MySQL syntax
  100. - ps: (New-Object Net.WebClient).DownloadFile('http://beakerboy.com/~kevin/connectionUnit.patch', 'C:\inetpub\wwwroot\connectionUnit.patch')
  101. - cmd: git apply connectionUnit.patch
  102. # Enable sqlsrv module for Kernel Tests
  103. - ps: (New-Object Net.WebClient).DownloadFile('https://www.drupal.org/files/issues/2020-05-02/2966272-16.patch', 'C:\inetpub\wwwroot\2966272.patch')
  104. - cmd: git apply 2966272.patch
  105. # Enable sqlsrv in specific Functional Tests
  106. - ps: (New-Object Net.WebClient).DownloadFile('http://beakerboy.com/~kevin/Function-timestamp.patch', 'C:\inetpub\wwwroot\Function-timestamp.patch')
  107. - cmd: git apply Function-timestamp.patch
  108. # Add a sqlsrv-specific data type to the core test
  109. - ps: (New-Object Net.WebClient).DownloadFile('https://www.drupal.org/files/issues/2020-02-05/drupal-3111134-database_specific_types-3.patch', 'C:\inetpub\wwwroot\drupal-3111134-database_specific_types.patch')
  110. - cmd: git apply drupal-3111134-database_specific_types.patch
  111. # CharacterSet does not need to be uppercase
  112. - ps: (New-Object Net.WebClient).DownloadFile('http://beakerboy.com/~kevin/caseInsensitiveCharset.patch', 'C:\inetpub\wwwroot\caseInsensitiveCharset.patch')
  113. - cmd: git apply caseInsensitiveCharset.patch
  114. - cmd: cd %APPVEYOR_BUILD_FOLDER%
  115. - ps: ((Get-Content -path dev\phpunit.xml.dist -Raw) -replace 'WEB_DIR/sites/simpletest/browser_output','C:\inetpub\wwwroot\sites\simpletest\browser_output') | Set-Content -Path dev\phpunit.xml.dist
  116. before_test:
  117. - cmd: cp dev\phpunit.xml.dist C:\inetpub\wwwroot\core\phpunit.xml
  118. - cmd: mkdir .\build\logs
  119. test_script:
  120. - cmd: cd C:\inetpub\wwwroot
  121. - cmd: vendor\bin\phpunit -c core\phpunit.xml --testsuite=%TEST_SUITE%