Skip to content

Commit

Permalink
ci: create an initial CI that runs a syntax check
Browse files Browse the repository at this point in the history
This was inspired by:
https://github.com/phpmyadmin/phpmyadmin/blob/b094f337466a1188ad755b33be5a7b7b25a70916/.github/workflows/lint-and-analyse-php.yml

Resolve issues flagged by the syntax error checker:
    PHP Parse error:  syntax error, unexpected token "new" in ./lib/external/pear/Event/Dispatcher.php on line 249
    Errors parsing ./lib/external/pear/Event/Dispatcher.php
    PHP Fatal error:  Array and string offset access syntax with curly braces is no longer supported in ./lib/external/pear/System.php on line 238
    Errors parsing ./lib/external/pear/System.php
    PHP Parse error:  syntax error, unexpected token "new" in ./lib/external/pear/Config/Container/XML.php on line 134
    Errors parsing ./lib/external/pear/Config/Container/XML.php
    PHP Fatal error:  Array and string offset access syntax with curly braces is no longer supported in ./lib/external/pear/Config/Container/IniCommented.php on line 167
    Errors parsing ./lib/external/pear/Config/Container/IniCommented.php
    PHP Fatal error:  __autoload() is no longer supported, use spl_autoload_register() instead in ./lib/external/FeedWriter/FeedWriter.php on line 432
    Errors parsing ./lib/external/FeedWriter/FeedWriter.php
  • Loading branch information
JohnVillalovos committed May 21, 2024
1 parent f64538c commit ee5bc0f
Show file tree
Hide file tree
Showing 7 changed files with 116 additions and 10 deletions.
91 changes: 91 additions & 0 deletions .github/workflows/lint-and-analyse-php.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,91 @@
name: Lint and analyse php files

# If a pull-request is pushed then cancel all previously running jobs related
# to that pull-request
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
cancel-in-progress: true

on:
# push:
pull_request:
types: [opened, synchronize, reopened]
branches:
- develop

permissions:
contents: read

jobs:
lint-php-files:
runs-on: ubuntu-latest
strategy:
matrix:
php-version: ["8.1"]
steps:
- name: Checkout code
uses: actions/checkout@v4

- name: Set up PHP ${{ matrix.php-version }}
uses: shivammathur/setup-php@v2
with:
php-version: ${{ matrix.php-version }}

# TODO: Enable this after resolving issues
# - name: Validate composer.json and composer.lock
# run: composer validate --strict

- name: Install Composer dependencies
# Allow the previous check to fail but not abort
if: always()
uses: ramsey/composer-install@v2
with:
# Ignore zip for php-webdriver/webdriver
composer-options: "--ignore-platform-req=ext-zip"

# TODO: Enable this after resolving issues
# - name: Cache coding-standard
# # Allow the previous check to fail but not abort
# if: always()
# uses: actions/cache@v4
# with:
# path: .phpcs-cache
# key: phpcs-cache

- name: Lint PHP files
# Allow the previous check to fail but not abort
if: always()
run: ./ci/ci-phplint

# TODO: Enable this after resolving issues
# - name: Check coding-standard
# # Allow the previous check to fail but not abort
# if: always()
# run: composer phpcs

# TODO: Enable this after resolving issues
# analyse-php:
# runs-on: ubuntu-latest
# strategy:
# matrix:
# php-version: ["8.1"]
# steps:
# - name: Checkout code
# uses: actions/checkout@v4
#
# - name: Set up PHP ${{ matrix.php-version }}
# uses: shivammathur/setup-php@v2
# with:
# php-version: ${{ matrix.php-version }}
# extensions: mbstring, iconv, mysqli, zip, gd, bz2
#
# - name: Install Composer dependencies
# uses: ramsey/composer-install@v2
#
# - name: Analyse files with PHPStan
# run: composer phpstan -- --memory-limit 2G
#
# - name: Analyse files with Psalm
# # Allow the previous check to fail but not abort
# if: always()
# run: composer psalm -- --shepherd
16 changes: 16 additions & 0 deletions ci/ci-phplint
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/sh

FILES=$(find . -name '*.php' -not -path './vendor/*' -not -path './tmp/*' -not -path './node_modules/*')

result=0
for FILE in $FILES ; do
if [ -f "$FILE" ] ; then
php -l "$FILE"
ret=$?
if [ $ret != 0 ] ; then
result=$ret
fi
fi
done

exit $result
5 changes: 2 additions & 3 deletions lib/external/FeedWriter/FeedWriter.php
Original file line number Diff line number Diff line change
Expand Up @@ -429,7 +429,6 @@ private function endItem()
} // end of class FeedWriter

// autoload classes
function __autoload($class_name)
{
spl_autoload_register(function ($class_name) {
require_once $class_name . '.php';
}
});
2 changes: 1 addition & 1 deletion lib/external/pear/Config/Container/IniCommented.php
Original file line number Diff line number Diff line change
Expand Up @@ -164,7 +164,7 @@ function _quoteAndCommaParser($text)
$pos = 0; // position in $text

do {
$char = $text{$pos};
$char = $text[$pos];
$state = $this->_getQACEvent($stack);

if ($tokens[$state]) {
Expand Down
2 changes: 1 addition & 1 deletion lib/external/pear/Config/Container/XML.php
Original file line number Diff line number Diff line change
Expand Up @@ -131,7 +131,7 @@ function &parseDatasrc($datasrc, &$obj)
*/
function startHandler($xp, $elem, &$attribs)
{
$container =& new Config_Container('section', $elem, null, $attribs);
$container = new Config_Container('section', $elem, null, $attribs);
$this->containers[] =& $container;
return null;
} // end func startHandler
Expand Down
4 changes: 2 additions & 2 deletions lib/external/pear/Event/Dispatcher.php
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,7 @@ function addObserver($callback, $nName = EVENT_DISPATCHER_GLOBAL, $class = null)
*/
function &post(&$object, $nName, $info = array(), $pending = true, $bubble = true)
{
$notification =& new $this->_notificationClass($object, $nName, $info);
$notification =& $this->_notificationClass($object, $nName, $info);
return $this->postNotification($notification, $pending, $bubble);
}

Expand Down Expand Up @@ -475,4 +475,4 @@ function setNotificationClass($class)
}

}
?>
?>
6 changes: 3 additions & 3 deletions lib/external/pear/System.php
Original file line number Diff line number Diff line change
Expand Up @@ -235,7 +235,7 @@ function mkDir($args)
} elseif($opt[0] == 'm') {
// if the mode is clearly an octal number (starts with 0)
// convert it to decimal
if (strlen($opt[1]) && $opt[1]{0} == '0') {
if (strlen($opt[1]) && $opt[1][0] == '0') {
$opt[1] = octdec($opt[1]);
} else {
// convert to int
Expand Down Expand Up @@ -545,7 +545,7 @@ function find($args)
break;
case '-name':
if (OS_WINDOWS) {
if ($args[$i+1]{0} == '\\') {
if ($args[$i+1][0] == '\\') {
// prepend drive
$args[$i+1] = addslashes(substr(getcwd(), 0, 2) . $args[$i + 1]);
}
Expand Down Expand Up @@ -584,4 +584,4 @@ function find($args)
return $files;
}
}
?>
?>

0 comments on commit ee5bc0f

Please sign in to comment.