Compare commits

...

8 Commits

Author SHA1 Message Date
d7eb9ade23 Update SECURITY.md 2021-09-11 04:42:32 +05:30
938988b211 Bump version to 1.11.4
Update Node.js dependencies

Fix build error in install.ts

Add config to generate types

Add bugs, directories, files and types entries in package.json
2021-09-11 04:41:35 +05:30
e030852d0e Use PhpManager for all PHP versions on v1 2021-09-09 02:53:01 +05:30
3aa870b0fe Fix unsupported PHP versions warning on v1 2021-09-09 02:49:04 +05:30
1229133602 Use shivammathur/extensions tap to install vips on macOS 2021-09-09 02:40:49 +05:30
b1b8d8367c Run New-Item with -Force in Win32.ps1 2021-09-09 02:34:37 +05:30
60ff55130a Update sponsors info 2021-09-09 02:30:03 +05:30
e5690a9659 Add windows-2022 to the README 2021-09-09 02:27:14 +05:30
11 changed files with 808 additions and 777 deletions

6
.github/FUNDING.yml vendored
View File

@ -1,7 +1,3 @@
# These are supported funding model platforms
open_collective: setup-php
tidelift: "npm/setup-php"
community_bridge: setup-php
patreon: shivammathur
custom: https://www.paypal.me/shivammathur
github:shivammathur

3
.github/SECURITY.md vendored
View File

@ -7,7 +7,7 @@ The following versions of this project are supported for security updates.
| Version | Supported |
| ------- | ------------------ |
| 1.11.x | :white_check_mark: |
| 2.11.x | :white_check_mark: |
| 2.14.x | :white_check_mark: |
## Supported PHP Versions
@ -18,6 +18,7 @@ This security policy only applies to the latest patches of the following PHP ver
| 7.3 | :white_check_mark: |
| 7.4 | :white_check_mark: |
| 8.0 | :white_check_mark: |
| 8.1 | :white_check_mark: |
## Reporting a Vulnerability

View File

@ -61,6 +61,7 @@ Setup PHP with required extensions, php.ini configuration, code-coverage support
|Ubuntu 18.04|`ubuntu-18.04`|`PHP 7.1` to `PHP 8.0`|
|Ubuntu 20.04|`ubuntu-latest` or `ubuntu-20.04`|`PHP 7.4` to `PHP 8.0`|
|Windows Server 2019|`windows-latest` or `windows-2019`|`PHP 8.0`|
|Windows Server 2022|`windows-2022`|`PHP 8.0`|
|macOS 10.15 Catalina|`macos-latest` or `macos-10.15`|`PHP 8.0`|
|macOS 11.x Big Sur|`macos-11`|`PHP 8.0`|
@ -415,14 +416,9 @@ Contributions are welcome! See [Contributor's Guide](.github/CONTRIBUTING.md "sh
## :sparkling_heart: Support This Project
- If setup-php saved your developer time, please consider sponsoring setup-php:
- [Open Collective](https://opencollective.com/setup-php "setup-php Open Collective")
- [Paypal](https://www.paypal.me/shivammathur "Shivam Mathur PayPal")
- [Patreon](https://www.patreon.com/shivammathur "Shivam Mathur Patreon")
- Please [reach out](mailto:contact@setup-php.com) if you have any questions regarding sponsoring setup-php.
- Please star the project and share it. If you blog, please share your experience of using this action.
- This project is provided as Free and Open-Source software. We need funds to maintain and do future improvements. Please sponsor setup-php using [GitHub sponsors](https://github.com/sponsors/shivammathur).
*Huge thanks to the following companies for supporting `setup-php`*
### Corporate Sponsors
<p>
<a href="https://www.jetbrains.com/?from=setup-php">
@ -442,6 +438,14 @@ Contributions are welcome! See [Contributor's Guide](.github/CONTRIBUTING.md "sh
</a>
</p>
### Individual Sponsors
<p align="center">
<a href="https://github.com/sponsors/shivammathur">
<img src="https://setup-php.com/sponsors/?" alt="Sponsors of setup-php and related projects" width="100%">
</a>
</p>
## :bookmark: Dependencies
- [Node.js dependencies](https://github.com/shivammathur/setup-php/network/dependencies "Node.js dependencies")

View File

@ -73,7 +73,7 @@ describe('Extension tests', () => {
it('checking addExtensionOnDarwin', async () => {
let darwin: string = await extensions.addExtension(
'Xdebug, pcov, grpc, igbinary, imagick, phalcon3, phalcon4, protobuf, psr, rdkafka, swoole, sqlite, ast-beta',
'Xdebug, pcov, grpc, igbinary, imagick, phalcon3, phalcon4, protobuf, psr, rdkafka, swoole, vips, sqlite, ast-beta',
'7.2',
'darwin'
);
@ -88,6 +88,7 @@ describe('Extension tests', () => {
expect(darwin).toContain('add_brew_extension psr');
expect(darwin).toContain('add_brew_extension rdkafka');
expect(darwin).toContain('add_brew_extension swoole');
expect(darwin).toContain('add_brew_extension vips');
expect(darwin).toContain('pecl_install sqlite3');
expect(darwin).toContain('add_unstable_extension ast beta extension');

11
dist/index.js vendored
View File

@ -233,6 +233,7 @@ async function addExtensionDarwin(extension_csv, version) {
case /(5\.6|7\.[0-4]|8.0)(amqp|grpc|igbinary|imagick|imap|mongodb|msgpack|^(pecl_)?http$|propro|protobuf|psr|raphf|rdkafka|redis|swoole|xdebug|xdebug2|yaml|zmq)/.test(version_extension):
case /(7\.[1-4]|8\.0])pcov/.test(version_extension):
case /^(5\.6|7\.[0-3])phalcon3$|^7\.[2-4]phalcon4$/.test(version_extension):
case /(7\.[0-4]|8\.0])vips/.test(version_extension):
command = 'add_brew_extension ' + extension_name.replace('pecl_', '');
break;
case /^sqlite$/.test(extension):
@ -444,8 +445,8 @@ async function run() {
}
core.warning('setup-php v1 is deprecated.\nPlease upgrade to v2 - https://setup-php.com/w/Switch-to-v2');
const version = await utils.parseVersion(await utils.getInput('php-version', true));
if (version == '8.1') {
core.setFailed('PHP 8.1 is not supported on setup-php v1.\nPlease upgrade to v2 - https://setup-php.com/w/Switch-to-v2');
if (parseFloat(version) < 5.6 || parseFloat(version) > 8.0) {
core.setFailed(`setup-php v1 supports only PHP 5.6 to 8.0.\nPlease upgrade to v2 - https://setup-php.com/w/Switch-to-v2`);
return;
}
if (version) {
@ -455,11 +456,11 @@ async function run() {
case 'darwin':
case 'linux':
script_path = await build(os_version + '.sh', version, os_version);
await exec_1.exec('bash ' + script_path + ' ' + version + ' ' + __dirname);
await (0, exec_1.exec)('bash ' + script_path + ' ' + version + ' ' + __dirname);
break;
case 'win32':
script_path = await build('win32.ps1', version, os_version);
await exec_1.exec('pwsh ' + script_path + ' ' + version + ' ' + __dirname);
await (0, exec_1.exec)('pwsh ' + script_path + ' ' + version + ' ' + __dirname);
break;
}
}
@ -468,7 +469,7 @@ async function run() {
}
}
catch (error) {
core.setFailed(error.message);
core.setFailed(error);
}
}
exports.run = run;

1477
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,14 +1,24 @@
{
"name": "setup-php",
"version": "1.11.3",
"version": "1.11.4",
"private": false,
"description": "Setup PHP for use with GitHub Actions",
"main": "lib/install.js",
"types": "lib/install.d.ts",
"directories": {
"lib": "lib",
"test": "__tests__",
"src": "src"
},
"files": [
"lib",
"src"
],
"scripts": {
"build": "tsc",
"lint": "eslint **/*.ts --cache --fix",
"format": "prettier --write **/*.ts && git add .",
"format-check": "prettier --check **/*.ts",
"lint": "eslint **/src/*.ts --cache --fix",
"format": "prettier --write **/src/*.ts && git add .",
"format-check": "prettier --check **/src/*.ts",
"release": "ncc build -o dist && git add -f dist/",
"test": "jest"
},
@ -31,21 +41,24 @@
},
"devDependencies": {
"@types/jest": "^27.0.1",
"@types/node": "^16.7.1",
"@typescript-eslint/eslint-plugin": "^4.29.2",
"@typescript-eslint/parser": "^4.29.2",
"@vercel/ncc": "^0.29.2",
"@types/node": "^16.9.1",
"@typescript-eslint/eslint-plugin": "^4.31.0",
"@typescript-eslint/parser": "^4.31.0",
"@vercel/ncc": "^0.31.0",
"eslint": "^7.32.0",
"eslint-config-prettier": "^8.3.0",
"eslint-plugin-import": "^2.24.1",
"eslint-plugin-import": "^2.24.2",
"eslint-plugin-jest": "^24.4.0",
"eslint-plugin-prettier": "^3.4.1",
"eslint-plugin-prettier": "^4.0.0",
"husky": "^4.3.8",
"jest": "^27.0.6",
"jest-circus": "^27.0.6",
"prettier": "^2.3.2",
"jest": "^27.1.1",
"jest-circus": "^27.1.1",
"prettier": "^2.4.0",
"ts-jest": "^27.0.5",
"typescript": "^4.3.5"
"typescript": "^4.4.3"
},
"bugs": {
"url": "https://github.com/shivammathur/setup-php/issues"
},
"husky": {
"skipCI": true,

View File

@ -32,6 +32,7 @@ export async function addExtensionDarwin(
return;
// match 5.6 to 8.0 amqp, grpc, igbinary, imagick, imap, mongodb, msgpack, pecl_http, propro, protobuf, raphf, rdkafka, redis, swoole, xdebug, xdebug2, yaml, zmq
// match 7.1pcov to 8.0pcov
// match 7.0vips to 8.0vips
case /(5\.6|7\.[0-4]|8.0)(amqp|grpc|igbinary|imagick|imap|mongodb|msgpack|^(pecl_)?http$|propro|protobuf|psr|raphf|rdkafka|redis|swoole|xdebug|xdebug2|yaml|zmq)/.test(
version_extension
):
@ -39,6 +40,7 @@ export async function addExtensionDarwin(
case /^(5\.6|7\.[0-3])phalcon3$|^7\.[2-4]phalcon4$/.test(
version_extension
):
case /(7\.[0-4]|8\.0])vips/.test(version_extension):
command = 'add_brew_extension ' + extension_name.replace('pecl_', '');
break;
// match sqlite

View File

@ -67,9 +67,9 @@ export async function run(): Promise<void> {
const version: string = await utils.parseVersion(
await utils.getInput('php-version', true)
);
if (version == '8.1') {
if (parseFloat(version) < 5.6 || parseFloat(version) > 8.0) {
core.setFailed(
'PHP 8.1 is not supported on setup-php v1.\nPlease upgrade to v2 - https://setup-php.com/w/Switch-to-v2'
`setup-php v1 supports only PHP 5.6 to 8.0.\nPlease upgrade to v2 - https://setup-php.com/w/Switch-to-v2`
);
return;
}
@ -92,7 +92,7 @@ export async function run(): Promise<void> {
core.setFailed('Unable to get the PHP version');
}
} catch (error) {
core.setFailed(error.message);
core.setFailed(error as Error);
}
}

View File

@ -46,13 +46,13 @@ Function Add-ToProfile {
Function Add-Printf {
if (-not(Test-Path "C:\Program Files\Git\usr\bin\printf.exe")) {
if(Test-Path "C:\msys64\usr\bin\printf.exe") {
New-Item -Path $php_dir\printf.exe -ItemType SymbolicLink -Value C:\msys64\usr\bin\printf.exe
New-Item -Path $php_dir\printf.exe -ItemType SymbolicLink -Value C:\msys64\usr\bin\printf.exe -Force > $null 2>&1
} else {
Invoke-WebRequest -UseBasicParsing -Uri "$github/shivammathur/printf/releases/latest/download/printf-x64.zip" -OutFile "$php_dir\printf.zip"
Expand-Archive -Path $php_dir\printf.zip -DestinationPath $php_dir -Force
}
} else {
New-Item -Path $php_dir\printf.exe -ItemType SymbolicLink -Value "C:\Program Files\Git\usr\bin\printf.exe"
New-Item -Path $php_dir\printf.exe -ItemType SymbolicLink -Value "C:\Program Files\Git\usr\bin\printf.exe" -Force > $null 2>&1
}
}
@ -277,7 +277,6 @@ $github = 'https://github.com'
$composer_bin = "$env:APPDATA\Composer\vendor\bin"
$composer_json = "$env:APPDATA\Composer\composer.json"
$composer_lock = "$env:APPDATA\Composer\composer.lock"
$master_version = '8.0'
$arch = 'x64'
if(-not([Environment]::Is64BitOperatingSystem) -or $version -lt '7.0') {
$arch = 'x86'
@ -308,13 +307,7 @@ if ($null -eq $installed -or -not("$($installed.Version).".StartsWith(($version
Install-PSPackage VcRedist VcRedist-main\VcRedist\VcRedist "$github/aaronparker/VcRedist/archive/main.zip" Get-VcList >$null 2>&1
}
try {
if ($version -eq $master_version) {
$version = 'master'
Invoke-WebRequest -UseBasicParsing -Uri https://github.com/shivammathur/php-builder-windows/releases/latest/download/Get-Php.ps1 -OutFile $php_dir\Get-Php.ps1 > $null 2>&1
& $php_dir\Get-Php.ps1 -Architecture $arch -ThreadSafe $ts -Path $php_dir
} else {
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
} catch { }
} else {
$status = "Found"
@ -329,5 +322,5 @@ if($installed.MajorMinorVersion -ne $version) {
Enable-PhpExtension -Extension openssl, curl, opcache, mbstring -Path $php_dir
Update-PhpCAInfo -Path $php_dir -Source CurrentUser
Copy-Item -Path $dist\..\src\configs\*.json -Destination $env:RUNNER_TOOL_CACHE
New-Item -ItemType Directory -Path $composer_bin -Force 2>&1 | Out-Null
New-Item -ItemType Directory -Path $composer_bin -Force > $null 2>&1
Add-Log $tick "PHP" "$status PHP $($installed.FullVersion)"

View File

@ -1,5 +1,6 @@
{
"compilerOptions": {
"declaration": true,
"esModuleInterop": true,
"lib": [
"ES2020"
@ -15,4 +16,4 @@
"target": "ES2019"
},
"exclude": ["__tests__", "lib", "node_modules"]
}
}