mirror of
				https://github.com/shivammathur/setup-php.git
				synced 2025-10-31 15:26:23 +07:00 
			
		
		
		
	
							
								
								
									
										23
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										23
									
								
								.github/workflows/workflow.yml
									
									
									
									
										vendored
									
									
								
							| @ -24,7 +24,7 @@ jobs: | ||||
|       fail-fast: false | ||||
|       matrix: | ||||
|         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: | ||||
|       - name: Checkout | ||||
|         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 | ||||
|  | ||||
|       - 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 | ||||
|         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 | ||||
|         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 | ||||
|         run: | | ||||
|           printf "post_max_size: %s\n" $(php -r "echo ini_get('post_max_size');") | ||||
|           printf "short_open_tag: %s\n" $(php -r "echo ini_get('short_open_tag');") | ||||
|           printf "date.timezone: %s\n" $(php -r "echo ini_get('date.timezone');") | ||||
|           php -r "if(ini_get('post_max_size')!='256M') {throw new Exception('post_max_size not added');}" | ||||
|           php -r "if(ini_get('short_open_tag')!=1) {throw new Exception('short_open_tag not added');}" | ||||
|           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 | ||||
| uses: shivammathur/setup-php@v1 | ||||
| with: | ||||
|   php-version: '7.3'   | ||||
|   php-version: '7.4'   | ||||
|   coverage: xdebug | ||||
| ``` | ||||
|  | ||||
| @ -87,7 +87,7 @@ If your source code directory is other than `src`, `lib` or, `app`, specify `pco | ||||
| ```yaml | ||||
| uses: shivammathur/setup-php@v1 | ||||
| with: | ||||
|   php-version: '7.3' | ||||
|   php-version: '7.4' | ||||
|   ini-values-csv: pcov.directory=api #optional, see above for usage. | ||||
|   coverage: pcov | ||||
| ``` | ||||
| @ -104,7 +104,7 @@ Consider disabling the coverage using this PHP action for these reasons. | ||||
| ```yaml | ||||
| uses: shivammathur/setup-php@v1 | ||||
| with: | ||||
|   php-version: '7.3' | ||||
|   php-version: '7.4' | ||||
|   coverage: none | ||||
| ``` | ||||
|  | ||||
| @ -130,7 +130,7 @@ steps: | ||||
| - name: Setup PHP | ||||
|   uses: shivammathur/setup-php@v1 | ||||
|   with: | ||||
|     php-version: '7.3' | ||||
|     php-version: '7.4' | ||||
|     extension-csv: mbstring, intl #optional, setup extensions | ||||
|     ini-values-csv: post_max_size=256M, short_open_tag=On #optional, setup php.ini configuration | ||||
|     coverage: xdebug #optional, setup coverage driver | ||||
| @ -155,7 +155,7 @@ jobs: | ||||
|     strategy:       | ||||
|       matrix: | ||||
|         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 }} | ||||
|     steps: | ||||
|     - name: Checkout | ||||
| @ -250,7 +250,6 @@ If this action helped you. | ||||
| - [Homebrew](https://brew.sh/ "MacOS package manager") | ||||
| - [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") | ||||
| - [phpbrew](https://github.com/phpbrew/phpbrew "PHP packages manager") | ||||
|  | ||||
| ## :bookmark_tabs: Further Reading | ||||
|  | ||||
|  | ||||
| @ -60,10 +60,6 @@ describe('Utils tests', () => { | ||||
|   }); | ||||
|  | ||||
|   it('checking readScripts', async () => { | ||||
|     const rc: string = fs.readFileSync( | ||||
|       path.join(__dirname, '../src/scripts/7.4.sh'), | ||||
|       'utf8' | ||||
|     ); | ||||
|     const darwin: string = fs.readFileSync( | ||||
|       path.join(__dirname, '../src/scripts/darwin.sh'), | ||||
|       'utf8' | ||||
| @ -76,15 +72,12 @@ describe('Utils tests', () => { | ||||
|       path.join(__dirname, '../src/scripts/win32.ps1'), | ||||
|       '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('linux.sh', '7.4', '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.3', 'win32')).toBe(win32); | ||||
|     expect(await utils.readScript('fedora.sh', '7.3', 'fedora')).toContain( | ||||
|       'Platform fedora is not supported' | ||||
|     ); | ||||
|   }); | ||||
|  | ||||
|   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) { | ||||
|     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'); | ||||
|             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; | ||||
|  | ||||
							
								
								
									
										14
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										14
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "setup-php", | ||||
|   "version": "1.5.5", | ||||
|   "version": "1.5.6", | ||||
|   "lockfileVersion": 1, | ||||
|   "requires": true, | ||||
|   "dependencies": { | ||||
| @ -1776,9 +1776,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "eslint-plugin-jest": { | ||||
|       "version": "23.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.0.5.tgz", | ||||
|       "integrity": "sha512-etxXrWsFWzxsrxKwJnFC38uppH/vlJ3oF7Wmp/cxedqxRIxVhXup8e5y5MmtVXelevgxrgA1QS1vo8j889iK5Q==", | ||||
|       "version": "23.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-23.1.0.tgz", | ||||
|       "integrity": "sha512-KHy1K0647bn86NTcWhWGoEIF9VgQ8YxR9hHZf/wQ4OvDwjRx27uk+mqvyZakWnRvIWFS/L25JNs4rnhsiE0adg==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@typescript-eslint/experimental-utils": "^2.5.0" | ||||
| @ -4833,9 +4833,9 @@ | ||||
|       } | ||||
|     }, | ||||
|     "psl": { | ||||
|       "version": "1.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/psl/-/psl-1.4.0.tgz", | ||||
|       "integrity": "sha512-HZzqCGPecFLyoRj5HLfuDSKYTJkAfB5thKBIkRHtGjWwY7p1dAyveIbXIq4tO0KYfDF2tHqPUgY9SDnGm00uFw==", | ||||
|       "version": "1.5.0", | ||||
|       "resolved": "https://registry.npmjs.org/psl/-/psl-1.5.0.tgz", | ||||
|       "integrity": "sha512-4vqUjKi2huMu1OJiLhi3jN6jeeKvMZdI1tYgi/njW5zV52jNLgSAZSdN16m9bJFe61/cT8ulmw4qFitV9QRsEA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "pump": { | ||||
|  | ||||
| @ -1,6 +1,6 @@ | ||||
| { | ||||
|   "name": "setup-php", | ||||
|   "version": "1.5.5", | ||||
|   "version": "1.5.6", | ||||
|   "private": false, | ||||
|   "description": "Setup PHP for use with GitHub Actions", | ||||
|   "main": "dist/index.js", | ||||
|  | ||||
| @ -17,12 +17,15 @@ add_log() { | ||||
|   fi | ||||
| } | ||||
|  | ||||
| step_log "Setup PHP and Composer" | ||||
| version=$1 | ||||
| export HOMEBREW_NO_INSTALL_CLEANUP=TRUE | ||||
| if [ "$1" = "5.6" ] || [ "$1" = "7.0" ]; then | ||||
|   brew tap exolnet/homebrew-deprecated >/dev/null 2>&1 | ||||
| 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 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") | ||||
| @ -31,7 +34,7 @@ ext_dir=$(php -i | grep "extension_dir => /usr" | sed -e "s|.*=> s*||") | ||||
| sudo chmod 777 "$ini_file" | ||||
| mkdir -p "$(pecl config-get ext_dir)" | ||||
| 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_extension() { | ||||
|  | ||||
| @ -18,7 +18,6 @@ add_log() { | ||||
| } | ||||
| existing_version=$(php-config --version | cut -c 1-3) | ||||
| version=$1 | ||||
| status="Switched to PHP$version" | ||||
| step_log "Setup PHP and Composer" | ||||
| sudo mkdir -p /var/run | ||||
| sudo mkdir -p /run/php | ||||
| @ -30,7 +29,9 @@ if [ "$existing_version" != "$1" ]; then | ||||
| 		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 | ||||
| 		fi | ||||
| 		status="Installed PHP$version" | ||||
| 		status="installed" | ||||
| 	else | ||||
| 	  status="switched" | ||||
| 	fi | ||||
|  | ||||
| 	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 | ||||
| 		fi | ||||
| 	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 | ||||
|  | ||||
| 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)" | ||||
| } | ||||
| else { | ||||
|   $status = "Switched to PHP $($installed.FullVersion)" | ||||
|   $status = "PHP $($installed.FullVersion) Found" | ||||
| } | ||||
|  | ||||
| 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, | ||||
|   os_version: 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( | ||||
|     path.join(__dirname, '../src/scripts/' + filename), | ||||
|     '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' | ||||
|       ); | ||||
|   } | ||||
| } | ||||
|  | ||||
| /** | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 Shivam Mathur
					Shivam Mathur