* bump version * fix invisible class on labels * fail safe removal of foreign key * check if optional form field exists before accessing it * silently ignore stopped timesheets * prevent colliding parameter names * make sure decimal duration is always rendered with two decimals * simplify translation * fix #2751 ANSI_QUOTES * rename composer task * fix billable statistic rates * added missing translation for export
86 lines
3.3 KiB
YAML
86 lines
3.3 KiB
YAML
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.3', '7.4', '8.0']
|
|
|
|
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: Install dependencies
|
|
uses: ramsey/composer-install@v1
|
|
|
|
- name: Validate Composer
|
|
run: composer validate --strict
|
|
|
|
- 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
|