Q: Your GitHub Actions workflow is running expensive jobs on every push to every branch, running up costs. How do you optimize?
Use conditional triggers and filters:
#CI/CD #GitHub Actions #L2 #DevOps #Automation #Pipelines
🎙️ Candidate Opening & Architectural Context
""In enterprise CI/CD, you cannot rely on manual interventions; every rollback and promotion must be declarative. When addressing this question, I walk the interviewer through our production incident runbook: isolating the blast radius, checking diagnostic logs and metrics, and applying a safe fix.""
Advertisement
🛠️ Production Runbook & Step-by-Step Resolution
1️⃣
Initial Diagnostics & Root Cause Analysis
Use conditional triggers and filters:
- Use
concurrencyto cancel in-progress runs when new commit comes: - Cache dependencies aggressively (
actions/cache). - Use
if:conditions on jobs — skip expensive tests on doc-only changes.
2️⃣
Remediation & Permanent Safeguards
Also:
on:
push:
branches: [main, release/*] # only specific branches
paths:
- 'src/**' # only when source files change
- 'package.json' # or dependencies
pull_request:
types: [opened, synchronize] # not all PR events
- Self-hosted runners for heavy builds (cheaper than GitHub-hosted for large teams).
💡 The Senior SRE Gold Nugget (Key Architectural Takeaway)
"Pro-Tip: Use concurrency to cancel in-progress runs when new commit comes:."
⚡ 60-Second Elevator Pitch Talking Points
- Use concurrency to cancel in-progress runs when new commit comes:
- Cache dependencies aggressively (actions/cache).
- Use if: conditions on jobs — skip expensive tests on doc-only changes.
Advertisement