Shopify / Shopify/shipit-engine

Keeping master always green & Emergency deployments

Open
#1,116 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Ruby
Stars
1.5k
Forks
154
Avg merge
2h 26m
Merged PRs (30d)
3

Description

Description

I'm evaluating shipit for my organization and there are several points that we would like to better understand and probably customize for everyone to use.

Master always green

Problem: Once a PR is enqueued & passed its checks, breaking changes can be added to the stack's branch.
Suggestion:

  • Merge all pending PRs into a release branch.
  • Trigger a CI process on the newly created release branch.
  • If CI fails, reject all PRs.
  • Otherwise, Merge the release branch into the stack`s branch.

Such approach will guarantee that our stack branch is always green and the process will minimize bottlenecks caused by long CI processes (Unit test, E2E test, Static code analysis/Linter, etc) by running it on all PRs at once.

Single/Emergency deployments

In extreme cases, developers required to deploy an individual PR due to its complexity or in an attempt to fix a critical bug on production.

Suggestion:
Developers can specify such meta-data on their PR as a comment, for example

deploy:single // Merge & deploy the given PR individually
deploy:emergency // Similar to deploy:single + Cancel all ongoing Stack processes & start immediately

I would like to get some pointers on how to get the job done or alternatives to achieve our goals
Please advise,
Thanks!

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No files, tests, or entry points are named. Start by mapping the existing stack and PR deployment flow, then assess the proposed release-branch CI and single/emergency deployment metadata; done would require an agreed implementation scope and verified behavior for both workflows.

Written by the indexing model from the issue text.

Assessment

Tech stack
ruby
Domain
devops, release
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.