mirror of
https://github.com/werkraum-media/thuecat.git
synced 2024-11-10 15:26:17 +01:00
Daniel Siepmann
5e5c019704
The steps are only necessary to check changes before merging. Everyone always creates pull requests. Therefore no need to run in push in addition to PR.
208 lines
5.8 KiB
YAML
208 lines
5.8 KiB
YAML
name: CI
|
|
on:
|
|
- pull_request
|
|
jobs:
|
|
check-composer:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Validate composer.json
|
|
run: composer validate
|
|
|
|
php-linting:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
php-version:
|
|
- 7.3
|
|
- 7.4
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
|
|
- name: Install PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: "${{ matrix.php-version }}"
|
|
|
|
- name: PHP lint
|
|
run: "find *.php Classes Configuration Tests -name '*.php' -print0 | xargs -0 -n 1 -P 4 php -l"
|
|
|
|
check-dependencies:
|
|
runs-on: ubuntu-latest
|
|
needs: [check-composer]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: "7.4"
|
|
|
|
- name: Get Composer Cache Directory
|
|
id: composer-cache
|
|
run: |
|
|
echo "::set-output name=dir::$(composer config cache-files-dir)"
|
|
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ${{ steps.composer-cache.outputs.dir }}
|
|
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-composer-
|
|
|
|
- name: Keep composer V1 until all dev dependencies are ready
|
|
run: sudo composer selfupdate --2
|
|
|
|
- name: Install dependencies
|
|
run: composer install --prefer-dist --no-progress --no-suggest --no-plugins
|
|
|
|
- name: Missing composer requirements
|
|
run: ./vendor/bin/composer-require-checker check --config-file dependency-checker.json
|
|
|
|
xml-linting:
|
|
runs-on: ubuntu-latest
|
|
needs: [check-composer]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: "7.4"
|
|
|
|
- name: Install xmllint
|
|
run: sudo apt-get install libxml2-utils
|
|
|
|
- name: Get Composer Cache Directory
|
|
id: composer-cache
|
|
run: |
|
|
echo "::set-output name=dir::$(composer config cache-files-dir)"
|
|
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ${{ steps.composer-cache.outputs.dir }}
|
|
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-composer-
|
|
|
|
- name: Keep composer V1 until all dev dependencies are ready
|
|
run: sudo composer selfupdate --2
|
|
|
|
- name: Install dependencies
|
|
run: composer install --prefer-dist --no-progress --no-suggest
|
|
|
|
- name: PHPUnit configuration file
|
|
run: xmllint --schema vendor/phpunit/phpunit/phpunit.xsd --noout phpunit.xml.dist
|
|
|
|
- name: Fetch schema for xliff
|
|
run: wget https://docs.oasis-open.org/xliff/v1.2/os/xliff-core-1.2-strict.xsd --output-document=.Build/xliff-core-1.2-strict.xsd
|
|
|
|
- name: TYPO3 language files
|
|
run: xmllint --schema .Build/xliff-core-1.2-strict.xsd --noout $(find Resources -name '*.xlf')
|
|
|
|
coding-guideline:
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- check-dependencies
|
|
- xml-linting
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: "7.4"
|
|
|
|
- name: Get Composer Cache Directory
|
|
id: composer-cache
|
|
run: |
|
|
echo "::set-output name=dir::$(composer config cache-files-dir)"
|
|
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ${{ steps.composer-cache.outputs.dir }}
|
|
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-composer-
|
|
|
|
- name: Keep composer V1 until all dev dependencies are ready
|
|
run: sudo composer selfupdate --2
|
|
|
|
- name: Install dependencies
|
|
run: composer install --prefer-dist --no-progress --no-suggest
|
|
|
|
- name: Coding Guideline
|
|
run: ./vendor/bin/ecs check
|
|
|
|
code-quality:
|
|
runs-on: ubuntu-latest
|
|
needs: [check-dependencies]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: "7.4"
|
|
|
|
- name: Get Composer Cache Directory
|
|
id: composer-cache
|
|
run: |
|
|
echo "::set-output name=dir::$(composer config cache-files-dir)"
|
|
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ${{ steps.composer-cache.outputs.dir }}
|
|
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-composer-
|
|
|
|
- name: Keep composer V1 until all dev dependencies are ready
|
|
run: sudo composer selfupdate --2
|
|
|
|
- name: Install dependencies
|
|
run: composer install --prefer-dist --no-progress --no-suggest
|
|
|
|
- name: Code Quality (by PHPStan)
|
|
run: ./vendor/bin/phpstan analyse
|
|
|
|
tests:
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- check-dependencies
|
|
- xml-linting
|
|
strategy:
|
|
matrix:
|
|
php-version:
|
|
- 7.3
|
|
- 7.4
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- name: Install PHP
|
|
uses: shivammathur/setup-php@v2
|
|
with:
|
|
php-version: "${{ matrix.php-version }}"
|
|
|
|
- name: Get Composer Cache Directory
|
|
id: composer-cache
|
|
run: |
|
|
echo "::set-output name=dir::$(composer config cache-files-dir)"
|
|
|
|
- uses: actions/cache@v1
|
|
with:
|
|
path: ${{ steps.composer-cache.outputs.dir }}
|
|
key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
|
|
restore-keys: |
|
|
${{ runner.os }}-composer-
|
|
|
|
- name: Keep composer V1 until all dev dependencies are ready
|
|
run: sudo composer selfupdate --2
|
|
|
|
- name: Install dependencies
|
|
run: composer install --prefer-dist --no-progress --no-suggest
|
|
|
|
- name: PHPUnit Tests
|
|
run: ./vendor/bin/phpunit --testdox
|