name: Mantra Monorepo CI

on: 
  push:

jobs:
  test:
    runs-on: ubuntu-latest

    steps:
    - name: Checkout code
      uses: actions/checkout@v3

    - name: Set up Docker Buildx
      uses: docker/setup-buildx-action@v1

    - name: Build Docker image
      uses: docker/build-push-action@v2
      with:
        context: ./mantra-game
        push: false
        load: true
        tags: mantra:test

    - name: Run tests
      run: |
        docker run --rm mantra:test npm test

    - name: Upload coverage reports to Codecov
      uses: codecov/codecov-action@v3
      env:
        CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}