Skip to content

ONE QUESTION. YOUR REASONING.

Design GitHub Actions

Design a CI/CD system like GitHub Actions: a push to a repository starts the workflows defined in it, jobs run on a pool of machines, and developers watch the logs and results.

System designInfrastructure and platformSeniorStaff

YOUR BRIEF

What to work through

Work through gitHub Actions as a spoken system design interview. Start by clarifying the scope, sketch a working design and explain the trade-offs behind your choices.

  • A push, pull request, tag or schedule starts the workflows defined in YAML files in the repository
  • Each run splits into jobs with dependencies; each job runs on a matching runner, hosted or the customer’s own
  • Developers watch live logs, and download logs and artifacts after the run
  • Retry, cancel and time out runs and jobs, and report status back to the commit or pull request
  • Cache dependencies and build outputs between runs

BEFORE YOU START

Constraints to discuss

  • Tens to hundreds of thousands of runs at once across many tenants
  • Fair scheduling: one organization queuing 10,000 jobs does not starve one queuing 5
  • Strong isolation: one workflow cannot read another tenant’s secrets or files
  • A typical pull request reaches a deploy decision in tens of minutes
  • A push event is never lost, and never starts the same run twice
Need a starting point?

Watch for these common gaps as you prepare:

  • Running workflows inside the webhook handler, so a slow build blocks event intake
  • One global first-in, first-out queue, so one big tenant starves everyone
  • Keeping job state on the runner, so a lost machine loses the job
  • Forgetting that a retried job runs again, deploy steps included
  • Sending logs and artifacts through the scheduler or the database
  • Shared runners that keep files or secrets between jobs
Read: System design questions and who asks them

Why this question is in the collection

These sources connect the problem to company interview reports or preparation guides. They do not guarantee what a company will ask you.

KEEP GOING

Your next question

Storage, files and linksDesign BitlyInfrastructure and platformDesign a rate limiterInfrastructure and platformDesign an A/B testing platformInfrastructure and platformDesign an ad click aggregator
Browse the collection
01

Pick a question

Read the brief and choose what you want to work on.

02

Talk it through

Explain your thinking. Respond to follow-ups. Draw when a design needs it.

03

Find your next improvement

Use the feedback from your interview to decide what to practise next.