49 lines
1.5 KiB
YAML
49 lines
1.5 KiB
YAML
name: CI
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request: ~
|
|
workflow_dispatch: ~
|
|
|
|
jobs:
|
|
tests:
|
|
name: Tests
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v2
|
|
- name: Pull images
|
|
run: docker compose pull --ignore-pull-failures || true
|
|
- name: Start services
|
|
run: docker compose up --build -d
|
|
- name: Wait for services
|
|
run: |
|
|
while status="$(docker inspect --format="{{if .Config.Healthcheck}}{{print .State.Health.Status}}{{end}}" "$(docker compose ps -q php)")"; do
|
|
case $status in
|
|
starting) sleep 1;;
|
|
healthy) exit 0;;
|
|
unhealthy)
|
|
docker compose ps
|
|
docker compose logs
|
|
exit 1
|
|
;;
|
|
esac
|
|
done
|
|
exit 1
|
|
- name: Check HTTP reachability
|
|
run: curl -v -o /dev/null http://localhost
|
|
- name: Check API reachability
|
|
run: curl -vk -o /dev/null https://localhost
|
|
- name: Check PWA reachability
|
|
run: "curl -vk -o /dev/null -H 'Accept: text/html' https://localhost"
|
|
- name: Create test database
|
|
run: |
|
|
docker compose exec -T php bin/console -e test doctrine:database:create
|
|
docker compose exec -T php bin/console -e test doctrine:migrations:migrate --no-interaction
|
|
- name: PHPUnit
|
|
run: docker compose exec -T php bin/phpunit
|
|
- name: Doctrine Schema Validator
|
|
run: docker compose exec -T php bin/console doctrine:schema:validate --skip-sync
|