def run!
      pid = PidFile.new(pidfile: 'tinyci.pid', piddir: @working_dir)
      
      result = if @commit
        run_commit get_commit @commit
      else
        run_all_commits
      end
      
      pid.release
      
      result
    end
def run!
      pid = PidFile.new(pidfile: 'tinyci.pid', piddir: @working_dir)
      
      result = if @commit
        run_commit get_commit @commit
      else
        run_all_commits
      end
      
      pid.release
      
      result
    end
Constructor, allows injection of configuration and custom {Runner} class.
 Config params are passed to {Runner} instances.

 @param working_dir [String] The working directory to execute against
 @param logger [Logger] Logger object
 @param commit [String] specific git object to run against
 @param runner_class [TinyCI::Runner] Injection of {Runner} dependency
 Runs the TinyCI system against the relevant commits. Also sets up the pidfile.

 @return [Boolean] `true` if all commits built and tested successfully, `false` otherwise