name: Automation Tests

on:
  push:
    branches: [ develop, feature/** ]
  pull_request:
    branches: [ develop ]
  schedule:
    - cron: '0 0 * * *'
  workflow_dispatch:

jobs:
  automation-tests:

    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@v2
    - name: Setup .NET
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: 6.0.x
    - uses: actions/setup-node@v2
      with:
        node-version: '18'

    - uses: actions/cache@v2
      with:
        path: |
          '**/node_modules'
          '/home/runner/.cache/Cypress'
        key: ${{ runner.os }}-modules-${{ hashFiles('**/yarn.lock') }}

    - name: Install Frontend Deps
      run: yarn --cwd ./src/Ombi/ClientApp install

    - name: Build Frontend
      run: yarn --cwd ./src/Ombi/ClientApp build

    - name: Build Docker Image
      run: docker build -t ombi src/

    - name: Run Docker Image
      run: nohup docker run --rm -p 5000:5000 ombi &

    # - name: Run Wiremock Plex
    #   run: nohup docker run -it --rm -p 32400:8080 --name wiremock wiremock/wiremock:2.35.0

    - name: Sleep for server to start
      run: sleep 20

    # - name: Start Frontend
    #   run: |
    #       nohup yarn --cwd ./src/Ombi/ClientApp start &

    # - name: Install Automation Deps
    #   run: yarn --cwd ./tests install

    # - name: Start Backend
    #   run: |
    #       nohup dotnet run --project ./src/Ombi -- --host http://*:3577 &

    - name: Cypress Tests
      uses: cypress-io/github-action@v2.8.2
      with:
        record: true
        browser: chrome
        headless: true
        working-directory: tests
        wait-on: http://localhost:5000/
        # 10 minutes
        wait-on-timeout: 600
      env:
        CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
