Skip to content

Commit

Permalink
Workflowumbau + CS (#1453)
Browse files Browse the repository at this point in the history
* Workflowumbau + CS + rexstan level 5
  • Loading branch information
dergel committed Sep 23, 2023
1 parent 772bf2d commit 71c1438
Show file tree
Hide file tree
Showing 117 changed files with 1,251 additions and 1,111 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
84 changes: 84 additions & 0 deletions .github/workflows/phpunit.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,84 @@
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 '${{ 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.

92 changes: 92 additions & 0 deletions .github/workflows/rexstan.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
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 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
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
/composer.lock
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)
;
67 changes: 0 additions & 67 deletions .php_cs.dist

This file was deleted.

1 change: 0 additions & 1 deletion .tools/.phpunit.result.cache

This file was deleted.

12 changes: 0 additions & 12 deletions .tools/README.md

This file was deleted.

14 changes: 11 additions & 3 deletions .tools/bootstrap.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,13 @@
<?php

$YFormCurrentFolder = getcwd();
include ".tools/bootstrap.php";
chdir($YFormCurrentFolder);
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();
Loading

0 comments on commit 71c1438

Please sign in to comment.