ebs/.github/workflows/ci.yml
2025-08-27 16:32:37 +01:00

57 lines
2.8 KiB
YAML

name: CI
on:
push:
jobs:
build:
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
name: Docker build
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Pull images
run: docker compose pull
- 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) exit 1;;
esac
done
exit 1
- name: Check HTTP reachability
run: curl http://localhost
- name: Check HTTPS reachability
run: curl -k https://localhost
- name: Test manifest file
run: mkdir -p public/build; docker compose exec -T php echo "{}" > public/build/manifest.json
- name: Create test database
run: docker compose exec -T php bin/console -e test doctrine:database:create
- name: Create database schema
run: docker compose exec -T php bin/console -e test doctrine:migrations:migrate
- name: Setup Messenger
run: docker compose exec -T php bin/console -e test messenger:setup-transports
- name: Initializing Fixtures
run: docker compose exec -T php bin/console -e test hautelook:fixtures:load --no-interaction --no-bundles
- name: Meilisearch indexation
run: docker compose exec -T php bin/console -e test app:index-products
- 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
- name: PHP CS Fixer
run: docker compose exec -T php sh -c './vendor/bin/php-cs-fixer fix --allow-risky=yes --dry-run --format=checkstyle | ./vendor/bin/cs2pr'
- name: PHPStan
run: docker compose exec -T php ./vendor/bin/phpstan analyse --memory-limit=-1 --error-format=github
- name: Twig Linter
run: docker compose exec -T php ./vendor/bin/twigcs templates/ --exclude vendor
- name: Install eslint
run: docker run --rm -w "/usr/app" -v "${PWD}":/usr/app gmolaire/yarn yarn add eslint@8.57.0
- name: Run eslint on javascript files
run: docker run --rm -w "/usr/app" -v "${PWD}":/usr/app gmolaire/yarn yarn lint