Skip to content
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

Parallel target execution / Progress information in console #526

Open
wants to merge 26 commits into
base: develop
Choose a base branch
from

Conversation

tunger
Copy link
Contributor

@tunger tunger commented Jun 23, 2020

This implements #162 and #107.

Main changes

  • Redirect Logger output to InMemoryLogger instances per thread.
  • Adds two build strategies: sequential and parallel
  • Adds progress reporters:
    • Progress bar (ShellProgressBar) when running as console (i.e. not on redirected outputs)
    • Log per target: when running parallel on redirected outputs
    • Continuous: write logs as they come (current behavior)
  • Adds BuildTimeEstimator to get sense of progress.

Usage

Opt-in to parallel build: Use ExecuteAsync in your NukeBuild class instead of Execute. Furthermore, if you provide the flag --no-parallel, it will always run sequentially.

Logger usage remains the same and is agnostic of threading from the view of the caller.

Open

  • Test performance impact of progress bar.
  • If there are lots of invoked targets, the progress bar grows from bottom of the terminal upwards, overwriting initial output.
  • ParallelExecutionPlanner can very likely be improved.
  • Commit 1b74097 is a fix for current problems on develop and can be removed afterwards.

I confirm that the pull-request:

  • Follows the contribution guidelines
  • Is based on my own work
  • Is in compliance with my employer

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants