.appveyor.yml 8.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. version: "{branch}.build.{build}"
  2. skip_tags: true
  3. branches:
  4. only:
  5. - master
  6. - dev
  7. clone_folder: c:\projects\xlswriter
  8. install:
  9. ps: |
  10. if (-not (Test-Path c:\build-cache)) {
  11. mkdir c:\build-cache
  12. }
  13. $bname = 'php-sdk-' + $env:BIN_SDK_VER + '.zip'
  14. if (-not (Test-Path c:\build-cache\$bname)) {
  15. Invoke-WebRequest "https://github.com/OSTC/php-sdk-binary-tools/archive/$bname" -OutFile "c:\build-cache\$bname"
  16. }
  17. $dname0 = 'php-sdk-binary-tools-php-sdk-' + $env:BIN_SDK_VER
  18. $dname1 = 'php-sdk-' + $env:BIN_SDK_VER
  19. if (-not (Test-Path c:\build-cache\$dname1)) {
  20. 7z x c:\build-cache\$bname -oc:\build-cache
  21. move c:\build-cache\$dname0 c:\build-cache\$dname1
  22. }
  23. $lname0 = 'libxlsxwriter-' + $env:LIBXLSXWRITER_VER + '-' + $env:VC + '-' + $env:ARCH + '.zip'
  24. $lname1 = 'libxlsxwriter'
  25. if (-not (Test-Path c:\build-cache\$lname0)) {
  26. # vc14 is fine also for vc15 builds with PHP
  27. $url = "https://windows.php.net/downloads/pecl/deps/" + $lname0
  28. Invoke-WebRequest $url -OutFile "c:\build-cache\$lname0"
  29. }
  30. if (-not (Test-Path c:\build-cache\$lname1)) {
  31. & 7z x c:\build-cache\$lname0 -oc:\build-cache\$lname1
  32. }
  33. cache:
  34. c:\build-cache -> .appveyor.yml
  35. environment:
  36. BIN_SDK_VER: 2.1.2
  37. LIBXLSXWRITER_VER: 0.7.7
  38. matrix:
  39. - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
  40. ARCH: x64
  41. VC: vc14
  42. PHP_VER: 7.0.28
  43. TS: 0
  44. - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
  45. ARCH: x64
  46. VC: vc14
  47. PHP_VER: 7.0.28
  48. TS: 1
  49. - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
  50. ARCH: x86
  51. VC: vc14
  52. PHP_VER: 7.0.28
  53. TS: 0
  54. - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
  55. ARCH: x86
  56. VC: vc14
  57. PHP_VER: 7.0.28
  58. TS: 1
  59. - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
  60. ARCH: x64
  61. VC: vc14
  62. PHP_VER: 7.1.15
  63. TS: 0
  64. - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
  65. ARCH: x64
  66. VC: vc14
  67. PHP_VER: 7.1.15
  68. TS: 1
  69. - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
  70. ARCH: x86
  71. VC: vc14
  72. PHP_VER: 7.1.15
  73. TS: 0
  74. - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
  75. ARCH: x86
  76. VC: vc14
  77. PHP_VER: 7.1.15
  78. TS: 1
  79. - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
  80. ARCH: x64
  81. VC: vc15
  82. PHP_VER: 7.2.3
  83. TS: 0
  84. - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
  85. ARCH: x64
  86. VC: vc15
  87. PHP_VER: 7.2.3
  88. TS: 1
  89. - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
  90. ARCH: x86
  91. VC: vc15
  92. PHP_VER: 7.2.3
  93. TS: 0
  94. - APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2017
  95. ARCH: x86
  96. VC: vc15
  97. PHP_VER: 7.2.3
  98. TS: 1
  99. build_script:
  100. ps: |
  101. $ts_part = ''
  102. if ('0' -eq $env:TS) { $ts_part = '-nts' }
  103. $bname = 'php-devel-pack-' + $env:PHP_VER + $ts_part + '-Win32-' + $env:VC.toUpper() + '-' + $env:ARCH + '.zip'
  104. if (-not (Test-Path c:\build-cache\$bname)) {
  105. Invoke-WebRequest "http://windows.php.net/downloads/releases/archives/$bname" -OutFile "c:\build-cache\$bname"
  106. if (-not (Test-Path c:\build-cache\$bname)) {
  107. Invoke-WebRequest "http://windows.php.net/downloads/releases/$bname" -OutFile "c:\build-cache\$bname"
  108. }
  109. }
  110. $dname0 = 'php-' + $env:PHP_VER + '-devel-' + $env:VC.toUpper() + '-' + $env:ARCH
  111. $dname1 = 'php-' + $env:PHP_VER + $ts_part + '-devel-' + $env:VC.toUpper() + '-' + $env:ARCH
  112. if (-not (Test-Path c:\build-cache\$dname1)) {
  113. 7z x c:\build-cache\$bname -oc:\build-cache
  114. move c:\build-cache\$dname0 c:\build-cache\$dname1
  115. }
  116. cd c:\projects\xlswriter
  117. $env:PATH = 'c:\build-cache\' + $dname1 + ';' + $env:PATH
  118. #echo "@echo off" | Out-File -Encoding "ASCII" task.bat
  119. #echo "" | Out-File -Encoding "ASCII" -Append task.bat
  120. echo "" | Out-File -Encoding "ASCII" task.bat
  121. echo "call phpize 2>&1" | Out-File -Encoding "ASCII" -Append task.bat
  122. $conf_cmd = 'call configure --with-xlswriter 2>&1'
  123. echo $conf_cmd | Out-File -Encoding "ASCII" -Append task.bat
  124. echo "nmake /nologo 2>&1" | Out-File -Encoding "ASCII" -Append task.bat
  125. echo "exit %errorlevel%" | Out-File -Encoding "ASCII" -Append task.bat
  126. $here = (Get-Item -Path "." -Verbose).FullName
  127. $runner = 'c:\build-cache\php-sdk-' + $env:BIN_SDK_VER + '\phpsdk' + '-' + $env:VC + '-' + $env:ARCH + '.bat'
  128. $task = $here + '\task.bat'
  129. & $runner -t $task
  130. after_build:
  131. ps: |
  132. $ts_part = 'ts'
  133. if ('0' -eq $env:TS) { $ts_part = 'nts' }
  134. $zip_bname = 'php_xlswriter-' + $env:APPVEYOR_REPO_COMMIT.substring(0, 8) + '-' + $env:PHP_VER.substring(0, 3) + '-' + $ts_part + '-' + $env:VC + '-' + $env:ARCH + '.zip'
  135. $dir = 'c:\projects\xlswriter\';
  136. if ('x64' -eq $env:ARCH) { $dir = $dir + 'x64\' }
  137. $dir = $dir + 'Release'
  138. if ('1' -eq $env:TS) { $dir = $dir + '_TS' }
  139. & 7z a c:\$zip_bname $dir\php_xlswriter.dll c:\projects\xlswriter\LICENSE
  140. Push-AppveyorArtifact c:\$zip_bname
  141. test_script:
  142. ps: |
  143. $ts_part = ''
  144. if ('0' -eq $env:TS) { $ts_part = '-nts' }
  145. $bname = 'php-' + $env:PHP_VER + $ts_part + '-Win32-' + $env:VC.toUpper() + '-' + $env:ARCH + '.zip'
  146. if (-not (Test-Path c:\build-cache\$bname)) {
  147. Invoke-WebRequest "http://windows.php.net/downloads/releases/archives/$bname" -OutFile "c:\build-cache\$bname"
  148. if (-not (Test-Path c:\build-cache\$bname)) {
  149. Invoke-WebRequest "http://windows.php.net/downloads/releases/$bname" -OutFile "c:\build-cache\$bname"
  150. }
  151. }
  152. $dname = 'php-' + $env:PHP_VER + $ts_part + '-' + $env:VC.toUpper() + '-' + $env:ARCH
  153. if (-not (Test-Path c:\build-cache\$dname)) {
  154. 7z x c:\build-cache\$bname -oc:\build-cache\$dname
  155. }
  156. cd c:\projects\xlswriter
  157. echo "" | Out-File -Encoding "ASCII" task.bat
  158. echo "set REPORT_EXIT_STATUS=1" | Out-File -Encoding "ASCII" -Append task.bat
  159. $cmd = 'call configure --with-xlswriter --with-prefix=c:\build-cache\' + $dname + ' 2>&1'
  160. echo $cmd | Out-File -Encoding "ASCII" -Append task.bat
  161. echo 'nmake /nologo test TESTS="-q --show-diff --set-timeout 120" 2>&1' | Out-File -Encoding "ASCII" -Append task.bat
  162. echo "exit %errorlevel%" | Out-File -Encoding "ASCII" -Append task.bat
  163. $here = (Get-Item -Path "." -Verbose).FullName
  164. $runner = 'c:\build-cache\php-sdk-' + $env:BIN_SDK_VER + '\phpsdk' + '-' + $env:VC + '-' + $env:ARCH + '.bat'
  165. $task = $here + '\task.bat'
  166. & $runner -t $task