Sha256: 0c51942f32898839536e31df35f72932e8af8aca7c074b8a245869c89036de44
Contents?: true
Size: 697 Bytes
Versions: 7
Compression:
Stored size: 697 Bytes
Contents
module Jenkins module Build class Hub def available? system('which', 'hub', out: '/dev/null') end def ci_status(sha: nil) status, build_url = CiStatus.parse self.class.execute(sha) CiStatus.new(status, build_url) end def self.execute(commit) `hub ci-status -v #{commit}` end class CiStatus < Struct.new(:status, :build) MATCHER = %r{^(?<status>[^:]+): (?<build_url>https?://.+)$}.freeze def self.parse(output) hub = output.match(MATCHER) or return build = Jenkins::Build::Build.new(hub[:build_url]) [ hub[:status], build ] end end end end end
Version data entries
7 entries across 7 versions & 1 rubygems