name: E2E tests on: workflow_dispatch: schedule: # Runs at 2 am every day - cron: '0 2 * * *' env: YARN_IGNORE_NODE: 1 concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: # NPM install is done in a separate job and cached to speed up the following jobs. build_and_test: name: Build & Test runs-on: ubuntu-22.04 strategy: fail-fast: false matrix: storage: [ LOCAL, MEMORY, PLATFORM ] steps: - name: Checkout repository uses: actions/checkout@v7 - name: Use Node.js 24 uses: actions/setup-node@v6 with: node-version: 24 package-manager-cache: false - name: Enable corepack run: | corepack enable corepack prepare yarn@stable --activate - name: Activate cache for Node.js 24 uses: actions/setup-node@v6 with: cache: 'yarn' - name: Turbo cache id: turbo-cache uses: actions/cache@v6 with: path: .turbo key: turbo-${{ github.job }}-${{ github.ref_name }}-${{ github.sha }} restore-keys: | turbo-${{ github.job }}-${{ github.ref_name }}- - name: Setup Apify CLI uses: apify/setup-apify-cli-action@main with: version: 'beta' token: ${{ secrets.APIFY_SCRAPER_TESTS_API_TOKEN }} - name: Add Apify secrets for E2E tests run: apify secrets add anthropicApiKey ${{ secrets.ANTHROPIC_API_KEY }} - name: Install Dependencies run: yarn - name: Cache Playwright browsers if: (matrix.storage != 'PLATFORM') uses: actions/cache@v6 with: path: ~/.cache/ms-playwright key: playwright-${{ runner.os }}-${{ hashFiles('**/yarn.lock') }} restore-keys: | playwright-${{ runner.os }}- - name: Install Playwright Dependencies if: (matrix.storage != 'PLATFORM') timeout-minutes: 10 run: yarn playwright install --with-deps - name: Build run: yarn ci:build - name: Test with storage ${{ matrix.storage }} run: yarn test:e2e env: STORAGE_IMPLEMENTATION: ${{ matrix.storage }} APIFY_HTTPBIN_TOKEN: ${{ secrets.APIFY_HTTPBIN_TOKEN }} ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }} GITHUB_TOKEN: ${{ github.token }}