Diffinery

codician/diffinerypublic

Open-source, agent-first GitHub and GitHub Actions alternative that runs on your own Cloudflare account: git hosting, pull requests, code review and drop-in GitHub Actions YAML on Workers, Durable Objects, R2 and Containers.

E2E: real histories and large pushes in separate shards (#178)

On Diffinery's runners the six large tests together still ran past node's 600 s per-file timeout (jquery alone took 192 s), so the large-push test was cancelled on f24bc68. The real histories now have a shard of their own with a 900 s file timeout, and the large file and large push tests another.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_016yhgAu6oKfqes812Yd4qjo
Canberk Demirci authored · GitHub committed signed1 parent e9ed630commit 87cf8feea961547cca23527b8179b51c4cce160aBrowse files
1 file changed+11−6
modified.github/workflows/e2e.yml+11−6View file
@@ -14,7 +14,7 @@
1414
1515 jobs:
1616 # The suite in parallel shards of about the same length: the git, pull request and
17- # Actions file split in two (its large pushes on their own), agents, security, and
17+ # Actions file split in three (its real histories and large pushes on their own), agents, security, and
1818 # every other test/e2e/*.test.mjs file (so a new file runs without editing this).
1919 # Only the last shard needs a browser (passkeys).
2020 e2e:
@@ -27,7 +27,9 @@
2727 include:
2828 - name: git, PRs, Actions
2929 shard: core
30- - name: large pushes, real histories
30+ - name: real histories
31+ shard: histories
32+ - name: large pushes
3133 shard: large
3234 - name: agent reviews, tasks, Today
3335 shard: agents
@@ -64,12 +66,15 @@
6466 core='/e2e\.test\.mjs$'
6567 agents='/(agentic|review|tasks)\.test\.mjs$'
6668 security='/(security|status)\.test\.mjs$'
67- # The core file's large pushes and real histories take minutes each: their own shard, so
68- # neither half runs into the per-file timeout.
69- large='^(real histories|large files|large pushes):'
69+ # The core file's real histories and large pushes take minutes each (jquery's alone 2 to 3 on
70+ # Diffinery's runners): two shards of their own, so no part of the file runs into node's
71+ # per-file timeout, which is the --test-timeout here.
72+ histories='^real histories:'
73+ large='^(large files|large pushes):'
7074 opts=(--test-timeout=600000)
7175 case "${{ matrix.shard }}" in
72- core) files=$(ls test/e2e/*.test.mjs | grep -E "$core"); opts+=(--test-skip-pattern="$large") ;;
76+ core) files=$(ls test/e2e/*.test.mjs | grep -E "$core"); opts+=(--test-skip-pattern="$histories" --test-skip-pattern="$large") ;;
77+ histories) files=$(ls test/e2e/*.test.mjs | grep -E "$core"); opts=(--test-timeout=900000 --test-name-pattern="$histories") ;;
7378 large) files=$(ls test/e2e/*.test.mjs | grep -E "$core"); opts+=(--test-name-pattern="$large") ;;
7479 agents) files=$(ls test/e2e/*.test.mjs | grep -E "$agents") ;;
7580 security) files=$(ls test/e2e/*.test.mjs | grep -E "$security") ;;