name: Compiler Explorer Frontend Testing

on: [push]
jobs:
  cypress-run:
    if: github.repository_owner == 'compiler-explorer'
    runs-on: ubuntu-22.04
    strategy:
      matrix:
        browser: ['chrome']
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      - name: Use Node.js 22.x
        uses: actions/setup-node@v4
        with:
          node-version: 22.x
          check-latest: true
          cache: npm
      - name: Install prerequisites
        run: make prereqs
      - name: Setup Firefox
        uses: browser-actions/setup-firefox@v1
        if: matrix.browser == 'firefox'
      - name: Setup Chrome
        uses: browser-actions/setup-chrome@v1
        if: matrix.browser == 'chrome'
      - name: Cypress run
        uses: cypress-io/github-action@v6
        with:
          start: npm run dev -- --language c++ --no-local
          wait-on: 'http://localhost:10240'
          wait-on-timeout: 120
          config: screenshotOnRunFailure=true,video=false
          browser: ${{ matrix.browser }}
      - name: Upload screenshots on failure
        uses: actions/upload-artifact@v4
        if: failure()
        with:
          name: cypress-screenshots
          path: cypress/screenshots
