name: Test services db, api, web on: pull_request: paths: - 'frontend/**' branches: - 'main' push: branches: - 'main' paths: - 'frontend/**' workflow_dispatch: jobs: ci-test: runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@v3 - name: Set env run: cp .env.example .env - name: Pull Docker images run: docker-compose pull db api web - name: Build Docker images run: docker-compose -f docker-compose.dev.yml -f docker-compose.yml build web_tests - name: Run PostgSail Web test # Environment variables env: # The hostname used to communicate with the PostgreSQL service container PGHOST: localhost PGPORT: 5432 PGDATABASE: signalk PGUSER: username PGPASSWORD: password run: | set -eu source .env docker-compose stop || true docker-compose rm || true docker-compose up -d db && sleep 15 && docker-compose up -d api && sleep 5 docker-compose ps -a echo "Test PostgSail Web Unit Test" docker-compose up -d web_dev && sleep 60 docker-compose ps -a curl http://localhost:8080/ docker compose up docker compose -f docker-compose.dev.yml -f docker-compose.yml up web_tests --abort-on-container-exit --exit-code-from web_tests if [ $? != 0 ]; then echo "Error running frontend-tests" exit 1 fi - name: Show the logs if: always() run: | docker-compose logs