mirror of
https://github.com/DanielSiepmann/tracking.git
synced 2024-09-27 19:26:10 +02:00
Daniel Siepmann
9fe11b300c
Only autoloaded files will be checked by default. TYPO3 has some additional files which should be scanned as well.
224 lines
6.5 KiB
YAML
224 lines
6.5 KiB
YAML
name: CI
|
|
on: [push]
|
|
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: 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: 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 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: 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: PHPCodeSniffer configuration file
|
|
run: xmllint --schema vendor/squizlabs/php_codesniffer/phpcs.xsd --noout phpcs.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: 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: Install dependencies
|
|
run: composer install --prefer-dist --no-progress --no-suggest
|
|
|
|
- name: Coding Guideline
|
|
run: ./vendor/bin/phpcs
|
|
|
|
tests-sqlite:
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- check-dependencies
|
|
- xml-linting
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- 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: Install dependencies
|
|
run: composer install --prefer-dist --no-progress --no-suggest
|
|
|
|
- name: PHPUnit Tests
|
|
run: ./vendor/bin/phpunit --testdox
|
|
|
|
tests-mysql:
|
|
runs-on: ubuntu-latest
|
|
needs:
|
|
- check-dependencies
|
|
- xml-linting
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- 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: Start MySQL
|
|
run: sudo /etc/init.d/mysql start
|
|
|
|
- name: Install dependencies
|
|
run: composer install --prefer-dist --no-progress --no-suggest
|
|
|
|
- name: PHPUnit Tests
|
|
run: |-
|
|
export typo3DatabaseDriver="mysqli"
|
|
export typo3DatabaseName="typo3"
|
|
export typo3DatabaseHost="127.0.0.1"
|
|
export typo3DatabaseUsername="root"
|
|
export typo3DatabasePassword="root"
|
|
./vendor/bin/phpunit --testdox
|
|
|
|
code-quality:
|
|
runs-on: ubuntu-latest
|
|
needs: [check-dependencies]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- 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: Install dependencies
|
|
run: composer install --prefer-dist --no-progress --no-suggest
|
|
|
|
- name: Code Quality (by PHPStan)
|
|
run: ./vendor/bin/phpstan analyse
|
|
|
|
security-test:
|
|
runs-on: ubuntu-latest
|
|
needs: [check-dependencies]
|
|
steps:
|
|
- uses: actions/checkout@v2
|
|
|
|
- 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: Install dependencies
|
|
run: composer install --prefer-dist --no-progress --no-suggest
|
|
|
|
- name: PHP Security test
|
|
run: ./vendor/bin/security-checker security:check --no-ansi
|