Shopify / Shopify/shipit-engine
Keeping master always green & Emergency deployments
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
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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