diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index db8654b..786902e 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -75,3 +75,36 @@ jobs: - name: Run PHPUnit tests run: composer test + + windows: + name: Windows - PHP ${{ matrix.php-version }} ${{ matrix.ts }} ${{ matrix.arch }} + needs: get-windows-matrix + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: ${{ fromJson(needs.get-windows-matrix.outputs.matrix) }} + steps: + - name: Checkout + uses: actions/checkout@v5 + + - name: Build the extension + uses: php/php-windows-builder/extension@v1 + with: + php-version: ${{ matrix.php-version }} + arch: ${{ matrix.arch }} + ts: ${{ matrix.ts }} + args: --enable-ds + + get-windows-matrix: + runs-on: ubuntu-latest + outputs: + matrix: ${{ steps.extension-matrix.outputs.matrix }} + steps: + - name: Checkout + uses: actions/checkout@v5 + + - name: Get the extension matrix + id: extension-matrix + uses: php/php-windows-builder/extension-matrix@v1 + with: + php-version-list: '8.2, 8.3, 8.4, 8.5' diff --git a/README.md b/README.md index d5805b8..0856f6e 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,6 @@ # Native Data Structures for PHP [![Build Status](https://github.com/php-ds/ext-ds/workflows/CI/badge.svg)](https://github.com/php-ds/ext-ds/actions?query=workflow%3A%22CI%22+branch%3Amaster) -[![Build status](https://ci.appveyor.com/api/projects/status/9w0xitp3q04hdu1d?svg=true)](https://ci.appveyor.com/project/rtheunissen/ext-ds) [![PECL](https://img.shields.io/badge/PECL-2.0.0-blue.svg)](https://pecl.php.net/package/ds) A PHP language extension that provides specialized data structures as efficient alternatives to the PHP array. diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index 7376c8a..0000000 --- a/appveyor.yml +++ /dev/null @@ -1,101 +0,0 @@ -version: '{branch}.{build}' - -branches: - only: - - master - -image: Visual Studio 2017 - -clone_folder: c:\projects\php-ds - -environment: - PHP_SDK_BINARY_TOOLS_VER: php-sdk-2.1.1 - - matrix: - - ARCH: x86 - INT_SIZE: 32 - PHP_VER: 8.5 - VC_VER: vc15 - ZTS: --enable-zts - - ARCH: x64 - INT_SIZE: 64 - PHP_VER: 8.5 - VC_VER: vc15 - ZTS: --enable-zts - - ARCH: x86 - INT_SIZE: 32 - PHP_VER: 8.5 - VC_VER: vc15 - ZTS: --disable-zts - - ARCH: x64 - INT_SIZE: 64 - PHP_VER: 8.5 - VC_VER: vc15 - ZTS: --disable-zts - -install: -- cmd: choco feature enable -n=allowGlobalConfirmation -- cmd: cinst wget -- cmd: mkdir C:\projects\php-ds\bin -- cmd: cd C:\projects\php-ds\bin && appveyor DownloadFile https://getcomposer.org/composer.phar - -build_script: -- cmd: >- - "C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Auxiliary\Build\vcvarsall.bat" %ARCH% - - wget https://github.com/OSTC/php-sdk-binary-tools/archive/%PHP_SDK_BINARY_TOOLS_VER%.zip --no-check-certificate -q -O php-sdk-binary-tools-%PHP_SDK_BINARY_TOOLS_VER%.zip - - 7z x -y php-sdk-binary-tools-%PHP_SDK_BINARY_TOOLS_VER%.zip -oC:\projects - - move C:\projects\php-sdk-binary-tools-%PHP_SDK_BINARY_TOOLS_VER% C:\projects\php-sdk - - C:\projects\php-sdk\bin\phpsdk_setvars.bat - - git clone https://github.com/php/php-src C:\projects\php-src -b PHP-%PHP_VER% --depth=1 - - mkdir C:\projects\php-src\ext\ds - - xcopy C:\projects\php-ds C:\projects\php-src\ext\ds /s /e /y /q - - phpsdk_deps -u -t %VC_VER% -b %PHP_VER% -a %ARCH% -f -d C:\projects\php-src\deps - - cd C:\projects\php-src - - buildconf.bat - - cscript /nologo configure.js --disable-all --enable-cli --enable-cgi %ZTS% --with-openssl --enable-ds=shared --enable-phar --with-prefix=C:\projects\php-ds\bin --with-php-build=deps --with-config-file-scan-dir=C:\projects\php-ds\bin\modules.d --enable-bcmath --enable-calendar --enable-ctype --enable-filter --enable-hash --with-mhash --with-iconv --enable-json --enable-mbstring --with-readline --enable-session --enable-soap=shared --enable-tokenizer --enable-zip --enable-zlib --with-libxml --with-dom --with-simplexml --with-xml --with-wddx --enable-xmlreader --enable-xmlwriter - - nmake - - nmake install - - copy php.ini-development C:\projects\php-ds\bin\php.ini - - mkdir C:\projects\php-ds\bin\modules.d - - echo extension=php_ds.dll >> C:\projects\php-ds\bin\modules.d\php.ini - - echo extension=php_openssl.dll >> C:\projects\php-ds\bin\modules.d\php.ini - - echo extension=php_soap.dll >> C:\projects\php-ds\bin\modules.d\php.ini - - cd C:\projects\php-ds\bin - - set TEST_PHP_EXECUTABLE=%cd%\php.exe - - php -v - - php -m - -test_script: -- cmd: cd C:\projects\php-ds -- cmd: C:\projects\php-ds\bin\php.exe C:\projects\php-ds\bin\composer.phar update --prefer-source -- cmd: C:\projects\php-ds\bin\php.exe test.php > test.txt -- cmd: type test.txt -- cmd: cd C:\projects\php-ds\bin -- cmd: php.exe /projects/php-src/run-tests.php /projects/php-src/ext/ds -q --show-diff - -artifacts: - - path: bin - name: master - type: zip diff --git a/config.w32 b/config.w32 index da4c54a..081cd7c 100644 --- a/config.w32 +++ b/config.w32 @@ -26,66 +26,49 @@ if (PHP_DS != "no") { ds_src("/ds", [ - "ds_deque.c", - "ds_vector.c", + "ds_heap.c", "ds_htable.c", - "ds_set.c", "ds_map.c", - "ds_stack.c", - "ds_priority_queue.c", - "ds_queue.c", + "ds_seq.c", + "ds_set.c", ]); ds_src("/php/objects", [ - "php_deque.c", - "php_vector.c", + "php_heap.c", "php_map.c", "php_pair.c", - "php_priority_queue.c", + "php_seq.c", "php_set.c", - "php_stack.c", - "php_queue.c", ]); ds_src("/php/iterators", [ - "php_vector_iterator.c", - "php_deque_iterator.c", - "php_set_iterator.c", - "php_map_iterator.c", - "php_stack_iterator.c", + "php_heap_iterator.c", "php_htable_iterator.c", - "php_priority_queue_iterator.c", - "php_queue_iterator.c", + "php_map_iterator.c", + "php_seq_iterator.c", + "php_set_iterator.c", ]); ds_src("/php/handlers", [ "php_common_handlers.c", - "php_vector_handlers.c", - "php_deque_handlers.c", - "php_set_handlers.c", + "php_heap_handlers.c", "php_map_handlers.c", - "php_stack_handlers.c", "php_pair_handlers.c", - "php_priority_queue_handlers.c", - "php_queue_handlers.c", + "php_seq_handlers.c", + "php_set_handlers.c", ]); ds_src("/php/classes", [ - "php_hashable_ce.c", - "php_collection_ce.c", - "php_sequence_ce.c", - "php_vector_ce.c", - "php_deque_ce.c", - "php_set_ce.c", + "php_heap_ce.c", + "php_key_ce.c", "php_map_ce.c", - "php_stack_ce.c", "php_pair_ce.c", - "php_priority_queue_ce.c", - "php_queue_ce.c", + "php_seq_ce.c", + "php_set_ce.c", ]); ADD_EXTENSION_DEP('ds', 'spl');