code: public Environment setUp( AbstractBuild build, Launcher launcher, BuildListener listener ) throws IOException, InterruptedException {
      	return new Environment() {};
      }
docs: Runs before the {@link SCM#checkout(AbstractBuild, Launcher, FilePath, BuildListener, File)} runs, and performs a set up.
  Can contribute additional properties to the environment.
  
  @param build
  The build in progress for which an {@link Environment} object is created.
  Never null.
  @param launcher
  This launcher can be used to launch processes for this build.
  If the build runs remotely, launcher will also run a job on that remote machine.
  Never null.
  @param listener
  Can be used to send any message.
  @return
  non-null if the build can continue, null if there was an error
  and the build needs to be aborted.
  @throws IOException
  terminates the build abnormally. Hudson will handle the exception
  and reports a nice error message.