Shopify / Shopify/shipit-engine
Continuous delivery can schedule deployments without a DeploySpec
Nobody has claimed this yet.
- Dominant language
- Ruby
- Stars
- 1.5k
- Forks
- 154
- Avg merge
- 2h 26m
- Merged PRs (30d)
- 3
Description
If a stack is provisioned with continuous delivery enabled, or continuous delivery is enabled shortly thereafter, it's quite possible for the continuous delivery routine to run on the stack prior to the DeploySpec being cached, particularly when the git repo is large and slow to clone.
This results not only in the max_commits default value being used and a deployment of a potentially very old commit being triggered, but there's no guarantee that the deployment job will wait for a DeploySpec, and it may run using the default with potentially very poor results.
Our proposal is for continuous delivery to be delayed until a DeploySpec can be cached. The idea would be to consider any empty DeploySpec to be insufficient for continuous delivery to operate.
Would this change be accepted?
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
Start by locating the continuous-delivery routine, DeploySpec caching path, and deployment scheduling entry points described in the issue. Done means continuous delivery waits until a non-empty DeploySpec is cached, including when provisioning or enabling delivery races with a slow repository clone; add regression coverage for that race.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- ruby
- Domain
- devops
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100