on: - pull_request - push name: CI jobs: php-lint: name: PHP linter runs-on: ubuntu-latest strategy: matrix: php-version: - 7.2 - 7.3 - 7.4 steps: - name: Checkout uses: actions/checkout@v1 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} - name: Run PHP lint run: composer ci:php:lint code-quality: name: Code quality checks runs-on: ubuntu-latest strategy: matrix: command: - ts:lint - php:sniff php-version: - 7.3 steps: - name: Checkout uses: actions/checkout@v1 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} - name: "Cache dependencies installed with composer" uses: actions/cache@v1 with: path: ~/.composer/cache key: php${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.json') }} restore-keys: | php${{ matrix.php-version }}-composer- - name: Install Composer dependencies run: composer install --no-progress - name: Run command run: composer ci:${{ matrix.command }} unit-tests: name: Unit tests runs-on: ubuntu-latest strategy: matrix: typo3-version: - "^9.5" #- "^10.4" composer-dependencies: - highest #- lowest php-version: - 7.2 - 7.3 - 7.4 steps: - name: Checkout uses: actions/checkout@v1 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} - name: Cache dependencies installed with composer uses: actions/cache@v1 with: path: ~/.composer/cache key: php${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.json') }} restore-keys: | php${{ matrix.php-version }}-composer- - name: Install TYPO3 Core env: TYPO3: ${{ matrix.typo3-version }} run: | composer require typo3/minimal:"$TYPO3" composer show - name: Install lowest dependencies with composer if: matrix.composer-dependencies == 'lowest' run: | composer update --no-ansi --no-interaction --no-progress --no-suggest --prefer-lowest composer show - name: Install highest dependencies with composer if: matrix.composer-dependencies == 'highest' run: | composer update --no-ansi --no-interaction --no-progress --no-suggest composer show - name: Run unit tests run: composer ci:tests:unit functional-tests: name: Functional tests runs-on: ubuntu-latest strategy: matrix: typo3-version: - "^9.5" #- "^10.4" composer-dependencies: - highest #- lowest php-version: - 7.2 - 7.3 - 7.4 steps: - name: Checkout uses: actions/checkout@v1 - name: Install PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php-version }} - name: Cache dependencies installed with composer uses: actions/cache@v1 with: path: ~/.composer/cache key: php${{ matrix.php-version }}-composer-${{ hashFiles('**/composer.json') }} restore-keys: | php${{ matrix.php-version }}-composer- - name: Install TYPO3 Core env: TYPO3: ${{ matrix.typo3-version }} run: | composer require typo3/minimal:"$TYPO3" composer show - name: Install lowest dependencies with composer if: matrix.composer-dependencies == 'lowest' run: | composer update --no-ansi --no-interaction --no-progress --no-suggest --prefer-lowest composer show - name: Install highest dependencies with composer if: matrix.composer-dependencies == 'highest' run: | composer update --no-ansi --no-interaction --no-progress --no-suggest composer show - name: Start MySQL run: sudo /etc/init.d/mysql start - name: Run functional tests run: | export typo3DatabaseName="typo3"; export typo3DatabaseHost="127.0.0.1"; export typo3DatabaseUsername="root"; export typo3DatabasePassword="root"; composer ci:tests:functional