mirror of
https://codeberg.org/demostf/api.git
synced 2026-06-03 18:04:08 +02:00
117 lines
2.9 KiB
YAML
117 lines
2.9 KiB
YAML
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
|
|
- name: phpstan
|
|
run: |
|
|
./vendor/bin/phpstan analyse --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
|