-
Notifications
You must be signed in to change notification settings - Fork 273
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(core): inherit Build action mode from dependant Deploy action #5589
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Override the Build action mode with the Deploy action mode, if it depends on the build. This enables using ${this.mode} in the build action as a proxy to the Deploy action mode, simplifying configuration for many users. In previous versions of Garden all actions went into `sync` Mode when users ran the command `garden deploy --sync` without explicitly listing build actions due to the fact that we defaulted to the `*` Minimatch pattern that also matched build actions. This commit ensures that if you depend on a Build from a Deploy action, and that Deploy action is in `sync` mode, the Build action inherits the mode. If multiple Deploy actions depend on the same build, and have different modes, the non-default mode wins. If multiple Deploy actions use different non-default modes, we print a warning. In the future, we can make this even more reliable by injecting different invariants of build actions into the stack graph for each Deploy action, if the build action is used by multiple Deploy actions and they are in different modes.
When running `garden deploy --sync` without specifying certain actions to be synced, previously all actions, even builds and runs went into sync mode due to the minimatch pattern `*` matching all actions regardless of Kind.
stefreak
changed the title
Build mode override
fix(core): inherit Build action mode from dependant Deploy action
Dec 21, 2023
thsig
previously approved these changes
Dec 21, 2023
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good to me! Added a couple of text-related comments there.
We'll take a more proper look at all this in the new year.
stefreak
force-pushed
the
build-mode-override
branch
from
December 21, 2023 16:34
2b2885d
to
0bf1b08
Compare
Co-authored-by: Thorarinn Sigurdsson <[email protected]>
stefreak
force-pushed
the
build-mode-override
branch
from
December 21, 2023 16:38
ce26f40
to
bb273e8
Compare
thsig
approved these changes
Dec 21, 2023
Closed
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it:
Override the Build action mode with the Deploy action mode, if it depends on the build.
This enables using ${this.mode} in the build action as a proxy to the
Deploy action mode, simplifying configuration for many users.
In previous versions of Garden all actions went into
sync
Mode whenusers ran the command
garden deploy --sync
without explicitly listingDeploy actions due to the fact that we defaulted to the
*
Minimatchpattern that also matched build actions.
This commit ensures that if you depend on a Build from a Deploy action,
and that Deploy action is in
sync
mode, the Build action inherits themode.
If multiple Deploy actions depend on the same build, and have different
modes, the non-default mode wins. If multiple Deploy actions use
different non-default modes, we print a warning.
In the future, we can make this even more reliable by injecting
different invariants of build actions into the stack graph for each
Deploy action, if the build action is used by multiple Deploy actions
and they are in different modes.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer: