Add support for PHP build cache from shivammathur/php-builder-windows

This commit is contained in:
Shivam Mathur 2022-01-26 16:41:29 +05:30
parent a0a791cada
commit 8109be4850
No known key found for this signature in database
GPG Key ID: 3E13E4C8591ACC2A

View File

@ -186,6 +186,20 @@ Function Add-PhpConfig {
Get-Content -Path $ini_files | Add-Content -Path $php_dir\php.ini Get-Content -Path $ini_files | Add-Content -Path $php_dir\php.ini
} }
# Function to get PHP from GitHub releases cache
Function Set-PhpCache {
try {
$release = Invoke-RestMethod https://api.github.com/repos/shivammathur/php-builder-windows/releases/tags/php$version
$asset = $release.assets | ForEach-Object {
if($_.name -match "php-$version.[0-9]+$env:PHPTS-Win32-.*-$arch.zip") {
return $_.name
}
}
Invoke-WebRequest -UseBasicParsing -Uri $php_builder/releases/download/php$version/$asset -OutFile $php_dir\$asset
Set-PhpDownloadCache -Path $php_dir CurrentUser
} catch { }
}
# Variables # Variables
$tick = ([char]8730) $tick = ([char]8730)
$cross = ([char]10007) $cross = ([char]10007)
@ -208,7 +222,9 @@ if(-not([Environment]::Is64BitOperatingSystem) -or $version -lt '7.0') {
$ts = $env:PHPTS -eq 'ts' $ts = $env:PHPTS -eq 'ts'
if($env:PHPTS -ne 'ts') { if($env:PHPTS -ne 'ts') {
$env:PHPTS = 'nts' $env:PHPTS = '-nts'
} else {
$env:PHPTS = ''
} }
if($env:RUNNER -eq 'self-hosted' -or (-not($env:ImageOS) -and -not($env:ImageVersion))) { if($env:RUNNER -eq 'self-hosted' -or (-not($env:ImageOS) -and -not($env:ImageVersion))) {
$bin_dir = 'C:\tools\bin' $bin_dir = 'C:\tools\bin'
@ -270,6 +286,7 @@ if ($null -eq $installed -or -not("$($installed.Version).".StartsWith(($version
$extra_version = " ($( Get-Content $php_dir\COMMIT ))" $extra_version = " ($( Get-Content $php_dir\COMMIT ))"
} }
} else { } else {
Set-PhpCache
Install-Php -Version $version -Architecture $arch -ThreadSafe $ts -InstallVC -Path $php_dir -TimeZone UTC -InitialPhpIni production -Force > $null 2>&1 Install-Php -Version $version -Architecture $arch -ThreadSafe $ts -InstallVC -Path $php_dir -TimeZone UTC -InitialPhpIni production -Force > $null 2>&1
} }
Add-PhpConfig Add-PhpConfig