chicanery 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ repos
1
2
  *.gem
2
3
  *.rbc
3
4
  *.example
data/.travis.yml CHANGED
@@ -1,4 +1,5 @@
1
1
  language: ruby
2
2
  rvm:
3
3
  - "1.9.2"
4
- - "1.9.3"
4
+ - "1.9.3"
5
+ script: bundle exec rake COVERAGE=true
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
+ gem 'simplecov'
3
4
  # Specify your gem's dependencies in chicanery.gemspec
4
5
  gemspec
data/Gemfile.lock CHANGED
@@ -1,13 +1,14 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- chicanery (0.0.4)
4
+ chicanery (0.0.5)
5
5
  nokogiri (~> 1)
6
6
 
7
7
  GEM
8
8
  remote: https://rubygems.org/
9
9
  specs:
10
10
  diff-lcs (1.1.3)
11
+ multi_json (1.3.7)
11
12
  nokogiri (1.5.5)
12
13
  rake (0.9.2.2)
13
14
  rspec (2.11.0)
@@ -18,6 +19,12 @@ GEM
18
19
  rspec-expectations (2.11.3)
19
20
  diff-lcs (~> 1.1.3)
20
21
  rspec-mocks (2.11.3)
22
+ simplecov (0.7.1)
23
+ multi_json (~> 1.0)
24
+ simplecov-html (~> 0.7.1)
25
+ simplecov-gem-adapter (1.0.1)
26
+ simplecov
27
+ simplecov-html (0.7.1)
21
28
 
22
29
  PLATFORMS
23
30
  ruby
@@ -26,3 +33,5 @@ DEPENDENCIES
26
33
  chicanery!
27
34
  rake (~> 0)
28
35
  rspec (~> 2)
36
+ simplecov
37
+ simplecov-gem-adapter
data/README.md CHANGED
@@ -17,9 +17,23 @@ State is persisted between executions so that it be scheduled to run regularly w
17
17
  Create a configuration file. This file is just a ruby file that can make use of a few configuration and callback methods:
18
18
 
19
19
  require 'chicanery/cctray'
20
+ require 'chicanery/git'
20
21
 
22
+ include Chicanery::Git
23
+
24
+ git_repo 'chicanery', '/tmp/chicanery', remotes: {
25
+ github: { url: 'git://github.com/markryall/chicanery.git' }
26
+ }
21
27
  server Chicanery::Cctray.new 'tddium', 'https://cihost.com/cctray.xml'
22
28
 
29
+ when_run do |state|
30
+ puts 'checked state'
31
+ end
32
+
33
+ when_commit do |repo, commit, previous|
34
+ puts "commit #{previous}..#{commit} detected in repo #{repo}"
35
+ end
36
+
23
37
  when_succeeded do |job_name, job|
24
38
  puts "#{job_name} has succeeded"
25
39
  end
@@ -66,7 +80,6 @@ Basic authentication is supported by passing :user => 'user', :password => 'pass
66
80
 
67
81
  ## Plans for world domination
68
82
 
69
- * monitoring a git repository for push notifications
70
83
  * monitoring a mercurial repository for push notifications
71
84
  * monitoring a subversion repository for commit notifications
72
85
  * monitoring heroku for deployment event notification
data/bin/chicanery CHANGED
@@ -4,4 +4,4 @@ $:.unshift File.dirname(__FILE__)+'/../lib'
4
4
 
5
5
  require 'chicanery'
6
6
  extend Chicanery
7
- execute *ARGV
7
+ execute ARGV
data/chicanery.gemspec CHANGED
@@ -21,4 +21,6 @@ Gem::Specification.new do |gem|
21
21
 
22
22
  gem.add_development_dependency 'rake', '~>0'
23
23
  gem.add_development_dependency 'rspec', '~>2'
24
- end
24
+ gem.add_development_dependency 'simplecov'
25
+ gem.add_development_dependency 'simplecov-gem-adapter'
26
+ end
data/examples/evil.rb ADDED
@@ -0,0 +1,24 @@
1
+ require 'chicanery/git'
2
+
3
+ include Chicanery::Git
4
+
5
+ git_repo 'chicanery', '.', branches: [:master]
6
+
7
+ start = Time.now.to_i
8
+ maximum = ARGV.shift.to_i
9
+
10
+ puts "Uncommitted changes will be automatically reverted after #{maximum} seconds"
11
+
12
+ when_run do |state|
13
+ elapsed = Time.now.to_i - start
14
+ if elapsed >= maximum
15
+ puts "no commits detected in #{elapsed} seconds - reverting all uncommitted changes"
16
+ `git reset --hard`
17
+ start = Time.now.to_i
18
+ end
19
+ end
20
+
21
+ when_commit do |branch, commit, previous|
22
+ puts "commit detected - resetting timer"
23
+ start = Time.now.to_i
24
+ end
@@ -0,0 +1,11 @@
1
+ require 'chicanery/git'
2
+
3
+ include Chicanery::Git
4
+
5
+ git_repo 'chicanery', '.', branches: [:master], remotes: {
6
+ github: { url: 'git://github.com/markryall/chicanery.git' }
7
+ }
8
+
9
+ when_commit do |branch, commit, previous|
10
+ puts "commit #{previous}..#{commit} detected in #{branch}"
11
+ end
data/examples/travis.rb CHANGED
@@ -1,26 +1,41 @@
1
1
  require 'chicanery/cctray'
2
+ require 'chicanery/git'
3
+
4
+ include Chicanery::Git
5
+
6
+ git_repo 'chicanery', '.', remotes: {
7
+ github: { url: 'git://github.com/markryall/chicanery.git' }
8
+ }
2
9
 
3
10
  server Chicanery::Cctray.new 'travis', 'https://api.travis-ci.org/repositories/markryall/chicanery/cc.xml'
4
11
 
12
+ def growlnotify message
13
+ `growlnotify -t "some new chicanery ..." --image ~/icons/chicanery.png -m \"#{message}\"`
14
+ end
15
+
16
+ when_commit do |repo, commit, previous|
17
+ growlnotify "commit #{previous}..#{commit} detected in repo #{repo}"
18
+ end
19
+
5
20
  when_started do |job_name, job|
6
- `afplay ~/build_sounds/startup.mp3`
7
- puts "job #{job_name} has started"
21
+ growlnotify "job #{job_name} has started"
22
+ `afplay ~/build_sounds/ticktock.mp3`
8
23
  end
9
24
 
10
25
  when_succeeded do |job_name, job|
11
- puts "job #{job_name} #{job[:last_label]} has succeeded"
26
+ growlnotify "job #{job_name} #{job[:last_label]} has succeeded"
12
27
  end
13
28
 
14
29
  when_failed do |job_name, job|
15
- puts "job #{job_name} #{job[:last_label]} has failed"
30
+ growlnotify "job #{job_name} #{job[:last_label]} has failed"
16
31
  end
17
32
 
18
33
  when_broken do |job_name, job|
34
+ growlnotify "job #{job_name} is broken"
19
35
  `afplay ~/build_sounds/ambulance.mp3`
20
- puts "job #{job_name} is broken"
21
36
  end
22
37
 
23
38
  when_fixed do |job_name, job|
39
+ growlnotify "job #{job_name} is fixed"
24
40
  `afplay ~/build_sounds/applause.mp3`
25
- puts "job #{job_name} is fixed"
26
41
  end
data/lib/chicanery.rb CHANGED
@@ -1,33 +1,48 @@
1
+ if ENV['COVERAGE']
2
+ require 'simplecov'
3
+ require 'simplecov-gem-adapter'
4
+ SimpleCov.start 'gem'
5
+ end
6
+
1
7
  require 'chicanery/persistence'
2
- require 'chicanery/servers'
8
+ require 'chicanery/collections'
3
9
  require 'chicanery/handlers'
4
10
  require 'chicanery/state_comparison'
5
11
 
6
12
  module Chicanery
7
13
  include Persistence
8
- include Servers
14
+ include Collections
9
15
  include Handlers
10
16
  include StateComparison
11
17
 
12
- VERSION = "0.0.4"
18
+ VERSION = "0.0.5"
13
19
 
14
- def execute *args
15
- load args.shift
16
- poll_period = args.shift
17
- loop do
18
- previous_state = restore
19
- current_state = {
20
- servers: {}
21
- }
22
- servers.each do |server|
23
- current_jobs = server.jobs
24
- compare_jobs current_jobs, previous_state[:servers][server.name] if previous_state[:servers]
25
- current_state[:servers][server.name] = current_jobs
20
+ def execute args
21
+ begin
22
+ load args.shift
23
+ poll_period = args.shift
24
+ loop do
25
+ previous_state = restore
26
+ current_state = {
27
+ servers: {},
28
+ repos: {}
29
+ }
30
+ repos.each do |repo|
31
+ repo_state = repo.state
32
+ compare_repo_state repo.name, repo_state, previous_state[:repos][repo.name] if previous_state[:repos]
33
+ current_state[:repos][repo.name] = repo_state
34
+ end
35
+ servers.each do |server|
36
+ current_jobs = server.jobs
37
+ compare_jobs current_jobs, previous_state[:servers][server.name] if previous_state[:servers]
38
+ current_state[:servers][server.name] = current_jobs
39
+ end
40
+ run_handlers.each {|handler| handler.call current_state }
41
+ persist current_state
42
+ break unless poll_period
43
+ sleep poll_period.to_i
26
44
  end
27
- run_handlers.each {|handler| handler.call current_state }
28
- persist current_state
29
- break unless poll_period
30
- sleep poll_period.to_i
45
+ rescue Interrupt
31
46
  end
32
47
  end
33
48
  end
@@ -0,0 +1,15 @@
1
+ module Chicanery
2
+ module Collections
3
+ %w{server repo}.each do |entity|
4
+ class_eval <<-EOF
5
+ def #{entity} entity
6
+ #{entity}s << entity
7
+ end
8
+
9
+ def #{entity}s
10
+ @#{entity}s ||= []
11
+ end
12
+ EOF
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,58 @@
1
+ require 'fileutils'
2
+
3
+ module Chicanery
4
+ module Git
5
+ class Repo
6
+ include FileUtils
7
+
8
+ attr_reader :name, :path, :branches, :remotes
9
+
10
+ def initialize name, path, params={}
11
+ @name, @path = name, path
12
+ @branches = params[:branches] || []
13
+ @remotes = params[:remotes] || {}
14
+ end
15
+
16
+ def in_repo
17
+ Dir.chdir(path) { yield }
18
+ end
19
+
20
+ def prepare
21
+ return if File.exists? path
22
+ mkdir_p path
23
+ in_repo { git 'init' }
24
+ end
25
+
26
+ def state
27
+ prepare
28
+ response = {}
29
+ in_repo do
30
+ remotes.each do |name, remote|
31
+ git "remote add #{name} #{remote[:url]}" unless git("remote | grep #{name}") == name.to_s
32
+ git "fetch -q #{name}"
33
+ (remote[:branches] || ['master']).each do |branch|
34
+ response["#{name}/#{branch}"] = head "#{name}/#{branch}"
35
+ end
36
+ end
37
+ branches.each do |branch|
38
+ response[branch] = head branch
39
+ end
40
+ end
41
+ response
42
+ end
43
+
44
+ def head branch
45
+ match = /^([^ ]*) /.match git "log -n 1 #{branch} --pretty=oneline"
46
+ match[1] if match
47
+ end
48
+
49
+ def git command
50
+ `git #{command}`.chomp
51
+ end
52
+ end
53
+
54
+ def git_repo *args
55
+ repo Repo.new *args
56
+ end
57
+ end
58
+ end
@@ -1,6 +1,6 @@
1
1
  module Chicanery
2
2
  module Handlers
3
- %w{run started succeeded failed broken fixed}.each do |status|
3
+ %w{run started succeeded failed broken fixed commit}.each do |status|
4
4
  class_eval <<-EOF
5
5
  def when_#{status} &block
6
6
  #{status}_handlers << block
@@ -8,15 +8,22 @@ module Chicanery
8
8
  end
9
9
 
10
10
  def compare_job name, current, previous
11
- return unless current[:last_build_time] != previous[:last_build_time]
12
11
  if current[:activity] == :building and previous[:activity] == :sleeping
13
12
  notify_started_handlers name, current
14
- return
15
13
  end
14
+ return unless current[:last_build_time] != previous[:last_build_time]
16
15
  notify_succeeded_handlers name, current if current[:last_build_status] == :success
17
16
  notify_failed_handlers name, current if current[:last_build_status] == :failure
18
17
  notify_broken_handlers name, current if current[:last_build_status] == :failure and previous[:last_build_status] == :success
19
18
  notify_fixed_handlers name, current if current[:last_build_status] == :success and previous[:last_build_status] == :failure
20
19
  end
20
+
21
+ def compare_repo_state name, current, previous
22
+ return unless previous
23
+ current.each do |branch, state|
24
+ next unless previous[branch]
25
+ notify_commit_handlers "#{name}/#{branch}", state, previous[branch] if state != previous[branch]
26
+ end
27
+ end
21
28
  end
22
29
  end
@@ -0,0 +1,14 @@
1
+ describe Chicanery::Collections do
2
+ include Chicanery::Collections
3
+
4
+ %w{server repo}.each do |entity|
5
+ it "should default to an empty list of #{entity}s" do
6
+ send("#{entity}s").should == []
7
+ end
8
+
9
+ it "should append to #{entity}s list" do
10
+ send entity, :entity
11
+ send("#{entity}s").should == [:entity]
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,27 @@
1
+ describe Chicanery::Persistence do
2
+ include Chicanery::Persistence
3
+
4
+ describe '#persist' do
5
+ it 'should write state to disk as yaml' do
6
+ file = stub 'file'
7
+ state = stub 'state', to_yaml: :yaml
8
+ File.should_receive(:open).with('state', 'w').and_yield file
9
+ file.should_receive(:puts).with :yaml
10
+ persist state
11
+ end
12
+ end
13
+
14
+ describe '#restore' do
15
+ it 'should return empty hash if state file does not exist' do
16
+ File.should_receive(:exist?).with('state').and_return false
17
+ restore.should == {}
18
+ end
19
+
20
+ it 'should read yaml from disk' do
21
+ state = stub 'state'
22
+ File.should_receive(:exist?).with('state').and_return true
23
+ YAML.should_receive(:load_file).with('state').and_return state
24
+ restore.should == state
25
+ end
26
+ end
27
+ end
@@ -1,20 +1,63 @@
1
- require 'chicanery/state_comparison'
2
-
3
1
  describe Chicanery::StateComparison do
4
2
  include Chicanery::StateComparison
5
3
 
6
- let(:current_jobs) { {} }
7
- let(:previous_jobs) { {} }
4
+ describe '#compare_jobs' do
5
+ let(:current_jobs) { {} }
6
+ let(:previous_jobs) { {} }
7
+
8
+ after { compare_jobs current_jobs, previous_jobs }
9
+
10
+ it 'should do nothing when there are no jobs in current state' do
11
+ should_not_receive :compare_job
12
+ previous_jobs[:job] = {}
13
+ end
8
14
 
9
- it 'should do nothing when there are no jobs in current state' do
10
- should_not_receive :compare_job
11
- previous_jobs[:job] = {}
12
- compare_jobs current_jobs, previous_jobs
15
+ it 'should do nothing when there is no previous state' do
16
+ should_not_receive :compare_job
17
+ current_jobs[:job] = {}
18
+ end
13
19
  end
14
20
 
15
- it 'should do nothing when there is no previous state' do
16
- should_not_receive :compare_job
17
- current_jobs[:job] = {}
18
- compare_jobs current_jobs, previous_jobs
21
+ describe '#compare_job' do
22
+ let(:current_job) { { activity: :sleeping, last_build_time: Time.now, } }
23
+ let(:previous_job) { { activity: :sleeping, last_build_time: (Time.now-1) } }
24
+
25
+ before {
26
+ stub! :notify_failed_handlers
27
+ stub! :notify_succeeded_handlers
28
+ }
29
+
30
+ after { compare_job 'name', current_job, previous_job }
31
+
32
+ it 'should do nothing when build times are equal' do
33
+ current_job[:last_build_time] = previous_job[:last_build_time] = Time.now
34
+ end
35
+
36
+ it 'should notify started handlers when activity changes to building' do
37
+ current_job[:activity] = :building
38
+ should_receive(:notify_started_handlers).with 'name', current_job
39
+ end
40
+
41
+ it 'should notify succeeded handlers when a build is successful' do
42
+ current_job[:last_build_status] = :success
43
+ should_receive(:notify_succeeded_handlers).with 'name', current_job
44
+ end
45
+
46
+ it 'should notify failed handlers when a build fails' do
47
+ current_job[:last_build_status] = :failure
48
+ should_receive(:notify_failed_handlers).with 'name', current_job
49
+ end
50
+
51
+ it 'should notify broken handlers when a build is broken' do
52
+ previous_job[:last_build_status] = :success
53
+ current_job[:last_build_status] = :failure
54
+ should_receive(:notify_broken_handlers).with 'name', current_job
55
+ end
56
+
57
+ it 'should notify fixed handlers when a build is fixed' do
58
+ previous_job[:last_build_status] = :failure
59
+ current_job[:last_build_status] = :success
60
+ should_receive(:notify_fixed_handlers).with 'name', current_job
61
+ end
19
62
  end
20
63
  end
@@ -1,12 +1,30 @@
1
- require 'chicanery'
2
-
3
1
  describe Chicanery do
4
2
  include Chicanery
5
3
 
6
4
  describe '#execute' do
5
+ before { %w{load restore persist}.each {|m| stub! m } }
6
+
7
7
  it 'should load configuration and exit immediately when nothing is configured no poll period is provided' do
8
8
  should_receive(:load).with 'configuration'
9
- execute 'configuration'
9
+ execute %w{configuration}
10
+ end
11
+
12
+ it 'should restore previous state' do
13
+ should_receive(:restore)
14
+ execute %w{configuration}
15
+ end
16
+
17
+ it 'should persist new state' do
18
+ should_receive(:persist).with({
19
+ servers: {},
20
+ repos: {}
21
+ })
22
+ execute %w{configuration}
23
+ end
24
+
25
+ it 'should sleep for specified time when poll period is provided' do
26
+ should_receive(:sleep).with(10).and_raise Interrupt
27
+ execute %w{configuration 10}
10
28
  end
11
29
  end
12
30
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chicanery
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-18 00:00:00.000000000 Z
12
+ date: 2012-12-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -59,6 +59,38 @@ dependencies:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: '2'
62
+ - !ruby/object:Gem::Dependency
63
+ name: simplecov
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: simplecov-gem-adapter
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: '0'
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: '0'
62
94
  description: trigger various events related to a continuous integration environment
63
95
  email:
64
96
  - mark@ryall.name
@@ -76,15 +108,18 @@ files:
76
108
  - Rakefile
77
109
  - bin/chicanery
78
110
  - chicanery.gemspec
111
+ - examples/evil.rb
112
+ - examples/github.rb
79
113
  - examples/travis.rb
80
114
  - lib/chicanery.rb
81
115
  - lib/chicanery/cctray.rb
116
+ - lib/chicanery/collections.rb
117
+ - lib/chicanery/git.rb
82
118
  - lib/chicanery/handlers.rb
83
119
  - lib/chicanery/persistence.rb
84
- - lib/chicanery/servers.rb
85
120
  - lib/chicanery/state_comparison.rb
86
- - spec/broken.xml
87
- - spec/building.xml
121
+ - spec/chicanery/collections_spec.rb
122
+ - spec/chicanery/persistence_spec.rb
88
123
  - spec/chicanery/state_comparison_spec.rb
89
124
  - spec/chicanery_spec.rb
90
125
  homepage: http://github.com/markryall/chicanery
@@ -101,7 +136,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
101
136
  version: '0'
102
137
  segments:
103
138
  - 0
104
- hash: -3725593527818179587
139
+ hash: -2101217152092119930
105
140
  required_rubygems_version: !ruby/object:Gem::Requirement
106
141
  none: false
107
142
  requirements:
@@ -110,7 +145,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
110
145
  version: '0'
111
146
  segments:
112
147
  - 0
113
- hash: -3725593527818179587
148
+ hash: -2101217152092119930
114
149
  requirements: []
115
150
  rubyforge_project:
116
151
  rubygems_version: 1.8.23
@@ -118,7 +153,7 @@ signing_key:
118
153
  specification_version: 3
119
154
  summary: polls various resources related to a ci environment and performs custom notifications
120
155
  test_files:
121
- - spec/broken.xml
122
- - spec/building.xml
156
+ - spec/chicanery/collections_spec.rb
157
+ - spec/chicanery/persistence_spec.rb
123
158
  - spec/chicanery/state_comparison_spec.rb
124
159
  - spec/chicanery_spec.rb
@@ -1,11 +0,0 @@
1
- module Chicanery
2
- module Servers
3
- def server new_server
4
- servers << new_server
5
- end
6
-
7
- def servers
8
- @servers ||= []
9
- end
10
- end
11
- end
data/spec/broken.xml DELETED
@@ -1,18 +0,0 @@
1
-
2
- <?xml version="1.0" encoding="utf-8"?>
3
- <Projects>
4
- <Project name="sampleproject :: specs" activity="Sleeping" lastBuildStatus="Success" lastBuildLabel="55" lastBuildTime="2012-11-10T12:39:46" webUrl="http://192.168.1.2:8153/go/pipelines/sampleproject/55/specs/1" />
5
- <Project name="sampleproject :: specs :: specs" activity="Sleeping" lastBuildStatus="Success" lastBuildLabel="55" lastBuildTime="2012-11-10T12:39:46" webUrl="http://192.168.1.2:8153/go/tab/build/detail/sampleproject/55/specs/1/specs" />
6
- <Project name="sampleproject :: features" activity="Sleeping" lastBuildStatus="Failure" lastBuildLabel="55" lastBuildTime="2012-11-10T13:06:00" webUrl="http://192.168.1.2:8153/go/pipelines/sampleproject/55/features/1">
7
- <messages>
8
- <message text="build breaker &lt;buildbreaker@sampleproject.com&gt;" kind="Breakers" />
9
- </messages>
10
- </Project>
11
- <Project name="sampleproject :: features :: features" activity="Sleeping" lastBuildStatus="Failure" lastBuildLabel="55" lastBuildTime="2012-11-10T13:06:00" webUrl="http://192.168.1.2:8153/go/tab/build/detail/sampleproject/55/features/1/features">
12
- <messages>
13
- <message text="build breaker &lt;buildbreaker@sampleproject.com&gt;" kind="Breakers" />
14
- </messages>
15
- </Project>
16
- <Project name="sampleproject :: staging" activity="Sleeping" lastBuildStatus="Success" lastBuildLabel="51" lastBuildTime="2012-10-23T00:23:22" webUrl="http://192.168.1.2:8153/go/pipelines/sampleproject/51/staging/1" />
17
- <Project name="sampleproject :: staging :: deploy" activity="Sleeping" lastBuildStatus="Success" lastBuildLabel="51" lastBuildTime="2012-10-23T00:23:22" webUrl="http://192.168.1.2:8153/go/tab/build/detail/sampleproject/51/staging/1/deploy" />
18
- </Projects>
data/spec/building.xml DELETED
@@ -1,9 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <Projects>
3
- <Project name="sampleproject :: specs" activity="Sleeping" lastBuildStatus="Success" lastBuildLabel="55" lastBuildTime="2012-11-10T12:39:46" webUrl="http://192.168.1.2:8153/go/pipelines/sampleproject/55/specs/1" />
4
- <Project name="sampleproject :: specs :: specs" activity="Sleeping" lastBuildStatus="Success" lastBuildLabel="55" lastBuildTime="2012-11-10T12:39:46" webUrl="http://192.168.1.2:8153/go/tab/build/detail/sampleproject/55/specs/1/specs" />
5
- <Project name="sampleproject :: features" activity="Building" lastBuildStatus="Success" lastBuildLabel="1" lastBuildTime="2012-11-10T12:31:53" webUrl="http://192.168.1.2:8153/go/pipelines/sampleproject/55/features/1" />
6
- <Project name="sampleproject :: features :: features" activity="Building" lastBuildStatus="Success" lastBuildLabel="1" lastBuildTime="2012-11-10T12:31:53" webUrl="http://192.168.1.2:8153/go/tab/build/detail/sampleproject/55/features/1/features" />
7
- <Project name="sampleproject :: staging" activity="Sleeping" lastBuildStatus="Success" lastBuildLabel="51" lastBuildTime="2012-10-23T00:23:22" webUrl="http://192.168.1.2:8153/go/pipelines/sampleproject/51/staging/1" />
8
- <Project name="sampleproject :: staging :: deploy" activity="Sleeping" lastBuildStatus="Success" lastBuildLabel="51" lastBuildTime="2012-10-23T00:23:22" webUrl="http://192.168.1.2:8153/go/tab/build/detail/sampleproject/51/staging/1/deploy" />
9
- </Projects>