Class: AgileNotifier::Jenkins::Job::Build

Inherits:
CI::Job::Build show all
Includes:
Servable
Defined in:
lib/agile_notifier/jenkins.rb

Instance Attribute Summary

Attributes inherited from CI::Job::Build

#number, #result, #revision, #url

Instance Method Summary collapse

Methods included from Servable

#is_available?

Methods inherited from CI::Job::Build

#initialize

Constructor Details

This class inherits a constructor from AgileNotifier::CI::Job::Build

Instance Method Details

#failed?Boolean

Returns:

  • (Boolean)


97
98
99
100
101
102
103
# File 'lib/agile_notifier/jenkins.rb', line 97

def failed?
  if @result == 'FAILURE' && !is_triggered_manually?
    return true
  else
    return false
  end
end

#fixed?Boolean

Returns:

  • (Boolean)


113
114
115
116
117
118
119
# File 'lib/agile_notifier/jenkins.rb', line 113

def fixed?
  if get_previous_result != 'SUCCESS'
    return passed?
  else
    return nil # if previous result is SUCCESS, doesn't make sense, then return nil
  end
end

#get_previous_buildObject



62
63
64
65
66
67
68
69
70
71
72
73
# File 'lib/agile_notifier/jenkins.rb', line 62

def get_previous_build
  previous_number = @number - 1
  while previous_number > 0
    previous_url = @url.gsub(/\/#{@number}\//, "/#{previous_number}/")
    if is_available?(previous_url)
      return Build.new(previous_number, previous_url)
    else
      previous_number -= 1
    end
  end
  return nil
end

#get_previous_resultObject



75
76
77
78
79
80
81
82
# File 'lib/agile_notifier/jenkins.rb', line 75

def get_previous_result
  previous_build = get_previous_build
  if previous_build
    return previous_build.get_result
  else
    return nil
  end
end

#get_resultObject



52
53
54
55
# File 'lib/agile_notifier/jenkins.rb', line 52

def get_result
  result = Jenkins.get_value('result', @url)
  result.nil? ? nil : result
end

#get_revisionObject



57
58
59
60
# File 'lib/agile_notifier/jenkins.rb', line 57

def get_revision
  revision = Jenkins.get_value('lastBuiltRevision', @url)
  revision.nil? ? nil : revision['SHA1']
end

#is_building?Boolean

Returns:

  • (Boolean)


48
49
50
# File 'lib/agile_notifier/jenkins.rb', line 48

def is_building?
  Jenkins.get_value('building', @url)
end

#is_triggered_manually?Boolean

Returns:

  • (Boolean)


84
85
86
87
88
89
90
91
# File 'lib/agile_notifier/jenkins.rb', line 84

def is_triggered_manually?
  previous_build = get_previous_build
  if previous_build && @revision == previous_build.get_revision
    return true
  else
    return false
  end
end

#passed?Boolean

Returns:

  • (Boolean)


93
94
95
# File 'lib/agile_notifier/jenkins.rb', line 93

def passed?
  @result == 'SUCCESS'
end

#unstable?Boolean

Returns:

  • (Boolean)


105
106
107
108
109
110
111
# File 'lib/agile_notifier/jenkins.rb', line 105

def unstable?
  if @result == 'UNSTABLE' && !is_triggered_manually?
    return true
  else
    return false
  end
end