name: Test Patches
on:
  workflow_dispatch:
  schedule:
    # Every day at midnight
    - cron: 0 0 * * *

jobs:
  TestPlugins:
    name: Test Patches
    if: github.repository == 'Equicord/Equicord'
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v4
        if: ${{ github.event_name == 'schedule' }}

      - uses: actions/checkout@v4
        if: ${{ github.event_name == 'workflow_dispatch' }}

      - uses: pnpm/action-setup@v3 # Install pnpm using packageManager key in package.json

      - name: Use Node.js 20
        uses: actions/setup-node@v4
        with:
          node-version: 20
          cache: "pnpm"

      - name: Install dependencies
        run: |
          pnpm install --frozen-lockfile

      - name: Install Google Chrome
        id: setup-chrome
        uses: browser-actions/setup-chrome@82b9ce628cc5595478a9ebadc480958a36457dc2
        with:
          chrome-version: stable

      - name: Build Equicord Reporter Version
        run: pnpm buildReporter

      - name: Create Report
        timeout-minutes: 10
        run: |
          export PATH="$PWD/node_modules/.bin:$PATH"
          export CHROMIUM_BIN=${{ steps.setup-chrome.outputs.chrome-path }}

          esbuild scripts/generateReport.ts > dist/report.mjs
          node dist/report.mjs >> $GITHUB_STEP_SUMMARY
        env:
          DISCORD_TOKEN: ${{ secrets.DTOKEN }}
          DISCORD_WEBHOOK: ${{ secrets.WEBHOOK }}

      - name: Create Report (Canary)
        timeout-minutes: 10
        if: success() || failure() # even run if previous one failed
        run: |
          export PATH="$PWD/node_modules/.bin:$PATH"
          export CHROMIUM_BIN=${{ steps.setup-chrome.outputs.chrome-path }}
          export USE_CANARY=true

          esbuild scripts/generateReport.ts > dist/report.mjs
          node dist/report.mjs >> $GITHUB_STEP_SUMMARY
        env:
          DISCORD_TOKEN: ${{ secrets.DTOKEN }}
          DISCORD_WEBHOOK: ${{ secrets.WEBHOOK }}
