name: Playwright Tests on: push: branches: [ main ] pull_request: branches: [ main ] jobs: tests_e2e: name: Run end-to-end tests timeout-minutes: 60 runs-on: ubuntu-latest env: BINGAI_TOKEN: ${{ secrets.BINGAI_TOKEN }} CHATGPT_TOKEN: ${{ secrets.CHATGPT_TOKEN }} MONGO_URI: ${{ secrets.MONGO_URI }} OPENAI_KEY: ${{ secrets.OPENAI_KEY }} steps: - uses: actions/checkout@v3 - uses: actions/setup-node@v3 with: node-version: 18 cache: 'npm' - name: Cache API dependencies uses: actions/cache@v2 with: path: ./api/node_modules key: api-${{ runner.os }}-node-${{ hashFiles('./api/package-lock.json') }} restore-keys: | api-${{ runner.os }}-node- - name: Install API dependencies working-directory: ./api run: npm ci - name: Cache Client dependencies uses: actions/cache@v2 with: path: ./client/node_modules key: client-${{ runner.os }}-node-${{ hashFiles('./client/package-lock.json') }} restore-keys: | client-${{ runner.os }}-node- - name: Install Client dependencies working-directory: ./client run: npm ci - name: Build Client working-directory: ./client run: npm run build - name: Install global dependencies run: npm ci - name: Install Playwright Browsers run: npx playwright install --with-deps - name: Start API server working-directory: ./api run: | npm run start & sleep 10 # Wait for the server to start - name: Run Playwright tests run: npx playwright test - uses: actions/upload-artifact@v3 if: always() with: name: playwright-report path: e2e/playwright-report/ retention-days: 30