mirror of
https://github.com/shivammathur/setup-php.git
synced 2024-11-23 04:11:06 +07:00
commit
3039a720ed
23
.github/workflows/workflow.yml
vendored
23
.github/workflows/workflow.yml
vendored
@ -24,7 +24,7 @@ jobs:
|
|||||||
fail-fast: false
|
fail-fast: false
|
||||||
matrix:
|
matrix:
|
||||||
operating-system: [ubuntu-latest, windows-latest, macOS-latest]
|
operating-system: [ubuntu-latest, windows-latest, macOS-latest]
|
||||||
php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3']
|
php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4']
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
@ -61,13 +61,22 @@ jobs:
|
|||||||
ini-values-csv: post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata #optional
|
ini-values-csv: post_max_size=256M, short_open_tag=On, date.timezone=Asia/Kolkata #optional
|
||||||
|
|
||||||
- name: Testing PHP version
|
- name: Testing PHP version
|
||||||
run: php -v
|
run: |
|
||||||
|
php -v
|
||||||
|
php -r "if(strpos(phpversion(), '${{ matrix.php-versions }}') === false) {throw new Exception('Wrong PHP version Installed');}"
|
||||||
|
|
||||||
- name: Testing Composer version
|
- name: Testing Composer version
|
||||||
run: composer -V
|
run: |
|
||||||
|
composer -V
|
||||||
|
php -r "if(strpos(@exec('composer -V'), 'Composer version') === false) {throw new Exception('Composer not found');}"
|
||||||
- name: Testing Extensions
|
- name: Testing Extensions
|
||||||
run: php -m
|
run: |
|
||||||
|
php -m
|
||||||
|
php -r "if(! extension_loaded('mbstring')) {throw new Exception('mbstring not found');}"
|
||||||
|
php -r "if(! extension_loaded('Xdebug')) {throw new Exception('Xdebug not found');}"
|
||||||
|
php -r "if(phpversion()>=7.1 && ! extension_loaded('pcov')) {throw new Exception('PCOV not found');}"
|
||||||
- name: Testing ini values
|
- name: Testing ini values
|
||||||
run: |
|
run: |
|
||||||
printf "post_max_size: %s\n" $(php -r "echo ini_get('post_max_size');")
|
php -r "if(ini_get('post_max_size')!='256M') {throw new Exception('post_max_size not added');}"
|
||||||
printf "short_open_tag: %s\n" $(php -r "echo ini_get('short_open_tag');")
|
php -r "if(ini_get('short_open_tag')!=1) {throw new Exception('short_open_tag not added');}"
|
||||||
printf "date.timezone: %s\n" $(php -r "echo ini_get('date.timezone');")
|
php -r "if(ini_get('date.timezone')!='Asia/Kolkata') {throw new Exception('date.timezone not added');}"
|
11
README.md
11
README.md
@ -72,7 +72,7 @@ Runs on all [PHP versions supported](#tada-php-support "List of PHP versions sup
|
|||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v1
|
uses: shivammathur/setup-php@v1
|
||||||
with:
|
with:
|
||||||
php-version: '7.3'
|
php-version: '7.4'
|
||||||
coverage: xdebug
|
coverage: xdebug
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -87,7 +87,7 @@ If your source code directory is other than `src`, `lib` or, `app`, specify `pco
|
|||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v1
|
uses: shivammathur/setup-php@v1
|
||||||
with:
|
with:
|
||||||
php-version: '7.3'
|
php-version: '7.4'
|
||||||
ini-values-csv: pcov.directory=api #optional, see above for usage.
|
ini-values-csv: pcov.directory=api #optional, see above for usage.
|
||||||
coverage: pcov
|
coverage: pcov
|
||||||
```
|
```
|
||||||
@ -104,7 +104,7 @@ Consider disabling the coverage using this PHP action for these reasons.
|
|||||||
```yaml
|
```yaml
|
||||||
uses: shivammathur/setup-php@v1
|
uses: shivammathur/setup-php@v1
|
||||||
with:
|
with:
|
||||||
php-version: '7.3'
|
php-version: '7.4'
|
||||||
coverage: none
|
coverage: none
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -130,7 +130,7 @@ steps:
|
|||||||
- name: Setup PHP
|
- name: Setup PHP
|
||||||
uses: shivammathur/setup-php@v1
|
uses: shivammathur/setup-php@v1
|
||||||
with:
|
with:
|
||||||
php-version: '7.3'
|
php-version: '7.4'
|
||||||
extension-csv: mbstring, intl #optional, setup extensions
|
extension-csv: mbstring, intl #optional, setup extensions
|
||||||
ini-values-csv: post_max_size=256M, short_open_tag=On #optional, setup php.ini configuration
|
ini-values-csv: post_max_size=256M, short_open_tag=On #optional, setup php.ini configuration
|
||||||
coverage: xdebug #optional, setup coverage driver
|
coverage: xdebug #optional, setup coverage driver
|
||||||
@ -155,7 +155,7 @@ jobs:
|
|||||||
strategy:
|
strategy:
|
||||||
matrix:
|
matrix:
|
||||||
operating-system: [ubuntu-latest, windows-latest, macOS-latest]
|
operating-system: [ubuntu-latest, windows-latest, macOS-latest]
|
||||||
php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3']
|
php-versions: ['5.6', '7.0', '7.1', '7.2', '7.3', '7.4']
|
||||||
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
|
name: PHP ${{ matrix.php-versions }} Test on ${{ matrix.operating-system }}
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
@ -250,7 +250,6 @@ If this action helped you.
|
|||||||
- [Homebrew](https://brew.sh/ "MacOS package manager")
|
- [Homebrew](https://brew.sh/ "MacOS package manager")
|
||||||
- [ppa:ondrej/php](https://launchpad.net/~ondrej/+archive/ubuntu/php "Pre-compiled ubuntu packages")
|
- [ppa:ondrej/php](https://launchpad.net/~ondrej/+archive/ubuntu/php "Pre-compiled ubuntu packages")
|
||||||
- [exolnet/homebrew-deprecated](https://github.com/eXolnet/homebrew-deprecated "Pre-compiled deprecated PHP for macOS")
|
- [exolnet/homebrew-deprecated](https://github.com/eXolnet/homebrew-deprecated "Pre-compiled deprecated PHP for macOS")
|
||||||
- [phpbrew](https://github.com/phpbrew/phpbrew "PHP packages manager")
|
|
||||||
|
|
||||||
## :bookmark_tabs: Further Reading
|
## :bookmark_tabs: Further Reading
|
||||||
|
|
||||||
|
@ -60,10 +60,6 @@ describe('Utils tests', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('checking readScripts', async () => {
|
it('checking readScripts', async () => {
|
||||||
const rc: string = fs.readFileSync(
|
|
||||||
path.join(__dirname, '../src/scripts/7.4.sh'),
|
|
||||||
'utf8'
|
|
||||||
);
|
|
||||||
const darwin: string = fs.readFileSync(
|
const darwin: string = fs.readFileSync(
|
||||||
path.join(__dirname, '../src/scripts/darwin.sh'),
|
path.join(__dirname, '../src/scripts/darwin.sh'),
|
||||||
'utf8'
|
'utf8'
|
||||||
@ -76,15 +72,12 @@ describe('Utils tests', () => {
|
|||||||
path.join(__dirname, '../src/scripts/win32.ps1'),
|
path.join(__dirname, '../src/scripts/win32.ps1'),
|
||||||
'utf8'
|
'utf8'
|
||||||
);
|
);
|
||||||
expect(await utils.readScript('darwin.sh', '7.4', 'darwin')).toBe(rc);
|
expect(await utils.readScript('darwin.sh', '7.4', 'darwin')).toBe(darwin);
|
||||||
expect(await utils.readScript('darwin.sh', '7.3', 'darwin')).toBe(darwin);
|
expect(await utils.readScript('darwin.sh', '7.3', 'darwin')).toBe(darwin);
|
||||||
expect(await utils.readScript('linux.sh', '7.4', 'linux')).toBe(linux);
|
expect(await utils.readScript('linux.sh', '7.4', 'linux')).toBe(linux);
|
||||||
expect(await utils.readScript('linux.sh', '7.3', 'linux')).toBe(linux);
|
expect(await utils.readScript('linux.sh', '7.3', 'linux')).toBe(linux);
|
||||||
expect(await utils.readScript('win32.ps1', '7.4', 'win32')).toBe(win32);
|
expect(await utils.readScript('win32.ps1', '7.4', 'win32')).toBe(win32);
|
||||||
expect(await utils.readScript('win32.ps1', '7.3', 'win32')).toBe(win32);
|
expect(await utils.readScript('win32.ps1', '7.3', 'win32')).toBe(win32);
|
||||||
expect(await utils.readScript('fedora.sh', '7.3', 'fedora')).toContain(
|
|
||||||
'Platform fedora is not supported'
|
|
||||||
);
|
|
||||||
});
|
});
|
||||||
|
|
||||||
it('checking writeScripts', async () => {
|
it('checking writeScripts', async () => {
|
||||||
|
12
dist/index.js
vendored
12
dist/index.js
vendored
@ -810,19 +810,7 @@ exports.addLog = addLog;
|
|||||||
*/
|
*/
|
||||||
function readScript(filename, version, os_version) {
|
function readScript(filename, version, os_version) {
|
||||||
return __awaiter(this, void 0, void 0, function* () {
|
return __awaiter(this, void 0, void 0, function* () {
|
||||||
switch (os_version) {
|
|
||||||
case 'darwin':
|
|
||||||
switch (version) {
|
|
||||||
case '7.4':
|
|
||||||
return fs.readFileSync(path.join(__dirname, '../src/scripts/7.4.sh'), 'utf8');
|
|
||||||
}
|
|
||||||
return fs.readFileSync(path.join(__dirname, '../src/scripts/' + filename), 'utf8');
|
return fs.readFileSync(path.join(__dirname, '../src/scripts/' + filename), 'utf8');
|
||||||
case 'linux':
|
|
||||||
case 'win32':
|
|
||||||
return fs.readFileSync(path.join(__dirname, '../src/scripts/' + filename), 'utf8');
|
|
||||||
default:
|
|
||||||
return yield log('Platform ' + os_version + ' is not supported', os_version, 'error');
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
exports.readScript = readScript;
|
exports.readScript = readScript;
|
||||||
|
14
package-lock.json
generated
14
package-lock.json
generated
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-php",
|
"name": "setup-php",
|
||||||
"version": "1.5.5",
|
"version": "1.5.6",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@ -1776,9 +1776,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"eslint-plugin-jest": {
|
"eslint-plugin-jest": {
|
||||||
"version": "23.0.5",
|
"version": "23.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.1.0.tgz",
|
||||||
"integrity": "sha512-etxXrWsFWzxsrxKwJnFC38uppH/vlJ3oF7Wmp/cxedqxRIxVhXup8e5y5MmtVXelevgxrgA1QS1vo8j889iK5Q==",
|
"integrity": "sha512-KHy1K0647bn86NTcWhWGoEIF9VgQ8YxR9hHZf/wQ4OvDwjRx27uk+mqvyZakWnRvIWFS/L25JNs4rnhsiE0adg==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"@typescript-eslint/experimental-utils": "^2.5.0"
|
"@typescript-eslint/experimental-utils": "^2.5.0"
|
||||||
@ -4833,9 +4833,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"psl": {
|
"psl": {
|
||||||
"version": "1.4.0",
|
"version": "1.5.0",
|
||||||
"resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/psl/-/psl-1.5.0.tgz",
|
||||||
"integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==",
|
"integrity": "sha512-4vqUjKi2huMu1OJiLhi3jN6jeeKvMZdI1tYgi/njW5zV52jNLgSAZSdN16m9bJFe61/cT8ulmw4qFitV9QRsEA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"pump": {
|
"pump": {
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "setup-php",
|
"name": "setup-php",
|
||||||
"version": "1.5.5",
|
"version": "1.5.6",
|
||||||
"private": false,
|
"private": false,
|
||||||
"description": "Setup PHP for use with GitHub Actions",
|
"description": "Setup PHP for use with GitHub Actions",
|
||||||
"main": "dist/index.js",
|
"main": "dist/index.js",
|
||||||
|
@ -17,12 +17,15 @@ add_log() {
|
|||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
step_log "Setup PHP and Composer"
|
||||||
version=$1
|
version=$1
|
||||||
export HOMEBREW_NO_INSTALL_CLEANUP=TRUE
|
export HOMEBREW_NO_INSTALL_CLEANUP=TRUE
|
||||||
if [ "$1" = "5.6" ] || [ "$1" = "7.0" ]; then
|
if [ "$1" = "5.6" ] || [ "$1" = "7.0" ]; then
|
||||||
brew tap exolnet/homebrew-deprecated >/dev/null 2>&1
|
brew tap exolnet/homebrew-deprecated >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
step_log "Setup PHP and Composer"
|
if [ "$1" = "7.4" ]; then
|
||||||
|
brew update >/dev/null 2>&1
|
||||||
|
fi
|
||||||
brew install php@"$1" composer >/dev/null 2>&1
|
brew install php@"$1" composer >/dev/null 2>&1
|
||||||
brew link --force --overwrite php@"$1" >/dev/null 2>&1
|
brew link --force --overwrite php@"$1" >/dev/null 2>&1
|
||||||
ini_file=$(php -d "date.timezone=UTC" --ini | grep "Loaded Configuration" | sed -e "s|.*:s*||" | sed "s/ //g")
|
ini_file=$(php -d "date.timezone=UTC" --ini | grep "Loaded Configuration" | sed -e "s|.*:s*||" | sed "s/ //g")
|
||||||
@ -31,7 +34,7 @@ ext_dir=$(php -i | grep "extension_dir => /usr" | sed -e "s|.*=> s*||")
|
|||||||
sudo chmod 777 "$ini_file"
|
sudo chmod 777 "$ini_file"
|
||||||
mkdir -p "$(pecl config-get ext_dir)"
|
mkdir -p "$(pecl config-get ext_dir)"
|
||||||
composer global require hirak/prestissimo >/dev/null 2>&1
|
composer global require hirak/prestissimo >/dev/null 2>&1
|
||||||
add_log "$tick" "PHP" "Installed PHP$version"
|
add_log "$tick" "PHP" "Installed PHP $(php -v | head -n 1 | cut -c 5-10)"
|
||||||
add_log "$tick" "Composer" "Installed"
|
add_log "$tick" "Composer" "Installed"
|
||||||
|
|
||||||
add_extension() {
|
add_extension() {
|
||||||
|
@ -18,7 +18,6 @@ add_log() {
|
|||||||
}
|
}
|
||||||
existing_version=$(php-config --version | cut -c 1-3)
|
existing_version=$(php-config --version | cut -c 1-3)
|
||||||
version=$1
|
version=$1
|
||||||
status="Switched to PHP$version"
|
|
||||||
step_log "Setup PHP and Composer"
|
step_log "Setup PHP and Composer"
|
||||||
sudo mkdir -p /var/run
|
sudo mkdir -p /var/run
|
||||||
sudo mkdir -p /run/php
|
sudo mkdir -p /run/php
|
||||||
@ -30,7 +29,9 @@ if [ "$existing_version" != "$1" ]; then
|
|||||||
else
|
else
|
||||||
sudo DEBIAN_FRONTEND=noninteractive apt-fast install -y php"$1" php"$1"-phpdbg php"$1"-xml curl php"$1"-curl >/dev/null 2>&1
|
sudo DEBIAN_FRONTEND=noninteractive apt-fast install -y php"$1" php"$1"-phpdbg php"$1"-xml curl php"$1"-curl >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
status="Installed PHP$version"
|
status="installed"
|
||||||
|
else
|
||||||
|
status="switched"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
for tool in php phar phar.phar php-cgi php-config phpize phpdbg; do
|
for tool in php phar phar.phar php-cgi php-config phpize phpdbg; do
|
||||||
@ -38,6 +39,13 @@ if [ "$existing_version" != "$1" ]; then
|
|||||||
sudo update-alternatives --set $tool /usr/bin/"$tool$1" >/dev/null 2>&1
|
sudo update-alternatives --set $tool /usr/bin/"$tool$1" >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
if [ "$status" != "switched" ]; then
|
||||||
|
status="Installed PHP $(php -v | head -n 1 | cut -c 5-10)"
|
||||||
|
else
|
||||||
|
status="Switched to PHP $(php -v | head -n 1 | cut -c 5-10)"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
status="PHP $(php -v | head -n 1 | cut -c 5-10) Found"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
ini_file=$(php --ini | grep "Loaded Configuration" | sed -e "s|.*:s*||" | sed "s/ //g")
|
ini_file=$(php --ini | grep "Loaded Configuration" | sed -e "s|.*:s*||" | sed "s/ //g")
|
||||||
|
@ -39,7 +39,7 @@ if ($null -eq $installed -or -not("$($installed.Version).".StartsWith(($version
|
|||||||
$status = "Installed PHP $($installed.FullVersion)"
|
$status = "Installed PHP $($installed.FullVersion)"
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$status = "Switched to PHP $($installed.FullVersion)"
|
$status = "PHP $($installed.FullVersion) Found"
|
||||||
}
|
}
|
||||||
|
|
||||||
Set-PhpIniKey -Key 'date.timezone' -Value 'UTC' -Path $php_dir
|
Set-PhpIniKey -Key 'date.timezone' -Value 'UTC' -Path $php_dir
|
||||||
|
22
src/utils.ts
22
src/utils.ts
@ -173,32 +173,10 @@ export async function readScript(
|
|||||||
version: string,
|
version: string,
|
||||||
os_version: string
|
os_version: string
|
||||||
): Promise<string> {
|
): Promise<string> {
|
||||||
switch (os_version) {
|
|
||||||
case 'darwin':
|
|
||||||
switch (version) {
|
|
||||||
case '7.4':
|
|
||||||
return fs.readFileSync(
|
|
||||||
path.join(__dirname, '../src/scripts/7.4.sh'),
|
|
||||||
'utf8'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return fs.readFileSync(
|
return fs.readFileSync(
|
||||||
path.join(__dirname, '../src/scripts/' + filename),
|
path.join(__dirname, '../src/scripts/' + filename),
|
||||||
'utf8'
|
'utf8'
|
||||||
);
|
);
|
||||||
case 'linux':
|
|
||||||
case 'win32':
|
|
||||||
return fs.readFileSync(
|
|
||||||
path.join(__dirname, '../src/scripts/' + filename),
|
|
||||||
'utf8'
|
|
||||||
);
|
|
||||||
default:
|
|
||||||
return await log(
|
|
||||||
'Platform ' + os_version + ' is not supported',
|
|
||||||
os_version,
|
|
||||||
'error'
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user