Collaboration Guidelines
Guidelines for collaborating on CI/CD, build automation, release processes, and monorepo infrastructure. These practices help ensure smooth collaboration across all teams.
Core Principles
- You own your domain workflows – Teams are encouraged to design their own CI/CD logic with support from the Monorepo DevOps team when needed.
- Accountability follows ownership – The requesting team owns results, failures, and communication.
- No surprises – Reach out to the Monorepo DevOps team before promising timelines, blocking behavior, or release changes.
- Release changes require alignment – Any change to the monorepo release train must be explicitly discussed and written down.
- Clarity first – Vague or underspecified requests will pause until scope, ownership, and impact are clear.
💰 Golden rule: Heads-up early → decide together → own independently.
👉 Heads-up early, decide together, own independently.
When to Reach Out for Support
✅ Must Involve (Required)
- Changes to release train behavior or gates (RCs, final artifacts, quality checks)
- New blocking in CI steps
- Changes to shared infra (runners, artifact storage, shared workflows/templates)
- External integrations that affect releases
- Versioning/tagging/release orchestration changes
⚠️ Should Involve (Recommended)
- New workflows that follow or extend existing monorepo patterns
- Unclear placement (RC vs final artifact vs post-release)
- Unclear blocking vs non-blocking behavior
- Performance-sensitive changes
- Cross-team dependency workflows
✋ When in Doubt: Ask early in #ask-monorepo-devops. The Monorepo DevOps team is here to help! A 5-minute chat can save hours.
Heads-Up Pattern (Start Here) 📣
Use this to make requests scoping-friendly and reviewable.
📢 Align early, surface constraints, and set expectations on ownership.
Problem & Goal
- What: Add E2E smoke tests for C8 orchestration workflows
- Why: Catch cross-component issues before customer-facing releases
- Success criteria: E2E suite runs automatically on RCs; failures are visible and actionable; issues caught before release
Placement & Behavior
- Where in the flow: After RC build, before manual QA starts
- Blocking or non-blocking: Blocking — RC progression pauses if tests fail
- Failure handling: QA triages failures, communicates status; define what triggers a new RC vs re-run
Technical Scope
- Inputs: RC build artifact/version, environment details, test config
- Outputs: Test report + pass/fail signal, logs/artifacts, notification to Slack/dashboard
- Dependencies: Existing RC pipeline + orchestration environment; any required secrets/services
- Performance considerations: Expected runtime, parallelism needs, runner requirements
Ownership & Maintenance
- Owner/DRI: QA team (test logic + result communication)
- Maintenance plan: Who updates tests when components change; deprecation/disable path if flaky
Risk & Rollback
- Risks / failure modes: Flakiness causing RC stalls; environment instability; long runtime
- Rollback/disable strategy: Feature flag / toggle to temporarily switch to non-blocking or skip
- Monitoring/visibility: Slack alerts, dashboard, run history
Timeline & Coordination
- Timeline: Target v2.1 in ~3 weeks
- Questions for Monorepo DevOps team: Best way to hook into the existing monorepo release process?
Code Review, Integration & Independence 💻
When the Monorepo DevOps Team Reviews
- Shared CI infrastructure/templates changes
- Release orchestration/train behavior changes
- Integration points that affect cadence, artifacts, or shared patterns
- Performance/reliability risks
- Loop in the Monorepo DevOps team for scoping + review via #epo-reviews when it could affect release cadence or shared CI patterns.
All Teams Are Encouraged To 🏅
- Design and evolve your own CI/CD workflows
- Use existing monorepo patterns and integration points
- Communicate results and reasoning clearly in Slack / issues
- Iterate independently as long as you don't:
- Change shared infrastructure
- Change release train behavior
- Impact other teams without coordination
When any of those become true → reach out to the Monorepo DevOps team for collaboration.
Quick Reference
Support Contacts
- Slack: #ask-monorepo-devops (Monorepo DevOps team)
- Escalation: Engineering manager – see Monorepo DevOps Team page for current EM/DRI details.
Key Documentation
- CI Pipeline Architecture: CI & Automation and C8 Monorepo CI Processes.
- Release Process Guide: Release Process.
- Performance Guidelines: Monorepo CI Health KPIs & Impact.
Templates & Examples
- CI Workflow Template: See patterns and examples in CI & Automation.
- Integration Request Template: Use the Heads-Up Pattern section on this page together with the CI/Release docs above when opening new GitHub issues.
FAQ ❓
Q: How early should I reach out? A: As soon as you have a rough idea that might affect the release process. Better to ask too early than too late.
Q: What if I'm not sure about ownership boundaries? A: Use the heads-up template to start the conversation. We'll work together to clarify ownership.
Q: What if my change seems small, but I'm not sure? A: Use the "When in Doubt" rule – a quick Slack message takes 30 seconds.
Q: Can I just implement and ask for a review later? A: Only if your changes are completely self-contained. If there's any doubt, heads-up first.
Q: What if timelines are tight? A: Communicate the timeline pressure early. We can often find faster paths when we understand the constraints.
Q: How do I know if my change is blocking or non-blocking? A: If failure prevents the release from proceeding, it's blocking. When in doubt, start with non-blocking and justify why blocking is necessary.