|
1 |
| -#---------------------------------# |
2 |
| -# general configuration # |
3 |
| -#---------------------------------# |
| 1 | +version: 3.3.2-{build} |
4 | 2 |
|
5 |
| -# version format |
6 |
| -version: 3.3.1-{build} |
7 |
| - |
8 |
| -# to disable automatic builds |
9 |
| -build: off |
10 |
| - |
11 |
| -#---------------------------------# |
12 |
| -# environment configuration # |
13 |
| -#---------------------------------# |
14 |
| - |
15 |
| -# environment variables |
16 | 3 | environment:
|
17 | 4 | matrix:
|
18 |
| - - PHP_TARGET: 5.6 |
19 |
| - PHP_VC: 11 |
20 |
| - PHP_MAJOR: 5 |
21 |
| - PHP_SDK: c:\projects\php-sdk |
22 |
| - PHP_DEVPACK: c:\projects\php-devpack |
23 |
| - |
24 |
| -# clone entire repository history if not defined |
25 |
| -clone_depth: 1 |
26 |
| - |
27 |
| -# clone directory |
28 |
| -clone_folder: c:\projects\phalcon |
29 |
| - |
30 |
| -# scripts that are called at very beginning, before repo cloning |
31 |
| -init: |
32 |
| - - SET ANSICON=121x90 (121x90) |
33 |
| - - SET COMPOSER_NO_INTERACTION=1 |
34 |
| - - SET PARSER_VERSION=1.1.1 |
35 |
| - - SET PARSER_RELEASE=268 |
36 |
| - |
37 |
| -# build cache to preserve files/folders between builds |
38 |
| -cache: |
39 |
| - - vendor -> composer.json |
40 |
| - - composer.phar -> composer.json |
| 5 | + - PHP_MINOR: 7.0 |
| 6 | + VC_VERSION: 14 |
| 7 | + BUILD_TYPE: Win32 |
| 8 | + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 |
| 9 | + - PHP_MINOR: 7.0 |
| 10 | + VC_VERSION: 14 |
| 11 | + BUILD_TYPE: nts-Win32 |
| 12 | + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 |
| 13 | + - PHP_MINOR: 7.1 |
| 14 | + VC_VERSION: 14 |
| 15 | + BUILD_TYPE: Win32 |
| 16 | + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 |
| 17 | + - PHP_MINOR: 7.1 |
| 18 | + VC_VERSION: 14 |
| 19 | + BUILD_TYPE: nts-Win32 |
| 20 | + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013 |
| 21 | + - PHP_MINOR: 7.2 |
| 22 | + VC_VERSION: 15 |
| 23 | + BUILD_TYPE: Win32 |
| 24 | + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 |
| 25 | + - PHP_MINOR: 7.2 |
| 26 | + VC_VERSION: 15 |
| 27 | + BUILD_TYPE: nts-Win32 |
| 28 | + APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015 |
| 29 | + PHP_PATH: C:\Projects\php |
| 30 | + PHP_SDK_PATH: C:\Projects\php-sdk |
| 31 | + DEVPACK_PATH: C:\Projects\php-devpack |
| 32 | + TEST_PHP_EXECUTABLE: C:\Projects\php\php.exe |
| 33 | + PHP_SDK_VERSION: 2.0.7 |
| 34 | + PACKAGE_PREFIX: phalcon |
| 35 | + EXTENSION_NAME: phalcon |
| 36 | + EXTENSION_FILE: php_phalcon.dll |
| 37 | + NO_INTERACTION: 1 |
| 38 | + REPORT_EXIT_STATUS: 1 |
| 39 | + COMPOSER_NO_INTERACTION: 1 |
| 40 | + PARSER_VERSION: 1.1.2 |
| 41 | + PARSER_RELEASE: 290 |
| 42 | + PHALCON_STABLE_VERSION: 3.3.1 |
41 | 43 |
|
42 | 44 | matrix:
|
43 |
| - # immediately finish build once one of the jobs fails |
44 | 45 | fast_finish: true
|
45 | 46 |
|
46 |
| -# Operating system (build VM template) |
47 |
| -os: Windows Server 2012 R2 |
| 47 | +cache: |
| 48 | + - 'C:\Downloads -> appveyor.yml' |
| 49 | + - 'vendor -> composer.json' |
| 50 | + - 'composer.phar -> composer.json' |
48 | 51 |
|
49 |
| -#---------------------------------# |
50 |
| -# build configuration # |
51 |
| -#---------------------------------# |
| 52 | +clone_depth: 1 |
| 53 | +clone_folder: c:\projects\phalcon |
52 | 54 |
|
53 |
| -# build platform, i.e. x86, x64, AnyCPU |
54 | 55 | platform:
|
55 | 56 | - x86
|
| 57 | + - x64 |
| 58 | + |
| 59 | +branches: |
| 60 | + only: |
| 61 | + - master |
| 62 | + - 4.0.x |
| 63 | + - 3.3.x |
56 | 64 |
|
57 |
| -# scripts that run after cloning repository |
58 | 65 | install:
|
59 |
| - # ================================================== |
60 |
| - - echo Setting PHP version... |
61 |
| - # ================================================== |
62 |
| - - appveyor DownloadFile http://windows.php.net/downloads/releases/sha1sum.txt |
63 |
| - - ps: | |
64 |
| - $versions = type sha1sum.txt | where { $_ -match "php-(${env:PHP_TARGET}\.\d+)-src" } | foreach { $matches[1] } |
65 |
| - $version = $versions.Split(' ')[-1] |
66 |
| - $env:PHP_VERSION=${version} |
67 |
| - - ps: $env:PARSER_DOWNLOAD_URL="https://github.com/phalcon/php-zephir-parser/releases/download/v${env:PARSER_VERSION}/zephir_parser_${env:PLATFORM}_vc${env:PHP_VC}_php${env:PHP_TARGET}_${env:PARSER_VERSION}-${env:PARSER_RELEASE}.zip" |
68 |
| - # ================================================== |
69 |
| - - echo Initializing Build... |
70 |
| - # ================================================== |
71 |
| - - cd %APPVEYOR_BUILD_FOLDER% |
72 | 66 | - git submodule update --init --recursive
|
73 |
| - # ================================================== |
74 |
| - - echo Downloading PHP source code [http://windows.php.net/downloads/releases/php-%PHP_VERSION%-Win32-VC%PHP_VC%-%PLATFORM%.zip] |
75 |
| - # ================================================== |
76 |
| - - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-' + ${env:PHP_VERSION} + '-Win32-VC' + ${env:PHP_VC} + '-' + ${env:PLATFORM} + '.zip', ${env:APPVEYOR_BUILD_FOLDER} + '\..\php.zip') |
77 |
| - - cd .. |
78 |
| - - 'mkdir php && mv php.zip php\php.zip && cd php' |
79 |
| - - 7z.exe x php.zip | FIND /V "ing " |
80 |
| - - cd .. |
81 |
| - - echo Downloading PHP-SDK |
82 |
| - - mkdir php-sdk && cd php-sdk |
83 |
| - - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/php-sdk/php-sdk-binary-tools-20110915.zip', ${env:APPVEYOR_BUILD_FOLDER} + '\..\php-sdk.zip') |
84 |
| - - '7z.exe x ..\php-sdk.zip | FIND /V "ing "' |
85 |
| - - cd .. |
86 |
| - # ================================================== |
87 |
| - - echo Install PHP Dev pack |
88 |
| - # ================================================== |
89 |
| - - ps: >- |
90 |
| - If ($env:PHP_TYPE -Match "nts-Win32") { |
91 |
| - $env:DEVEL_PACK_VERSION="${env:PHP_VERSION}-nts-Win32-VC${env:PHP_VC}-${env:PLATFORM}" |
92 |
| - } Else { |
93 |
| - $env:DEVEL_PACK_VERSION="${env:PHP_VERSION}-Win32-VC${env:PHP_VC}-${env:PLATFORM}" |
94 |
| - } |
95 |
| - # ================================================== |
96 |
| - - echo Downloading PHP Dev pack source code [http://windows.php.net/downloads/releases/php-devel-pack-%DEVEL_PACK_VERSION%.zip] |
97 |
| - # ================================================== |
98 |
| - - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/releases/php-devel-pack-' + ${env:DEVEL_PACK_VERSION} + '.zip', ${env:APPVEYOR_BUILD_FOLDER} + '\..\php-dev.zip') |
99 |
| - - 7z.exe x php-dev.zip | FIND /V "ing " |
100 |
| - - mv php-%PHP_VERSION%-devel-VC11-%PLATFORM% php-devpack |
101 |
| - # ================================================== |
102 |
| - - echo Enable Zephir Parser |
103 |
| - # ================================================== |
104 |
| - - 'cd %APPVEYOR_BUILD_FOLDER%\..\php\ext' |
105 |
| - - curl --location --silent --show-error %PARSER_DOWNLOAD_URL% --output zephir_parser.zip |
106 |
| - - 7z.exe x zephir_parser.zip | FIND /V "ing " |
107 |
| - # ================================================== |
108 |
| - - echo Building PHP [%PHP_VERSION%] |
109 |
| - # ================================================== |
110 |
| - - '%PHP_SDK%\bin\phpsdk_setvars' |
111 |
| - - 'cd %APPVEYOR_BUILD_FOLDER%\..\php' |
112 |
| - - '"%VS110COMNTOOLS%\VsDevCmd" %PLATFORM%' |
113 |
| - - 'echo extension_dir=%APPVEYOR_BUILD_FOLDER%\..\php\ext > php.ini' |
114 |
| - - 'echo extension=php_zephir_parser.dll >> php.ini' |
115 |
| - - 'echo extension=php_curl.dll >> php.ini' |
116 |
| - - 'echo extension=php_openssl.dll >> php.ini' |
117 |
| - - 'echo extension=php_mbstring.dll >> php.ini' |
118 |
| - - 'echo extension=php_pdo_sqlite.dll >> php.ini' |
119 |
| - - 'echo extension=php_fileinfo.dll >> php.ini' |
120 |
| - - 'echo extension=php_gettext.dll >> php.ini' |
121 |
| - - 'echo extension=php_gd2.dll >> php.ini' |
122 |
| - - 'echo extension=c:\php_imagick\php_imagick.dll >> php.ini' |
123 |
| - - 'echo memory_limit=256M >> php.ini' |
124 |
| - - 'set PATH=%cd%;%PATH%;c:\ImageMagick\bin;c:\php_imagick' |
125 |
| - - php --ri "Zephir Parser" |
126 |
| - # ================================================== |
127 |
| - - echo Setting up the php_imagick |
128 |
| - # ================================================== |
129 |
| - - mkdir c:\ImageMagick && cd c:\ImageMagick |
130 |
| - - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/pecl/deps/ImageMagick-6.9.3-7-vc11-x86.zip', 'c:\ImageMagick\ImageMagick.zip') |
131 |
| - - 7z.exe x ImageMagick.zip | FIND /V "ing " |
132 |
| - - mkdir c:\php_imagick && cd c:\php_imagick |
133 |
| - - ps: (new-object net.webclient).DownloadFile('http://windows.php.net/downloads/pecl/releases/imagick/3.4.3rc1/php_imagick-3.4.3rc1-5.6-ts-vc11-x86.zip', 'c:\php_imagick\php_imagick.zip') |
134 |
| - - 7z.exe x php_imagick.zip | FIND /V "ing " |
135 |
| - # ================================================== |
136 |
| - - echo Download tests dependencies... |
137 |
| - # ================================================== |
138 |
| - - cd %APPVEYOR_BUILD_FOLDER% |
139 |
| - - if not exist vendor (php -r "readfile('https://getcomposer.org/installer');" | php && php composer.phar --version) |
140 |
| - - if not exist vendor (php composer.phar update --quiet --no-ansi --no-interaction --no-progress --optimize-autoloader --dev --prefer-dist --no-suggest --ignore-platform-reqs) |
141 |
| - # ================================================== |
142 |
| - - echo Download Zephir |
143 |
| - # ================================================== |
144 |
| - - cd %APPVEYOR_BUILD_FOLDER% |
145 |
| - - 'vendor\bin\zephir help' |
| 67 | + - ps: Import-Module .\tests\_ci\appveyor.psm1 |
| 68 | + - ps: AppendSessionPath |
| 69 | + - ps: SetupPhpVersionString |
| 70 | + - ps: EnsureRequiredDirectoriesPresent |
| 71 | + - ps: Ensure7ZipIsInstalled |
| 72 | + - ps: InstallSdk |
| 73 | + - ps: InstallPhp |
| 74 | + - ps: InstallPhpDevPack |
| 75 | + - ps: InstallStablePhalcon |
| 76 | + - ps: InstallParser |
| 77 | + - ps: TuneUpPhp |
146 | 78 |
|
147 | 79 | build_script:
|
148 |
| - - 'vendor\bin\zephir generate -Wnonexistent-function -Wnonexistent-class -Wunused-variable' |
149 |
| - - 'php build\gen-build.php' |
150 |
| - - 'cd build\php%PHP_MAJOR%\safe' |
151 |
| - - '%PHP_DEVPACK%\\phpize' |
152 |
| - - configure --enable-phalcon |
153 |
| - - nmake |
154 |
| - |
155 |
| -on_finish: |
156 |
| - - cd %APPVEYOR_BUILD_FOLDER% |
157 |
| - - ps: Push-AppveyorArtifact build\php${env:PHP_MAJOR}\safe\Release_TS\php_phalcon.dll |
| 80 | + - ps: InitializeBuildVars |
| 81 | + - ps: InitializeReleaseVars |
| 82 | + - ps: InstallBuildDependencies |
| 83 | + - '"%VSCOMNTOOLS%\VsDevCmd" %PLATFORM%' |
| 84 | + - '"%VSCOMNTOOLS%\..\..\VC\vcvarsall.bat" %ARCH%' |
| 85 | + - '%PHP_SDK_PATH%\bin\phpsdk_setvars' |
| 86 | + - 'vendor\bin\zephir generate --backend=ZendEngine3 -Wnonexistent-function -Wnonexistent-class -Wunused-variable' |
| 87 | + - 'cd %APPVEYOR_BUILD_FOLDER%\build' |
| 88 | + - 'php gen-build.php' |
| 89 | + - 'cd %APPVEYOR_BUILD_FOLDER%\build\php7\safe' |
| 90 | + - '%DEVPACK_PATH%\phpize.bat' |
| 91 | + - 'configure --with-prefix=%PHP_PATH% --with-php-build=%DEVPACK_PATH% --disable-all --enable-phalcon' |
| 92 | + - nmake 2> compile-errors.log 1> compile.log |
| 93 | + - ps: EnableExtension |
| 94 | + |
| 95 | +after_build: |
| 96 | + - ps: PrepareReleasePackage |
| 97 | + |
| 98 | +artifacts: |
| 99 | + - path: '.\$(RELEASE_ZIPBALL).zip' |
| 100 | + type: zip |
| 101 | + name: Phalcon |
158 | 102 |
|
159 | 103 | on_failure :
|
160 |
| - - 'dir' |
161 |
| - - ps: >- |
162 |
| - IF (Test-Path -Path compile-errors.log) { |
163 |
| - type compile-errors.log |
164 |
| - } |
165 |
| -
|
166 |
| - IF (Test-Path -Path compile.log) { |
167 |
| - type compile.log |
168 |
| - } |
169 |
| -
|
170 |
| - IF (Test-Path -Path configure.js) { |
171 |
| - type configure.js |
172 |
| - } |
| 104 | + - ps: PrintLogs "${Env:APPVEYOR_BUILD_FOLDER}\build\php7\safe" |
| 105 | + - ps: PrintVars |
| 106 | + - ps: PrintDirectoriesContent |
| 107 | + - ps: PrintPhpInfo |
| 108 | + |
| 109 | +notifications: |
| 110 | + - provider: Email |
| 111 | + to: |
| 112 | + |
| 113 | + subject: "Build Phalcon [{{status}}]" |
| 114 | + on_build_status_changed: true |
0 commit comments