lib/omnibus/software.rb
def build_me(build_wrappers = [])
      if Config.use_git_caching
        if project.dirty?
          log.info(log_key) do
            "Building because `#{project.culprit.name}' dirtied the cache"
          end
          execute_build(build_wrappers)
        elsif git_cache.restore
          log.info(log_key) { "Restored from cache" }
        else
          log.info(log_key) { "Could not restore from cache" }
          execute_build(build_wrappers)
          project.dirty!(self)
        end
      else
        log.debug(log_key) { "Forcing build because git caching is off" }
        execute_build(build_wrappers)
      end

      project.build_version_dsl.resolve(self)
      true
    end
def build_me(build_wrappers = [])
      if Config.use_git_caching
        if project.dirty?
          log.info(log_key) do
            "Building because `#{project.culprit.name}' dirtied the cache"
          end
          execute_build(build_wrappers)
        elsif git_cache.restore
          log.info(log_key) { "Restored from cache" }
        else
          log.info(log_key) { "Could not restore from cache" }
          execute_build(build_wrappers)
          project.dirty!(self)
        end
      else
        log.debug(log_key) { "Forcing build because git caching is off" }
        execute_build(build_wrappers)
      end

      project.build_version_dsl.resolve(self)
      true
    end
Build the software package. If git caching is turned on (see
 {Config#use_git_caching}), the build is restored according to the
 documented restoration procedure in the git cache. If the build cannot
 be restored (if the tag does not exist), the actual build steps are
 executed.

 @param [Array<#execute_pre_build, #execute_post_build>] build_wrappers
   Build wrappers inject behavior before or after the software is built.
   They can be any object that implements `#execute_pre_build` and
   `#execute_post_build`, taking this Software as an argument. Note that
   these callbacks are only triggered when the software actually gets
   built; if the build is skipped by the git cache, the callbacks DO NOT
   run.

 @return [true]