-
-
Notifications
You must be signed in to change notification settings - Fork 1.5k
Refactor job output plumbing #4500
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
Open
Open
Changes from 9 commits
Commits
Show all changes
11 commits
Select commit
Hold shift + click to select a range
79dc61d
Refactor job output plumbing
infomiho 18ca3ed
Enforce job output boundaries
infomiho 61e4263
Share process output forwarding
infomiho 4e075dc
Rewrite jobs around actions and events
infomiho 9f2b0f8
Simplify job execution adapters
infomiho 9796d1f
Simplify job internals
infomiho 7e3ac7d
Make finite job commands require success
infomiho ae8378b
Group job type declarations
infomiho fe3052f
Simplify Node command runners
infomiho a608e2b
Address Job API review feedback
infomiho d9d2b97
Simplify BuildStart job execution
infomiho File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,32 @@ | ||
| module Wasp.Cli.Command.BuildStart.Job | ||
| ( JobExecution, | ||
| run, | ||
| race, | ||
| ) | ||
| where | ||
|
|
||
| import Control.Concurrent (Chan) | ||
| import qualified Control.Concurrent.Async as Async | ||
| import Control.Monad.Except (ExceptT (ExceptT), runExceptT) | ||
| import Data.Functor ((<&>)) | ||
| import System.Exit (ExitCode (..)) | ||
| import qualified Wasp.Job as Job | ||
|
|
||
| type JobExecution = Chan Job.JobEvent -> ExceptT String IO () | ||
|
|
||
| run :: (Int -> String) -> Job.Job -> JobExecution | ||
| run exitCodeToErrorMessage job events = | ||
| ExceptT $ | ||
| Job.runJob job events | ||
| <&> fromExitCode exitCodeToErrorMessage | ||
| where | ||
| fromExitCode _ ExitSuccess = Right () | ||
| fromExitCode toErrorMessage (ExitFailure code) = Left $ toErrorMessage code | ||
|
|
||
| race :: JobExecution -> JobExecution -> JobExecution | ||
| race first second events = | ||
| ExceptT $ | ||
| either id id | ||
| <$> Async.race | ||
| (runExceptT $ first events) | ||
| (runExceptT $ second events) |
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
This file contains hidden or 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
Oops, something went wrong.
Oops, something went wrong.
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.
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.
This file is a bit meh, feels like there's a better API from the Job side hiding in here. But you know best, RAW.
Uh oh!
There was an error while loading. Please reload this page.
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.
You were right that there was an unnecessary layer here.
ExceptTwas being added and immediately removed, so I changedJobExecutionto returnIO (Either String ())directly.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.
Let me see if I can also get rid of this module.