Skip to content

Add php-8.4

Add php-8.4 #24

Workflow file for this run

name: Win32Service build
on:
push:
branches: [ v1.0.x ]
tags:
- v1.**
pull_request:
branches: [ v1.0.x ]
jobs:
build:
name: Build
runs-on: windows-latest
defaults:
run:
shell: cmd
outputs:
repo_tag_name: ${{ steps.install.outputs.repo_tag_name }}
strategy:
fail-fast: false
matrix:
php-rel: ['8.0', '8.1', '8.2', '8.3', '8.4']
platform: [x64, x86]
ts: [ts, nts]
steps:
- name: Checkout Repository
uses: actions/checkout@v4
- name: Extract Version
shell: powershell
run: |
chcp 65001
$r = Select-String -Path php_win32service.h -Pattern 'PHP_WIN32SERVICE_VERSION\s+"(.*)"'
$s = $r.Matches[0].Groups[1]
$extension_version = 'EXTENSION_VERSION=' + $s
echo $extension_version >> $env:GITHUB_ENV
echo $extension_version
- name: Setup PHP
id: setup-php
uses: php/setup-php-sdk@v0.10
with:
version: ${{matrix.php-rel}}
arch: ${{matrix.platform}}
ts: ${{matrix.ts}}
- name: Enable Developer Command Prompt
uses: ilammy/msvc-dev-cmd@v1
with:
arch: ${{matrix.platform}}
toolset: ${{steps.setup-php.outputs.toolset}}
- name: Generate Build Files
run: phpize
- name: Configure Build
run: configure --enable-win32service --with-prefix=${{steps.setup-php.outputs.prefix}}
- name: Build
run: nmake
- name: Define Module Env
shell: powershell
run: |
chcp 65001
$dir = (Get-Location).Path + '\'
if ('x64' -eq '${{matrix.platform}}') { $dir = $dir + 'x64\' }
$dir = $dir + 'Release'
if ('ts' -eq '${{matrix.ts}}') { $dir = $dir + '_TS' }
("[php] `nextension=$dir\php_win32service.dll") | Set-Content $env:SystemRoot\php.ini
$artifact_name = 'php_win32service-${{env.EXTENSION_VERSION}}-${{matrix.php-rel}}'
if ('ts' -eq '${{matrix.ts}}') { $artifact_name = $artifact_name + '-ts' }
if ('nts' -eq '${{matrix.ts}}') { $artifact_name = $artifact_name + '-nts' }
if ('8.0' -eq '${{matrix.php-rel}}') { $artifact_name = $artifact_name + '-vs16' }
if ('8.1' -eq '${{matrix.php-rel}}') { $artifact_name = $artifact_name + '-vs16' }
if ('8.2' -eq '${{matrix.php-rel}}') { $artifact_name = $artifact_name + '-vs16' }
if ('8.3' -eq '${{matrix.php-rel}}') { $artifact_name = $artifact_name + '-vs16' }
if ('x64' -eq '${{matrix.platform}}') { $artifact_name = $artifact_name + '-x64' }
if ('x86' -eq '${{matrix.platform}}') { $artifact_name = $artifact_name + '-x86' }
$extension_artifact_name = "ARTIFACT_NAME=" + $artifact_name
echo $extension_artifact_name >> $env:GITHUB_ENV
$from = $dir + '\php_win32service.dll'
$to = $from + ".zip"
Compress-Archive $from $to
$extension_artifact = "ARTIFACT=" + $from
echo $extension_artifact >> $env:GITHUB_ENV
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{env.ARTIFACT_NAME}}
path: ${{env.ARTIFACT}}
- name: test
shell: powershell
run: |
chcp 65001
sc delete WindowsServicePhpTest
sc delete WindowsServicePhpTestRun
mkdir c:\tests_tmp
$env:TEST_PHP_JUNIT = "c:\junit.out.xml"
nmake test TESTS="-c null -q --offline --show-diff --show-slow 1000 --set-timeout 120 -g FAIL,XFAIL,BORK,WARN,LEAK,SKIP --temp-source c:\tests_tmp --temp-target c:\tests_tmp"
- name: Publish Binaries to Release
if: ${{ startsWith(github.ref, 'refs/tags') }}
uses: svenstaro/upload-release-action@v2
with:
asset_name: ${{env.ARTIFACT_NAME}}.zip
file: ${{env.ARTIFACT}}.zip