NoBuild should handle output files
SourceKey should change with outputfiles to enforce a new build is used when output files change. If iterations are used, the output files should not be uploaded again. (simple change by only uploading on first iteration when NoBuild is set).
I recently faced this issue. I was using Bombardier across multiple runs of the Crank controller (without relaunching the Crank Agent between each), and when I wanted to use the --load.options.outputFiles option, the files were uploaded but since the dotnet publish phase was skipped, they were not added into the published/ folder when Bombardier runs.
The solution I found was to edit this YAML file and set the noBuild variable to false. But this implies a little overhead: for every benchmarks, Microsoft.Crank.Jobs.Bombardier is built again (1~2 seconds on my machine).
without relaunching the Crank Agent between each
Which is fine, per design, you shouldn't have to restart it.
hey were not added into the published/ folder when Bombardier runs
What kind of files did you need to upload? POST data file? Note that the client support public urls for these files, so you don't need to upload them if they are available on GH for instance.
I actually had a scenario where it was good to not rebuild even with output files. It might require a custom property to vary by output files too, or at least rebuild when output files are set, because I am not sure if it makes sense to reuse any build in that case. Even if that made sense if would require the hash to vary by the content of the files.
What kind of files did you need to upload? POST data file?
Yes, I forgot to mention it, it was a POST/PUT body file. Unfortunately I could not make it publicly available through an URL so I'm stuck with the relative path method (and thus I need to specify output files to upload).
or at least rebuild when output files are set, because I am not sure if it makes sense to reuse any build in that case.
I agree, because we may not want for our benchmark application to have access to previous output files that were uploaded by previous benchmarks.