Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Workflowumbau + CS #1453

Merged
merged 15 commits into from
Sep 23, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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: test@redaxo.invalid
- 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 --error-email=test@redaxo.invalid --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: test@redaxo.invalid
- 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 --error-email=test@redaxo.invalid --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