on: [push, pull_request] name: CI jobs: php-cs-fixer: name: PHP-CS-Fixer runs-on: ubuntu-20.04 steps: - uses: actions/checkout@master - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.0' extensions: apcu - name: PHP-CS-Fixer uses: OskarStark/php-cs-fixer-ga@2.16.7 with: args: --diff --dry-run --allow-risky yes --stop-on-violation --using-cache=no --path-mode=intersection phpstan: name: PHPStan Static Analysis runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.0' extensions: apcu - name: Composer run: composer install - uses: php-actions/phpstan@v1 with: error_format: github args: --level 6 src phpunit: runs-on: ubuntu-20.04 name: Unit tests services: db: image: demostf/db env: POSTGRES_PASSWORD: test options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 5432:5432 steps: - uses: actions/checkout@v2 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: '8.0' extensions: apcu - name: Composer run: composer install - name: PHPUnit Tests uses: docker://icewind1991/php-alpine-apcu env: DB_PORT: 5432 DB_TYPE: pgsql DB_HOST: db DB_USERNAME: postgres DB_PASSWORD: test DB_DATABASE: postgres with: entrypoint: php args: ./vendor/bin/phpunit test api: runs-on: ubuntu-20.04 name: Integration tests services: db: image: demostf/db env: POSTGRES_PASSWORD: test options: --health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5 ports: - 5432:5432 api: image: demostf/api env: BASE_HOST: localhost DEMO_ROOT: /tmp DEMO_HOST: localhost DB_TYPE: pgsql DB_HOST: db DB_PORT: 5432 DB_DATABASE: postgres DB_USERNAME: postgres DB_PASSWORD: test APP_ROOT: https://localhost EDIT_SECRET: edit volumes: - src:/app nginx: image: demostf/api-nginx-test ports: - 80:80 steps: - uses: actions/checkout@v2 - name: copy code run: | docker run -v src:/data --name helper busybox true docker cp src helper:/data/ docker rm helper - env: DB_URL: postgres://postgres:test@db:5432/postgres BASE_URL: http://nginx EDIT_KEY: edit uses: docker://demostf/api-test