name: Test services db, grafana

on:
  pull_request:
    paths:
      - 'grafana/**'
    branches:
      - 'main'
  push:
    branches:
      - 'main'
    paths:
      - 'grafana/**'
    tags:
      - "*"
  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 app

      - name: Run PostgSail Grafana 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 30
          docker-compose ps -a
          echo "Test PostgSail Grafana Unit Test"
          docker-compose up -d app && sleep 5
          docker-compose ps -a
          curl http://localhost:3001/
      - name: Show the logs
        if: always()
        run: |
          docker-compose logs