Edit file File name : testing.yaml Content :name: Tests on: pull_request: null push: branches: - master jobs: integration: runs-on: ubuntu-latest services: mysql: image: mysql:5.7 env: MYSQL_ALLOW_EMPTY_PASSWORD: false MYSQL_ROOT_PASSWORD: kimai MYSQL_DATABASE: kimai ports: - 3306/tcp options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3 strategy: matrix: php: ['7.4', '8.0', '8.1'] name: Integration (${{ matrix.php }}) steps: - name: Clone Kimai uses: actions/checkout@v2 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} coverage: none extensions: mbstring, xml, ctype, iconv, intl, mysql, zip, gd, ldap tools: cs2pr:1.1.0 - name: Determine composer cache directory id: composer-cache run: "echo \"::set-output name=directory::$(composer config cache-dir)\"" - name: Cache Composer dependencies uses: actions/cache@v2 with: path: "${{ steps.composer-cache.outputs.directory }}" key: ${{ runner.os }}-${{ matrix.php }}-${{ hashFiles('**/composer.lock') }} - name: Install dependencies run: composer install - name: Validate Composer run: composer validate --strict - name: Warmup cache for PHPStan run: APP_ENV=dev bin/console kimai:reload -n - name: Check codestyles run: vendor/bin/php-cs-fixer fix --dry-run --verbose --config=.php-cs-fixer.dist.php --using-cache=no --show-progress=none --format=checkstyle | cs2pr - name: Run PHPStan on Codebase run: vendor/bin/phpstan analyse src -c phpstan.neon --level=5 --no-progress --error-format=checkstyle | cs2pr - name: Run PHPStan on Tests run: vendor/bin/phpstan analyse tests -c tests/phpstan.neon --level=5 --no-progress --error-format=checkstyle | cs2pr - name: Lint codebase run: composer linting - name: Install LDAP package run: composer require laminas/laminas-ldap - name: Setup problem matchers for PHPUnit run: echo "::add-matcher::${{ runner.tool_cache }}/phpunit.json" - name: Run unit tests run: composer kimai:tests-unit env: DATABASE_URL: mysql://root:kimai@127.0.0.1:${{ job.services.mysql.ports['3306'] }}/kimai?serverVersion=5.7 APP_ENV: dev MAILER_URL: null://localhost - name: Run integration tests run: composer kimai:tests-integration env: DATABASE_URL: mysql://root:kimai@127.0.0.1:${{ job.services.mysql.ports['3306'] }}/kimai?serverVersion=5.7 APP_ENV: dev MAILER_URL: null://localhost - name: Run migrations on MySQL run: | bin/console doctrine:database:drop --if-exists --force -n bin/console doctrine:database:create --if-not-exists -n bin/console doctrine:migrations:migrate -n bin/console doctrine:migrations:migrate first -n env: DATABASE_URL: mysql://root:kimai@127.0.0.1:${{ job.services.mysql.ports['3306'] }}/kimai?serverVersion=5.7 APP_ENV: dev MAILER_URL: null://localhost Save