-
Notifications
You must be signed in to change notification settings - Fork 6
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
165 additions
and
54 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,124 @@ | ||
name: Check | ||
|
||
on: | ||
push: | ||
branches: [main, bugfix, temp] | ||
pull_request: | ||
types: [opened, synchronize, reopened, ready_for_review] | ||
|
||
env: | ||
writable: ${{ github.event_name != 'push' && github.event.pull_request.head.repo.full_name == github.repository && github.actor != 'dependabot[bot]' && 1 || 0 }} | ||
|
||
jobs: | ||
php-cs-fixer: | ||
runs-on: ubuntu-latest | ||
if: github.event.pull_request.draft == false | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
if: env.writable == 1 | ||
with: | ||
ref: ${{ github.head_ref }} | ||
token: ${{ secrets.BOT_TOKEN }} | ||
- name: Checkout fork | ||
uses: actions/checkout@v3 | ||
if: env.writable == 0 | ||
|
||
- name: Setup PHP | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: 8.1 | ||
coverage: none # disable xdebug, pcov | ||
tools: cs2pr | ||
|
||
- name: Composer install | ||
uses: ramsey/composer-install@v2 | ||
with: | ||
composer-options: --ansi --prefer-dist | ||
|
||
- name: Fix code style | ||
if: env.writable == 1 | ||
run: vendor/bin/php-cs-fixer list-files --config=.php-cs-fixer.dist.php | xargs -n 250 -P 3 vendor/bin/php-cs-fixer fix --diff --config=.php-cs-fixer.dist.php | ||
|
||
- name: Commit changed files | ||
uses: stefanzweifel/git-auto-commit-action@v4 | ||
if: env.writable == 1 | ||
with: | ||
commit_message: Apply php-cs-fixer changes | ||
commit_user_name: rex-bot | ||
commit_user_email: [email protected] | ||
|
||
- name: Check code style | ||
if: env.writable == 0 | ||
run: vendor/bin/php-cs-fixer fix --ansi --diff --dry-run --format=checkstyle | cs2pr # check whether there are still errors left | ||
|
||
rexstan: | ||
runs-on: ubuntu-latest | ||
env: | ||
ADDON_KEY: ${{ github.event.repository.name }} | ||
|
||
steps: | ||
- name: Checkout | ||
uses: actions/checkout@v3 | ||
|
||
- name: Setup PHP | ||
uses: shivammathur/setup-php@v2 | ||
with: | ||
php-version: '8.2' | ||
extensions: gd, intl, pdo_mysql, iconv | ||
coverage: none # disable xdebug, pcov | ||
|
||
- name: Composer install | ||
uses: ramsey/composer-install@v2 | ||
with: | ||
composer-options: --ansi --prefer-dist | ||
|
||
# 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='.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 '${{ github.event.repository.name }}' | ||
# 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 |
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
<?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'; | ||
require './redaxo/src/addons/ydeploy/vendor/deployer/deployer/src/functions.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(0, $addon, $extensions, 80203); |