name: E2E tests on: push: branches: ["main"] pull_request: branches: ["main"] schedule: - cron: "0 * * * *" workflow_dispatch: concurrency: group: e2e-tests cancel-in-progress: false env: RUSTFLAGS: "-Dwarnings" E2E_ARTIFACTS: logs/e2e E2E_WORKERS: 8 jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - name: Setup Node.js environment uses: actions/setup-node@v4 with: node-version: "25.x" - name: Install frontend dependencies working-directory: frontend run: npm ci - name: Setup Rust toolchain uses: dtolnay/rust-toolchain@stable with: toolchain: "1.94.0" components: clippy, rustfmt - name: Expand scheduled fuzz campaigns if: github.event_name == 'schedule' run: echo "E2E_ITERATIONS=500" >> "$GITHUB_ENV" - name: E2E tests run: scripts/e2e.sh - name: Upload e2e logs if: always() uses: actions/upload-artifact@v4 with: name: e2e-logs path: ${{ env.E2E_ARTIFACTS }} retention-days: 30