Class: CIJoe::Build

Inherits:
Struct
  • Object
show all
Defined in:
lib/cijoe/build.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(*args) ⇒ Build

Returns a new instance of Build.



5
6
7
8
# File 'lib/cijoe/build.rb', line 5

def initialize(*args)
  super
  self.started_at ||= Time.now
end

Instance Attribute Details

#finished_atObject

Returns the value of attribute finished_at

Returns:

  • (Object)

    the current value of finished_at



4
5
6
# File 'lib/cijoe/build.rb', line 4

def finished_at
  @finished_at
end

#outputObject

Returns the value of attribute output

Returns:

  • (Object)

    the current value of output



4
5
6
# File 'lib/cijoe/build.rb', line 4

def output
  @output
end

#pidObject

Returns the value of attribute pid

Returns:

  • (Object)

    the current value of pid



4
5
6
# File 'lib/cijoe/build.rb', line 4

def pid
  @pid
end

#projectObject

Returns the value of attribute project

Returns:

  • (Object)

    the current value of project



4
5
6
# File 'lib/cijoe/build.rb', line 4

def project
  @project
end

#project_pathObject

Returns the value of attribute project_path

Returns:

  • (Object)

    the current value of project_path



4
5
6
# File 'lib/cijoe/build.rb', line 4

def project_path
  @project_path
end

#shaObject

Returns the value of attribute sha

Returns:

  • (Object)

    the current value of sha



4
5
6
# File 'lib/cijoe/build.rb', line 4

def sha
  @sha
end

#started_atObject

Returns the value of attribute started_at

Returns:

  • (Object)

    the current value of started_at



4
5
6
# File 'lib/cijoe/build.rb', line 4

def started_at
  @started_at
end

#statusObject

Returns the value of attribute status

Returns:

  • (Object)

    the current value of status



4
5
6
# File 'lib/cijoe/build.rb', line 4

def status
  @status
end

#userObject

Returns the value of attribute user

Returns:

  • (Object)

    the current value of user



4
5
6
# File 'lib/cijoe/build.rb', line 4

def user
  @user
end

Class Method Details

.load(file, project_path) ⇒ Object



60
61
62
63
64
65
# File 'lib/cijoe/build.rb', line 60

def self.load(file, project_path)
  if File.exist?(file)
    config = YAML.load(File.read(file)).unshift(project_path)
    new *config
  end
end

Instance Method Details

#building?Boolean

Returns:

  • (Boolean)


23
24
25
# File 'lib/cijoe/build.rb', line 23

def building?
  status == :building
end

#clean_outputObject



40
41
42
# File 'lib/cijoe/build.rb', line 40

def clean_output
  output.gsub(/\e\[.+?m/, '').strip
end

#commitObject



49
50
51
52
# File 'lib/cijoe/build.rb', line 49

def commit
  return if sha.nil?
  @commit ||= Commit.new(sha, user, project, project_path)
end

#dump(file) ⇒ Object



54
55
56
57
58
# File 'lib/cijoe/build.rb', line 54

def dump(file)
  config = [user, project, started_at, finished_at, sha, status, output, pid]
  data = YAML.dump(config)
  File.open(file, 'wb') { |io| io.write(data) }
end

#durationObject



27
28
29
30
# File 'lib/cijoe/build.rb', line 27

def duration
  return if building?
  finished_at - started_at
end

#env_outputObject



44
45
46
47
# File 'lib/cijoe/build.rb', line 44

def env_output
  out = clean_output
  out.size > 100_000 ? out[-100_000,100_000] : out
end

#failed?Boolean

Returns:

  • (Boolean)


15
16
17
# File 'lib/cijoe/build.rb', line 15

def failed?
  status == :failed
end

#short_shaObject



32
33
34
35
36
37
38
# File 'lib/cijoe/build.rb', line 32

def short_sha
  if sha
    sha[0,7]
  else
    "<unknown>"
  end
end

#worked?Boolean

Returns:

  • (Boolean)


19
20
21
# File 'lib/cijoe/build.rb', line 19

def worked?
  status == :worked
end