Skip to content

Commit

Permalink
workflow und phpstan level 5 CS (#465)
Browse files Browse the repository at this point in the history
* workflow und phpstan level 5 CS
  • Loading branch information
dergel authored Sep 23, 2023
1 parent 6173fa9 commit 801bd42
Show file tree
Hide file tree
Showing 322 changed files with 4,829 additions and 52,532 deletions.
42 changes: 42 additions & 0 deletions .github/workflows/code-style.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: PHP-CS-Fixer

on:
push:
branches: [ master, main ]
pull_request:
branches: [ master, main ]

permissions:
contents: read

jobs:
code-style:

runs-on: ubuntu-latest
permissions:
contents: write # for Git to git apply

steps:
- uses: actions/checkout@v3

- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.1'
extensions: gd, intl, pdo_mysql
coverage: none # disable xdebug, pcov

# install dependencies from composer.json
- name: Install test dependencies
env:
COMPOSER: composer.json
run: composer install --prefer-dist --no-progress

# run php-cs-fixer
- name: Run PHP CS Fixer
run: composer cs-dry

# commit and push fixed files
# - uses: stefanzweifel/git-auto-commit-action@v4
# with:
# commit_message: Apply php-cs-fixer changes
27 changes: 0 additions & 27 deletions .github/workflows/phpstan.yml

This file was deleted.

89 changes: 89 additions & 0 deletions .github/workflows/phpunit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
name: PHPUnit

on:
push:
branches: [ master, main ]
pull_request:
branches: [ master, main ]

permissions:
contents: read

jobs:
phpunit:

runs-on: ubuntu-latest
permissions:
contents: write # for Git to git apply

steps:
- uses: actions/checkout@v3

# setup PHP v8, install some extensions
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: gd, intl, pdo_mysql
coverage: none # disable xdebug, pcov

# download the latest REDAXO release and unzip it
# credits https://blog.markvincze.com/download-artifacts-from-a-latest-github-release-in-sh-and-powershell/
- name: Download latest REDAXO release
run: |
LATEST_RELEASE=$(curl -L -s -H 'Accept: application/json' https://github.com/redaxo/redaxo/releases/latest)
REDAXO_VERSION=$(echo $LATEST_RELEASE | sed -e 's/.*"tag_name":"\([^"]*\)".*/\1/')
echo "Downloaded REDAXO $REDAXO_VERSION"
curl -Ls -o redaxo.zip https://github.com/redaxo/redaxo/releases/download/$REDAXO_VERSION/redaxo_$REDAXO_VERSION.zip
unzip -oq redaxo.zip -d redaxo_cms
rm redaxo.zip
# start mysql service, create a database called redaxo5, apply config patch
- name: Init database
run: |
sudo /etc/init.d/mysql start
mysql -uroot -h127.0.0.1 -proot -e 'create database redaxo5;'
# run REDAXO setup with the following parameters
# Language: de
# DB password: root
# Create DB: no
# Admin username: admin
# Admin password: adminpassword
# Error E-mail: [email protected]
- name: Setup REDAXO
run: |
php redaxo_cms/redaxo/bin/console setup:run -n --lang=de_de --agree-license --db-host=127.0.0.1 --db-name=redaxo5 --db-password=root --db-createdb=no --db-setup=normal --admin-username=admin --admin-password=adminpassword [email protected] --ansi
php redaxo_cms/redaxo/bin/console config:set --type boolean debug.enabled true
php redaxo_cms/redaxo/bin/console config:set --type boolean debug.throw_always_exception true
# copy Addon files, ignore some directories...
# install the addon
# if the addon name does not match the repository name, ${{ github.event.repository.name }} must be replaced with the addon name
# if additional addons are needed, they can be installed via the console commands
# see: https://www.redaxo.org/doku/main/basis-addons#console
- name: Copy and install Addons
run: |
rsync -av --exclude='./vendor' --exclude='.github' --exclude='.git' --exclude='redaxo_cms' './' 'redaxo_cms/redaxo/src/addons/${{ github.event.repository.name }}'
redaxo_cms/redaxo/bin/console package:install 'cronjob'
redaxo_cms/redaxo/bin/console package:install 'phpmailer'
redaxo_cms/redaxo/bin/console install:download 'yform' '4.*'
redaxo_cms/redaxo/bin/console package:install 'yform'
redaxo_cms/redaxo/bin/console install:download 'yrewrite' '2.*'
redaxo_cms/redaxo/bin/console package:install 'yrewrite'
redaxo_cms/redaxo/bin/console package:install '${{ github.event.repository.name }}'
# install dependencies from composer.json
- name: Install test dependencies
working-directory: redaxo_cms/redaxo/src/addons/${{ github.event.repository.name }}
env:
COMPOSER: composer.json
run: composer install --prefer-dist --no-progress

- name: Setup Problem Matchers for PHPUnit
run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json"

# run unit tests, see composer.json
- name: Run phpunit
working-directory: redaxo_cms/redaxo/src/addons/${{ github.event.repository.name }}
run: composer test
24 changes: 24 additions & 0 deletions .github/workflows/publish-to-redaxo.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Publish release

on:
release:
types:
- published

jobs:
redaxo_publish:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: shivammathur/setup-php@v2
with:
php-version: "8.2"
- uses: ramsey/composer-install@v2
with:
composer-options: "--no-dev"
- uses: FriendsOfREDAXO/installer-action@v1
with:
myredaxo-username: ${{ secrets.MYREDAXO_USERNAME }}
myredaxo-api-key: ${{ secrets.MYREDAXO_API_KEY }}
description: ${{ github.event.release.body }}

20 changes: 0 additions & 20 deletions .github/workflows/rexlint.yml

This file was deleted.

96 changes: 96 additions & 0 deletions .github/workflows/rexstan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
name: rexstan

on:
push:
branches: [ master, main ]
pull_request:
branches: [ master, main ]

permissions:
contents: read

jobs:
rexstan:
env:
ADDON_KEY: ${{ github.event.repository.name }}

runs-on: ubuntu-latest
permissions:
contents: write # for Git to git apply

steps:
- uses: actions/checkout@v3

# setup PHP v8, install some extensions
- name: Setup PHP
uses: shivammathur/setup-php@v2
with:
php-version: '8.2'
extensions: gd, intl, pdo_mysql
coverage: none # disable xdebug, pcov

# download the latest REDAXO release and unzip it
# credits https://blog.markvincze.com/download-artifacts-from-a-latest-github-release-in-sh-and-powershell/
- name: Download latest REDAXO release
run: |
LATEST_RELEASE=$(curl -L -s -H 'Accept: application/json' https://github.com/redaxo/redaxo/releases/latest)
REDAXO_VERSION=$(echo $LATEST_RELEASE | sed -e 's/.*"tag_name":"\([^"]*\)".*/\1/')
echo "Downloaded REDAXO $REDAXO_VERSION"
curl -Ls -o redaxo.zip https://github.com/redaxo/redaxo/releases/download/$REDAXO_VERSION/redaxo_$REDAXO_VERSION.zip
unzip -oq redaxo.zip -d redaxo_cms
rm redaxo.zip
# start mysql service, create a database called redaxo5, apply config patch
- name: Init database
run: |
sudo /etc/init.d/mysql start
mysql -uroot -h127.0.0.1 -proot -e 'create database redaxo5;'
# run REDAXO setup with the following parameters
# Language: de
# DB password: root
# Create DB: no
# Admin username: admin
# Admin password: adminpassword
# Error E-mail: [email protected]
- name: Setup REDAXO
run: |
php redaxo_cms/redaxo/bin/console setup:run -n --lang=de_de --agree-license --db-host=127.0.0.1 --db-name=redaxo5 --db-password=root --db-createdb=no --db-setup=normal --admin-username=admin --admin-password=adminpassword [email protected] --ansi
php redaxo_cms/redaxo/bin/console config:set --type boolean debug.enabled true
php redaxo_cms/redaxo/bin/console config:set --type boolean debug.throw_always_exception true
# copy Addon files, ignore some directories...
# install the addon
# if the addon name does not match the repository name, ${{ github.event.repository.name }} must be replaced with the addon name
# install latest rexstan
# if additional addons are needed, they can be installed via the console commands
# see: https://www.redaxo.org/doku/main/basis-addons#console
- name: Copy and install Addons
run: |
rsync -av --exclude='./vendor' --exclude='.github' --exclude='.git' --exclude='redaxo_cms' './' 'redaxo_cms/redaxo/src/addons/${{ github.event.repository.name }}'
redaxo_cms/redaxo/bin/console install:download 'rexstan' '1.*'
redaxo_cms/redaxo/bin/console package:install 'rexstan'
redaxo_cms/redaxo/bin/console package:install 'cronjob'
redaxo_cms/redaxo/bin/console package:install 'phpmailer'
redaxo_cms/redaxo/bin/console install:download 'yform' '4.*'
redaxo_cms/redaxo/bin/console package:install 'yform'
redaxo_cms/redaxo/bin/console install:download 'yrewrite' '2.*'
redaxo_cms/redaxo/bin/console package:install 'yrewrite'
redaxo_cms/redaxo/bin/console package:install '${{ github.event.repository.name }}'
# install dependencies from composer.json
- name: Install test dependencies
working-directory: redaxo_cms/redaxo/src/addons/${{ github.event.repository.name }}
env:
COMPOSER: composer.json
run: composer install --prefer-dist --no-progress

# execute rexstan.php to create the needed user-config.neon
- name: Execute .tools/rexstan.php
run: php -f redaxo/src/addons/${{ github.event.repository.name }}/.tools/rexstan.php
working-directory: redaxo_cms

# run rexstan
- id: rexstan
name: Run rexstan
run: redaxo_cms/redaxo/bin/console rexstan:analyze
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@

vendor/
vendor/
.phpunit.result.cache
.php-cs-fixer.cache
11 changes: 11 additions & 0 deletions .php-cs-fixer.dist.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
<?php

declare(strict_types=1);

$finder = (new PhpCsFixer\Finder())
->in(__DIR__)
;

return (new Redaxo\PhpCsFixerConfig\Config())
->setFinder($finder)
;
13 changes: 13 additions & 0 deletions .tools/bootstrap.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
<?php

unset($REX);
$REX['REDAXO'] = true;
$REX['HTDOCS_PATH'] = '../../../../';
$REX['BACKEND_FOLDER'] = 'redaxo';
$REX['LOAD_PAGE'] = false;

require __DIR__.'../../../../core/boot.php';
require __DIR__.'../../../../core/packages.php';

// use original error handlers of the tools
rex_error_handler::unregister();
40 changes: 40 additions & 0 deletions .tools/rexstan.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<?php
/**
* boot redaxo and load packages
* necessary to use \rexstan\RexStanUserConfig::save()
*/
unset($REX);
$REX['REDAXO'] = true;
$REX['HTDOCS_PATH'] = './';
$REX['BACKEND_FOLDER'] = 'redaxo';
$REX['LOAD_PAGE'] = false;

require './redaxo/src/core/boot.php';
require './redaxo/src/core/packages.php';

/**
* rexstan config
*/
$extensions = [
// '../../../../redaxo/src/addons/rexstan/config/rex-superglobals.neon',
// '../../../../redaxo/src/addons/rexstan/vendor/phpstan/phpstan/conf/bleedingEdge.neon',
// '../../../../redaxo/src/addons/rexstan/vendor/phpstan/phpstan-strict-rules/rules.neon',
'../../../../redaxo/src/addons/rexstan/vendor/phpstan/phpstan-deprecation-rules/rules.neon',
'../../../../redaxo/src/addons/rexstan/config/phpstan-phpunit.neon',
// '../../../../redaxo/src/addons/rexstan/config/phpstan-dba.neon',
// '../../../../redaxo/src/addons/rexstan/config/cognitive-complexity.neon',
// '../../../../redaxo/src/addons/rexstan/config/code-complexity.neon',
// '../../../../redaxo/src/addons/rexstan/config/dead-code.neon'
];

// get addon key from environment variable
$addon = ['../../../../redaxo/src/addons/' . getenv('ADDON_KEY') . '/'];

/**
* save config
* @param int $level the level to use
* @param array $addon the addon to use
* @param array $extensions the extensions to use
* @param int $phpVersion the php version to use
*/
\rexstan\RexStanUserConfig::save(5, $addon, $extensions, 80203);
8 changes: 6 additions & 2 deletions boot.php
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
* @psalm-scope-this rex_addon
*/

// include __DIR__.'/vendor/guzzlehttp/promises/src/functions_include.php';
// include __DIR__.'/vendor/guzzlehttp/guzzle/src/functions_include.php';
//

if (rex::isBackend()) {
rex_extension::register('PACKAGES_INCLUDED', static function ($params) {
$plugin = rex_plugin::get('yform', 'manager');
Expand All @@ -25,8 +29,8 @@
});
}

rex_ycom::addTable(rex::getTablePrefix().'ycom_user');
rex_yform_manager_dataset::setModelClass(rex::getTablePrefix().'ycom_user', rex_ycom_user::class);
rex_ycom::addTable(rex::getTablePrefix() . 'ycom_user');
rex_yform_manager_dataset::setModelClass(rex::getTablePrefix() . 'ycom_user', rex_ycom_user::class);

if (rex::isBackend() && ('index.php?page=content/edit' == rex_url::currentBackendPage() || 'mediapool' == rex_be_controller::getCurrentPagePart(1))) {
rex_view::addJsFile($this->getAssetsUrl('ycom_backend.js'));
Expand Down
Loading

0 comments on commit 801bd42

Please sign in to comment.