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