update cron expressions; 3 workflows/hr; 16 minute timeout

This commit is contained in:
Adam Wilson
2025-08-21 16:05:56 -06:00
parent 48819febf0
commit 117fa4f257
27 changed files with 73 additions and 26 deletions
+47
View File
@@ -0,0 +1,47 @@
# Test Run Strategy
Strategy for total 25 workflows:
- Run 3 workflows per hour, spaced 20 minutes apart (e.g., at :00, :20, :40).
- This gives a 5-minute buffer between jobs, assuming each job takes up to 15 minutes.
- With 3 jobs per hour, all 25 jobs will run in about 8 hours and 20 minutes.
- Each workflow will run multiple times per day (every 8h20m).
**Example cron schedule for 25 workflows:**
```
# Workflow 1: '0 0-23/8 * * *'
# Workflow 2: '20 0-23/8 * * *'
# Workflow 3: '40 0-23/8 * * *'
# Workflow 4: '0 1-23/8 * * *'
# Workflow 5: '20 1-23/8 * * *'
# Workflow 6: '40 1-23/8 * * *'
# Workflow 7: '0 2-23/8 * * *'
# Workflow 8: '20 2-23/8 * * *'
# Workflow 9: '40 2-23/8 * * *'
# Workflow 10: '0 3-23/8 * * *'
# Workflow 11: '20 3-23/8 * * *'
# Workflow 12: '40 3-23/8 * * *'
# Workflow 13: '0 4-23/8 * * *'
# Workflow 14: '20 4-23/8 * * *'
# Workflow 15: '40 4-23/8 * * *'
# Workflow 16: '0 5-23/8 * * *'
# Workflow 17: '20 5-23/8 * * *'
# Workflow 18: '40 5-23/8 * * *'
# Workflow 19: '0 6-23/8 * * *'
# Workflow 20: '20 6-23/8 * * *'
# Workflow 21: '40 6-23/8 * * *'
# Workflow 22: '0 7-23/8 * * *'
# Workflow 23: '20 7-23/8 * * *'
# Workflow 24: '40 7-23/8 * * *'
# Workflow 25: '0 8-23/8 * * *'
```
**How it works:**
- Each workflow runs every 8 hours and 20 minutes, starting at a different hour/minute offset.
- No more than 3 jobs run in any given hour.
- Theres a 20-minute gap between each job start.
@@ -2,7 +2,7 @@ name: '#0 (1-20)'
on:
workflow_dispatch:
schedule:
- cron: '0 0 * * *' # Starts at 00:00 UTC
- cron: '0 0-23/8 * * *'
jobs:
test-prompts-1-20:
@@ -2,7 +2,7 @@ name: '#0 (21-40)'
on:
workflow_dispatch:
schedule:
- cron: '57 0 * * *' # Starts at 00:57 UTC
- cron: '20 0-23/8 * * *'
jobs:
test-prompts-21-40:
@@ -2,7 +2,7 @@ name: '#0 (41-60)'
on:
workflow_dispatch:
schedule:
- cron: '54 1 * * *' # Starts at 01:54 UTC
- cron: '40 0-23/8 * * *'
jobs:
test-prompts-41-60:
@@ -2,7 +2,7 @@ name: '#0 (61-80)'
on:
workflow_dispatch:
schedule:
- cron: '51 2 * * *' # Starts at 02:51 UTC
- cron: '0 1-23/8 * * *'
jobs:
test-prompts-61-80:
@@ -2,7 +2,7 @@ name: '#0 (81-100)'
on:
workflow_dispatch:
schedule:
- cron: '48 3 * * *' # Starts at 03:48 UTC
- cron: '20 1-23/8 * * *'
jobs:
test-prompts-81-100:
@@ -2,7 +2,7 @@ name: '#1 (1-20)'
on:
workflow_dispatch:
schedule:
- cron: '45 4 * * *' # Starts at 04:45 UTC
- cron: '40 1-23/8 * * *'
jobs:
test-prompts-1-20:
@@ -2,7 +2,7 @@ name: '#1 (21-40)'
on:
workflow_dispatch:
schedule:
- cron: '42 5 * * *' # Starts at 05:42 UTC
- cron: '0 2-23/8 * * *'
jobs:
test-prompts-21-40:
@@ -2,7 +2,7 @@ name: '#1 (41-60)'
on:
workflow_dispatch:
schedule:
- cron: '39 6 * * *' # Starts at 06:39 UTC
- cron: '20 2-23/8 * * *'
jobs:
test-prompts-41-60:
@@ -2,7 +2,7 @@ name: '#1 (61-80)'
on:
workflow_dispatch:
schedule:
- cron: '36 7 * * *' # Starts at 07:36 UTC
- cron: '40 2-23/8 * * *'
jobs:
test-prompts-61-80:
@@ -2,7 +2,7 @@ name: '#1 (81-100)'
on:
workflow_dispatch:
schedule:
- cron: '33 8 * * *' # Starts at 08:33 UTC
- cron: '0 3-23/8 * * *'
jobs:
test-prompts-81-100:
@@ -2,7 +2,7 @@ name: '#2 (1-20)'
on:
workflow_dispatch:
schedule:
- cron: '30 9 * * *' # Starts at 09:30 UTC
- cron: '20 3-23/8 * * *'
jobs:
test-prompts-1-20:
@@ -2,7 +2,7 @@ name: '#2 (21-40)'
on:
workflow_dispatch:
schedule:
- cron: '27 10 * * *' # Starts at 10:27 UTC
- cron: '40 3-23/8 * * *'
jobs:
test-prompts-21-40:
@@ -2,7 +2,7 @@ name: '#2 (41-60)'
on:
workflow_dispatch:
schedule:
- cron: '24 11 * * *' # Starts at 11:24 UTC
- cron: '0 4-23/8 * * *'
jobs:
test-prompts-41-60:
@@ -2,7 +2,7 @@ name: '#2 (61-80)'
on:
workflow_dispatch:
schedule:
- cron: '21 12 * * *' # Starts at 12:21 UTC
- cron: '20 4-23/8 * * *'
jobs:
test-prompts-61-80:
@@ -2,7 +2,7 @@ name: '#2 (81-100)'
on:
workflow_dispatch:
schedule:
- cron: '18 13 * * *' # Starts at 13:18 UTC
- cron: '40 4-23/8 * * *'
jobs:
test-prompts-81-100:
@@ -2,7 +2,7 @@ name: '#3 (1-20)'
on:
workflow_dispatch:
schedule:
- cron: '15 14 * * *' # Starts at 14:15 UTC
- cron: '0 5-23/8 * * *'
jobs:
test-prompts-1-20:
@@ -2,7 +2,7 @@ name: '#3 (21-40)'
on:
workflow_dispatch:
schedule:
- cron: '12 15 * * *' # Starts at 15:12 UTC
- cron: '20 5-23/8 * * *'
jobs:
test-prompts-21-40:
@@ -2,7 +2,7 @@ name: '#3 (41-60)'
on:
workflow_dispatch:
schedule:
- cron: '9 16 * * *' # Starts at 16:09 UTC
- cron: '40 5-23/8 * * *'
jobs:
test-prompts-41-60:
@@ -2,7 +2,7 @@ name: '#3 (61-80)'
on:
workflow_dispatch:
schedule:
- cron: '6 17 * * *' # Starts at 17:06 UTC
- cron: '0 6-23/8 * * *'
jobs:
test-prompts-61-80:
@@ -2,7 +2,7 @@ name: '#3 (81-100)'
on:
workflow_dispatch:
schedule:
- cron: '3 18 * * *' # Starts at 18:03 UTC
- cron: '20 6-23/8 * * *'
jobs:
test-prompts-81-100:
@@ -2,7 +2,7 @@ name: '#4 (1-20)'
on:
workflow_dispatch:
schedule:
- cron: '0 19 * * *' # Starts at 19:00 UTC
- cron: '40 6-23/8 * * *'
jobs:
test-prompts-1-20:
@@ -2,7 +2,7 @@ name: '#4 (21-40)'
on:
workflow_dispatch:
schedule:
- cron: '57 19 * * *' # Starts at 19:57 UTC
- cron: '0 7-23/8 * * *'
jobs:
test-prompts-21-40:
@@ -2,7 +2,7 @@ name: '#4 (41-60)'
on:
workflow_dispatch:
schedule:
- cron: '54 20 * * *' # Starts at 20:54 UTC
- cron: '20 7-23/8 * * *'
jobs:
test-prompts-41-60:
@@ -2,7 +2,7 @@ name: '#4 (61-80)'
on:
workflow_dispatch:
schedule:
- cron: '51 21 * * *' # Starts at 21:51 UTC
- cron: '40 7-23/8 * * *'
jobs:
test-prompts-61-80:
@@ -2,7 +2,7 @@ name: '#4 (81-100)'
on:
workflow_dispatch:
schedule:
- cron: '48 22 * * *' # Starts at 22:48 UTC
- cron: '0 8-23/8 * * *'
jobs:
test-prompts-81-100:
+1 -1
View File
@@ -26,7 +26,7 @@ on:
jobs:
test:
runs-on: ubuntu-latest
timeout-minutes: 55 # Set max runtime for each job
timeout-minutes: 16 # Set max runtime for each job
continue-on-error: true
strategy:
# Always 10 batches per workflow