go_cd_feed 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/.gitignore +8 -0
- data/.rvmrc +1 -0
- data/.zeroci.yml +1 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +32 -0
- data/README.textile +36 -0
- data/Rakefile +39 -0
- data/bin/go_api_client +3 -0
- data/go_api_client.gemspec +27 -0
- data/lib/go_api_client.rb +60 -0
- data/lib/go_api_client/atom.rb +4 -0
- data/lib/go_api_client/atom/author.rb +42 -0
- data/lib/go_api_client/atom/entry.rb +34 -0
- data/lib/go_api_client/atom/feed.rb +44 -0
- data/lib/go_api_client/atom/feed_page.rb +49 -0
- data/lib/go_api_client/commit.rb +30 -0
- data/lib/go_api_client/helpers.rb +1 -0
- data/lib/go_api_client/helpers/simple_attribute_support.rb +11 -0
- data/lib/go_api_client/http_fetcher.rb +43 -0
- data/lib/go_api_client/job.rb +64 -0
- data/lib/go_api_client/pipeline.rb +49 -0
- data/lib/go_api_client/stage.rb +57 -0
- data/lib/go_api_client/user.rb +36 -0
- data/lib/go_api_client/version.rb +9 -0
- data/ssh_keys/git-ci.zeroci.com +27 -0
- data/ssh_keys/git-ci.zeroci.com.pub +1 -0
- data/ssh_keys/git-ssh +3 -0
- data/test/fixtures/building/job_1.xml +41 -0
- data/test/fixtures/building/job_2.xml +43 -0
- data/test/fixtures/building/job_3.xml +40 -0
- data/test/fixtures/building/job_4.xml +40 -0
- data/test/fixtures/building/pipeline_1.xml +45 -0
- data/test/fixtures/building/pipeline_2.xml +39 -0
- data/test/fixtures/building/pipeline_3.xml +71 -0
- data/test/fixtures/building/stages.xml +180 -0
- data/test/fixtures/building/stages_1.xml +16 -0
- data/test/fixtures/building/stages_2.xml +16 -0
- data/test/fixtures/building/stages_3.xml +16 -0
- data/test/fixtures/building/stages_4.xml +16 -0
- data/test/fixtures/job_1_console.log.txt +82 -0
- data/test/fixtures/job_2_console.log.txt +82 -0
- data/test/fixtures/jobs_1.xml +29 -0
- data/test/fixtures/jobs_2.xml +29 -0
- data/test/fixtures/jobs_with_no_properties.xml +42 -0
- data/test/fixtures/ordering/go/api/jobs/1.xml +29 -0
- data/test/fixtures/ordering/go/api/jobs/10.xml +31 -0
- data/test/fixtures/ordering/go/api/jobs/2.xml +29 -0
- data/test/fixtures/ordering/go/api/jobs/3.xml +29 -0
- data/test/fixtures/ordering/go/api/jobs/4.xml +29 -0
- data/test/fixtures/ordering/go/api/jobs/5.xml +29 -0
- data/test/fixtures/ordering/go/api/jobs/6.xml +29 -0
- data/test/fixtures/ordering/go/api/jobs/7.xml +31 -0
- data/test/fixtures/ordering/go/api/jobs/8.xml +31 -0
- data/test/fixtures/ordering/go/api/jobs/9.xml +31 -0
- data/test/fixtures/ordering/go/api/pipelines/defaultPipeline/1.xml +31 -0
- data/test/fixtures/ordering/go/api/pipelines/defaultPipeline/2.xml +26 -0
- data/test/fixtures/ordering/go/api/pipelines/defaultPipeline/3.xml +26 -0
- data/test/fixtures/ordering/go/api/pipelines/defaultPipeline/4.xml +27 -0
- data/test/fixtures/ordering/go/api/pipelines/defaultPipeline/5.xml +33 -0
- data/test/fixtures/ordering/go/api/pipelines/defaultPipeline/stages.xml +255 -0
- data/test/fixtures/ordering/go/api/stages/1.xml +14 -0
- data/test/fixtures/ordering/go/api/stages/10.xml +14 -0
- data/test/fixtures/ordering/go/api/stages/2.xml +14 -0
- data/test/fixtures/ordering/go/api/stages/3.xml +14 -0
- data/test/fixtures/ordering/go/api/stages/4.xml +14 -0
- data/test/fixtures/ordering/go/api/stages/5.xml +14 -0
- data/test/fixtures/ordering/go/api/stages/6.xml +14 -0
- data/test/fixtures/ordering/go/api/stages/7.xml +14 -0
- data/test/fixtures/ordering/go/api/stages/8.xml +14 -0
- data/test/fixtures/ordering/go/api/stages/9.xml +14 -0
- data/test/fixtures/pagination/stages.xml +636 -0
- data/test/fixtures/pagination/stages_before_7916973.xml +615 -0
- data/test/fixtures/pagination/stages_before_7959831.xml +615 -0
- data/test/fixtures/pipelines_1.xml +32 -0
- data/test/fixtures/stages.xml +63 -0
- data/test/fixtures/stages_1.xml +14 -0
- data/test/fixtures/stages_2.xml +14 -0
- data/test/fixtures/stages_empty.xml +9 -0
- data/test/go_api_client/atom/author_test.rb +27 -0
- data/test/go_api_client/atom/entry_test.rb +27 -0
- data/test/go_api_client/atom/feed_page_test.rb +41 -0
- data/test/go_api_client/atom/feed_test.rb +25 -0
- data/test/go_api_client/building_test.rb +38 -0
- data/test/go_api_client/commit_test.rb +38 -0
- data/test/go_api_client/job_test.rb +42 -0
- data/test/go_api_client/pipeline_test.rb +34 -0
- data/test/go_api_client/stage_test.rb +75 -0
- data/test/go_api_client/user_test.rb +27 -0
- data/test/test_helper.rb +31 -0
- metadata +272 -0
@@ -0,0 +1 @@
|
|
1
|
+
require 'go_api_client/helpers/simple_attribute_support'
|
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'net/https'
|
3
|
+
|
4
|
+
module GoApiClient
|
5
|
+
class HttpFetcher
|
6
|
+
|
7
|
+
def initialize(options={})
|
8
|
+
@username = options[:username]
|
9
|
+
@password = options[:password]
|
10
|
+
end
|
11
|
+
|
12
|
+
def get(url, options={})
|
13
|
+
uri = URI.parse(url)
|
14
|
+
|
15
|
+
puts "[DEBUG] fetching #{url}"
|
16
|
+
|
17
|
+
password = options[:password] || uri.password || @password
|
18
|
+
username = options[:username] || uri.user || @username
|
19
|
+
params = options[:params] || {}
|
20
|
+
|
21
|
+
uri.query = URI.encode_www_form(params) if params.any?
|
22
|
+
|
23
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
24
|
+
http.use_ssl = uri.scheme == 'https'
|
25
|
+
|
26
|
+
res = http.start do |http|
|
27
|
+
req = Net::HTTP::Get.new(uri.request_uri)
|
28
|
+
req.basic_auth(username, password) if username || password
|
29
|
+
http.request(req)
|
30
|
+
end
|
31
|
+
|
32
|
+
case res
|
33
|
+
when Net::HTTPSuccess
|
34
|
+
return res
|
35
|
+
end
|
36
|
+
res.error!
|
37
|
+
end
|
38
|
+
|
39
|
+
def get_response_body(url, options={})
|
40
|
+
get(url, options).body
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,64 @@
|
|
1
|
+
module GoApiClient
|
2
|
+
class Job
|
3
|
+
attr_accessor :artifacts_uri, :console_log_url, :url, :identifier, :http_fetcher, :name
|
4
|
+
|
5
|
+
PROPERTIES = {
|
6
|
+
:duration => :cruise_job_duration,
|
7
|
+
:result => :cruise_job_result,
|
8
|
+
:scheduled => :cruise_timestamp_01_scheduled,
|
9
|
+
:assigned => :cruise_timestamp_02_assigned,
|
10
|
+
:preparing => :cruise_timestamp_03_preparing,
|
11
|
+
:building => :cruise_timestamp_04_building,
|
12
|
+
:completing => :cruise_timestamp_05_completing,
|
13
|
+
:completed => :cruise_timestamp_06_completed,
|
14
|
+
}
|
15
|
+
|
16
|
+
attr_accessor *PROPERTIES.keys
|
17
|
+
|
18
|
+
include GoApiClient::Helpers::SimpleAttributesSupport
|
19
|
+
|
20
|
+
def initialize(root, attributes={})
|
21
|
+
@root = root
|
22
|
+
super(attributes)
|
23
|
+
end
|
24
|
+
|
25
|
+
class << self
|
26
|
+
def from(url, attributes = {})
|
27
|
+
attributes[:http_fetcher] ||= GoApiClient::HttpFetcher.new
|
28
|
+
doc = Nokogiri::XML(attributes[:http_fetcher].get_response_body(url))
|
29
|
+
self.new(doc.root, attributes).parse!
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def parse!
|
34
|
+
self.artifacts_uri = @root.xpath("./artifacts").first.attributes["baseUri"].value
|
35
|
+
self.url = href_from(@root.xpath("./link[@rel='self']"))
|
36
|
+
self.identifier = @root.xpath('./id').first.content
|
37
|
+
self.name = @root.attributes['name'].value
|
38
|
+
PROPERTIES.each do |variable, property_name|
|
39
|
+
property_value = @root.xpath("./properties/property[@name='#{property_name}']").first.content rescue nil
|
40
|
+
|
41
|
+
next if property_value.nil? || property_value.empty?
|
42
|
+
|
43
|
+
if property_name =~ /timestamp/
|
44
|
+
property_value = Time.parse(property_value).utc
|
45
|
+
elsif property_value =~ /^\d+$/
|
46
|
+
property_value = property_value.to_i
|
47
|
+
end
|
48
|
+
self.send("#{variable}=", property_value)
|
49
|
+
end
|
50
|
+
|
51
|
+
@root = nil
|
52
|
+
self
|
53
|
+
end
|
54
|
+
|
55
|
+
def console_log_url
|
56
|
+
@console_log_url ||= "#{artifacts_uri}/cruise-output/console.log"
|
57
|
+
end
|
58
|
+
|
59
|
+
private
|
60
|
+
def href_from(xml)
|
61
|
+
xml.first.attribute('href').value unless xml.empty?
|
62
|
+
end
|
63
|
+
end
|
64
|
+
end
|
@@ -0,0 +1,49 @@
|
|
1
|
+
module GoApiClient
|
2
|
+
class Pipeline
|
3
|
+
attr_accessor :url, :commits, :label, :counter, :authors, :stages, :name, :http_fetcher, :identifier, :schedule_time
|
4
|
+
|
5
|
+
include GoApiClient::Helpers::SimpleAttributesSupport
|
6
|
+
|
7
|
+
def initialize(root, attributes={})
|
8
|
+
@root = root
|
9
|
+
super(attributes)
|
10
|
+
end
|
11
|
+
|
12
|
+
class << self
|
13
|
+
def from(url, attributes = {})
|
14
|
+
attributes[:http_fetcher] ||= GoApiClient::HttpFetcher.new
|
15
|
+
doc = Nokogiri::XML(attributes[:http_fetcher].get_response_body(url))
|
16
|
+
self.new(doc.root, attributes).parse!
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def stages
|
21
|
+
@stages ||= []
|
22
|
+
end
|
23
|
+
|
24
|
+
def parse!
|
25
|
+
self.name = @root.attributes["name"].value
|
26
|
+
self.label = @root.attributes["label"].value
|
27
|
+
self.counter = @root.attributes["counter"].value.to_i
|
28
|
+
self.url = href_from(@root.xpath("./link[@rel='self']"))
|
29
|
+
self.identifier = @root.xpath("./id").first.content
|
30
|
+
self.schedule_time = Time.parse(@root.xpath('./scheduleTime').first.content).utc
|
31
|
+
self.commits = @root.xpath('./materials/material[@type != "DependencyMaterial"]/modifications/changeset').collect do |changeset|
|
32
|
+
Commit.new(changeset).parse!
|
33
|
+
end
|
34
|
+
|
35
|
+
@root = nil
|
36
|
+
self
|
37
|
+
end
|
38
|
+
|
39
|
+
def authors
|
40
|
+
@authors ||= stages.first.authors
|
41
|
+
end
|
42
|
+
|
43
|
+
private
|
44
|
+
def href_from(xml)
|
45
|
+
xml.first.attribute('href').value unless xml.empty?
|
46
|
+
end
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
@@ -0,0 +1,57 @@
|
|
1
|
+
require 'time'
|
2
|
+
module GoApiClient
|
3
|
+
class Stage
|
4
|
+
attr_accessor :authors, :url, :name, :result, :jobs, :pipeline, :completed_at, :pipeline_cache, :http_fetcher, :counter, :identifier
|
5
|
+
|
6
|
+
include GoApiClient::Helpers::SimpleAttributesSupport
|
7
|
+
|
8
|
+
def initialize(root, attributes={})
|
9
|
+
@root = root
|
10
|
+
super(attributes)
|
11
|
+
end
|
12
|
+
|
13
|
+
class << self
|
14
|
+
def from(url, attributes = {})
|
15
|
+
attributes[:http_fetcher] ||= GoApiClient::HttpFetcher.new
|
16
|
+
doc = Nokogiri::XML(attributes[:http_fetcher].get_response_body(url))
|
17
|
+
self.new(doc.root, attributes).parse!
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def parse!
|
22
|
+
self.name = @root.attributes['name'].value
|
23
|
+
self.counter = @root.attributes['counter'].value.to_i
|
24
|
+
self.url = href_from(@root.xpath("./link[@rel='self']"))
|
25
|
+
self.result = @root.xpath("./result").first.content
|
26
|
+
self.completed_at = Time.parse(@root.xpath("./updated").first.content).utc
|
27
|
+
self.jobs = @root.xpath("./jobs/job").collect do |job_element|
|
28
|
+
Job.from(job_element.attributes["href"].value, :http_fetcher => http_fetcher)
|
29
|
+
end
|
30
|
+
self.identifier = @root.xpath('./id').first.content
|
31
|
+
|
32
|
+
pipeline_link = @root.xpath("./pipeline").first.attributes["href"].value
|
33
|
+
|
34
|
+
pipeline = @pipeline_cache[pipeline_link] || Pipeline.from(pipeline_link, :http_fetcher => http_fetcher)
|
35
|
+
pipeline.stages << self
|
36
|
+
|
37
|
+
self.pipeline_cache[pipeline_link] ||= pipeline
|
38
|
+
@root = nil
|
39
|
+
self
|
40
|
+
end
|
41
|
+
|
42
|
+
def failed?
|
43
|
+
"Failed" == @result
|
44
|
+
end
|
45
|
+
|
46
|
+
def passed?
|
47
|
+
!failed?
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
def href_from(xml)
|
52
|
+
xml.first.attribute('href').value unless xml.empty?
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
module GoApiClient
|
2
|
+
class User
|
3
|
+
|
4
|
+
attr_accessor :name, :email
|
5
|
+
|
6
|
+
def initialize(name, email)
|
7
|
+
@name = name
|
8
|
+
@email = email
|
9
|
+
end
|
10
|
+
|
11
|
+
def ==(other)
|
12
|
+
other && self.class.equal?(other.class) &&
|
13
|
+
name == other.name &&
|
14
|
+
email == other.email
|
15
|
+
end
|
16
|
+
|
17
|
+
def hash
|
18
|
+
self.class.hash ^ name.hash ^ email.hash
|
19
|
+
end
|
20
|
+
|
21
|
+
def to_s
|
22
|
+
"#{name} <#{email}>"
|
23
|
+
end
|
24
|
+
|
25
|
+
def inspect
|
26
|
+
"User(#{to_s})"
|
27
|
+
end
|
28
|
+
|
29
|
+
class << self
|
30
|
+
def parse(str)
|
31
|
+
_, name, email = *str.match(/(.*) <(.+?)>/)
|
32
|
+
self.new(name.strip, email.strip)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
-----BEGIN RSA PRIVATE KEY-----
|
2
|
+
MIIEpQIBAAKCAQEAqtGGoK2+R+bUrPdiaXMOlp+r/qdsb9+8hBCIPHkmfDcGIxWT
|
3
|
+
/UY1x7EdWu3RC1BESwv4RMEtQvu+uCJi+tszRg3JNcZ/yrv0BxhYUTLRRdIlkzRK
|
4
|
+
j0eojlIUHsMZIL8KoO6obhT54K68Yr0OaylMxCXwY9bJv0SXkaxBlVf1b+N7A4j0
|
5
|
+
9MNXUqRAX8w8BLBgW9nzFt0fEr38bsp2KnWEYMDJ+O+gCiP0eMbflHvnGHWOk9zf
|
6
|
+
yBh+nNuatEUTOzhMo9A93tyilq7uzMu8b1wE4NQehNXzkYtUrKHB4OdxZUIaHzZ6
|
7
|
+
M6ldxlTvcdHe1QDTJ/sr+EgwUi9gL4y1UZ1MNQIDAQABAoIBAQCMGqiad4bfQIPl
|
8
|
+
jk5ogRdREYunpbi6Fb9wboLfXtri/NqKwjMMhJ6tuCaEoxRXfDFXgGzUL8Go9ASc
|
9
|
+
0I9wg4ONjNcgxTuhlAF2JFCj4NNmuhNZpoUU+chVWxrnlEuy4R6dmsII8Cl3ULpx
|
10
|
+
HfGKkWhGZXvC17PHrkHHGIr+LBPB/XKpQNTinMSDVFmdyFWsAoJsaZKTA9Kj+84b
|
11
|
+
Z3fORNZq8hJZlyRExr/uk4MlZ6GjfHJwF7lHFnFOq1+dV/1IaaqXgWKYAU/YrEHA
|
12
|
+
ZcxteMFEv5+6SCBRSmd9jrN9OEEimmeqNOGt2IpXywZ+I74KWKEncM2BzJ7L73R4
|
13
|
+
oJxhiHQtAoGBANHXZ9UZMDDd0zRGxhmUGk71aVWhsNquiQ/RV7JORVRlG7/1cVKd
|
14
|
+
9SYCe9tIFjC0ZmvW7xpcfc7qivuno8JOFC8W+ETPGKZ6BWZcwXelQfWW8MJrmxO7
|
15
|
+
Q1UwlAq37fat5aC42581H7aGv3wWx21qg44Nrt3HRq4ncCHSGqzvDuQTAoGBANBk
|
16
|
+
qIDZY/UwAh7dwSvHB6lh2U4RgXOJXdklE9eaHpKFSfHkoAbLc8nNgwVI38Vgwh8L
|
17
|
+
YsembDnbWulocajIkeRAXMQSZlIpTS5KGp6Jt2LeWJeAgYro4o6n4daOFFLzKWPd
|
18
|
+
k80vK+vRT39N1BP0rPH3vwQPUyAy/pow3PEejseXAoGBAIkrHZyXEoFe/6i0etpN
|
19
|
+
jcT/dxOa1licrsvANGtB7t/0F+erMaCn0JBAH2aAAMFlq23i2fmJbFPNzXwjYVCq
|
20
|
+
aVc+1JtmJN7t9ImtKGplhHBdcpQkcwK67pDJaHx5LvyJQAmHzUiNGWXfP1yGJ2bG
|
21
|
+
sagyGZSvpuxAq3PwO6+/tSQxAoGBAIcTt+VNA+254KYBN2UY7W5tbl2cGzy4nYxS
|
22
|
+
7DmkPIzcuMGCX/gHiFYWUAbs5Z8ayLk2uCCRTzVxacxBVusAlxBMZ9Tv2EMJYm3O
|
23
|
+
utJokeYUGXiaY12W9sNhLpHUJnheBUYmKdel6+I/Gjh6Si1lO3TcEYSgKlGEvGNV
|
24
|
+
qODh3cqhAoGAIwzj5FguiXvaZLagJkmeDH6zKdSKpEybiks6Br1H3/k73c2cN5F5
|
25
|
+
tFdmbCMUOjhZRJvNHDqxS9VNo4LNd/N54OAeNOnLuxR+WHiUiAaB6xUHy3DPPo7w
|
26
|
+
nv7QikVJH/hik3JChoCRY5IPIs9y0p4AHwNbUvjX+4adnCyjhkU8q40=
|
27
|
+
-----END RSA PRIVATE KEY-----
|
@@ -0,0 +1 @@
|
|
1
|
+
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCq0Yagrb5H5tSs92Jpcw6Wn6v+p2xv37yEEIg8eSZ8NwYjFZP9RjXHsR1a7dELUERLC/hEwS1C+764ImL62zNGDck1xn/Ku/QHGFhRMtFF0iWTNEqPR6iOUhQewxkgvwqg7qhuFPngrrxivQ5rKUzEJfBj1sm/RJeRrEGVV/Vv43sDiPT0w1dSpEBfzDwEsGBb2fMW3R8SvfxuynYqdYRgwMn476AKI/R4xt+Ue+cYdY6T3N/IGH6c25q0RRM7OEyj0D3e3KKWru7My7xvXATg1B6E1fORi1SsocHg53FlQhofNnozqV3GVO9x0d7VANMn+yv4SDBSL2AvjLVRnUw1 saas@ira.corporate.thoughtworks.com
|
data/ssh_keys/git-ssh
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
3
|
+
|
4
|
+
<job name="Test">
|
5
|
+
<link rel="self"
|
6
|
+
href="http://go-server.1.project:8153/go/api/jobs/1.xml"/>
|
7
|
+
<id><![CDATA[urn:x-go.studios.thoughtworks.com:job-id:defaultPipeline:1:Units:1:Test]]></id>
|
8
|
+
<pipeline name="defaultPipeline" counter="1" label="1"/>
|
9
|
+
<stage name="Units" counter="1"
|
10
|
+
href="http://go-server.1.project:8153/go/api/stages/1.xml"/>
|
11
|
+
<result>Passed</result>
|
12
|
+
<state>Completed</state>
|
13
|
+
<properties>
|
14
|
+
<property
|
15
|
+
name="cruise_agent"><![CDATA[go-agent-01.1.project]]></property>
|
16
|
+
<property name="cruise_job_duration"><![CDATA[80]]></property>
|
17
|
+
<property name="cruise_job_id"><![CDATA[1]]></property>
|
18
|
+
<property name="cruise_job_result"><![CDATA[Passed]]></property>
|
19
|
+
<property name="cruise_pipeline_counter"><![CDATA[1]]></property>
|
20
|
+
<property name="cruise_pipeline_label"><![CDATA[1]]></property>
|
21
|
+
<property name="cruise_stage_counter"><![CDATA[1]]></property>
|
22
|
+
<property
|
23
|
+
name="cruise_timestamp_01_scheduled"><![CDATA[2012-06-05T08:33:09Z]]></property>
|
24
|
+
<property
|
25
|
+
name="cruise_timestamp_02_assigned"><![CDATA[2012-06-05T08:34:51Z]]></property>
|
26
|
+
<property
|
27
|
+
name="cruise_timestamp_03_preparing"><![CDATA[2012-06-05T08:34:56Z]]></property>
|
28
|
+
<property
|
29
|
+
name="cruise_timestamp_04_building"><![CDATA[2012-06-05T08:34:58Z]]></property>
|
30
|
+
<property
|
31
|
+
name="cruise_timestamp_05_completing"><![CDATA[2012-06-05T08:36:19Z]]></property>
|
32
|
+
<property
|
33
|
+
name="cruise_timestamp_06_completed"><![CDATA[2012-06-05T08:36:19Z]]></property>
|
34
|
+
</properties>
|
35
|
+
<agent uuid="0a0b859f-406d-4d22-9f7f-6f71d9b45a77"/>
|
36
|
+
<artifacts
|
37
|
+
baseUri="http://go-server.1.project:8153/go/files/defaultPipeline/1/Units/1/Test"
|
38
|
+
pathFromArtifactRoot="pipelines/defaultPipeline/1/Units/1/Test"/>
|
39
|
+
<resources/>
|
40
|
+
<environmentvariables/>
|
41
|
+
</job>
|
@@ -0,0 +1,43 @@
|
|
1
|
+
|
2
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
3
|
+
|
4
|
+
<job name="Jasmine">
|
5
|
+
<link rel="self"
|
6
|
+
href="http://go-server.1.project:8153/go/api/jobs/2.xml"/>
|
7
|
+
<id><![CDATA[urn:x-go.studios.thoughtworks.com:job-id:defaultPipeline:1:Functionals:1:Jasmine]]></id>
|
8
|
+
<pipeline name="defaultPipeline" counter="1" label="1"/>
|
9
|
+
<stage name="Functionals" counter="1"
|
10
|
+
href="http://go-server.1.project:8153/go/api/stages/2.xml"/>
|
11
|
+
<result>Passed</result>
|
12
|
+
<state>Completed</state>
|
13
|
+
<properties>
|
14
|
+
<property
|
15
|
+
name="cruise_agent"><![CDATA[go-agent-01.1.project]]></property>
|
16
|
+
<property name="cruise_job_duration"><![CDATA[18]]></property>
|
17
|
+
<property name="cruise_job_id"><![CDATA[2]]></property>
|
18
|
+
<property name="cruise_job_result"><![CDATA[Passed]]></property>
|
19
|
+
<property name="cruise_pipeline_counter"><![CDATA[1]]></property>
|
20
|
+
<property name="cruise_pipeline_label"><![CDATA[1]]></property>
|
21
|
+
<property name="cruise_stage_counter"><![CDATA[1]]></property>
|
22
|
+
<property
|
23
|
+
name="cruise_timestamp_01_scheduled"><![CDATA[2012-06-05T08:36:19Z]]></property>
|
24
|
+
<property
|
25
|
+
name="cruise_timestamp_02_assigned"><![CDATA[2012-06-05T08:36:29Z]]></property>
|
26
|
+
<property
|
27
|
+
name="cruise_timestamp_03_preparing"><![CDATA[2012-06-05T08:36:39Z]]></property>
|
28
|
+
<property
|
29
|
+
name="cruise_timestamp_04_building"><![CDATA[2012-06-05T08:36:40Z]]></property>
|
30
|
+
<property
|
31
|
+
name="cruise_timestamp_05_completing"><![CDATA[2012-06-05T08:36:58Z]]></property>
|
32
|
+
<property
|
33
|
+
name="cruise_timestamp_06_completed"><![CDATA[2012-06-05T08:36:59Z]]></property>
|
34
|
+
</properties>
|
35
|
+
<agent uuid="0a0b859f-406d-4d22-9f7f-6f71d9b45a77"/>
|
36
|
+
<artifacts
|
37
|
+
baseUri="http://go-server.1.project:8153/go/files/defaultPipeline/1/Functionals/1/Jasmine"
|
38
|
+
pathFromArtifactRoot="pipelines/defaultPipeline/1/Functionals/1/Jasmine"/>
|
39
|
+
<resources/>
|
40
|
+
<environmentvariables>
|
41
|
+
<variable name="DISPLAY"><![CDATA[:1]]></variable>
|
42
|
+
</environmentvariables>
|
43
|
+
</job>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
|
3
|
+
<job name="Test">
|
4
|
+
<link rel="self"
|
5
|
+
href="http://go-server.1.project:8153/go/api/jobs/3.xml"/>
|
6
|
+
<id><![CDATA[urn:x-go.studios.thoughtworks.com:job-id:defaultPipeline:2:Units:1:Test]]></id>
|
7
|
+
<pipeline name="defaultPipeline" counter="2" label="2"/>
|
8
|
+
<stage name="Units" counter="1"
|
9
|
+
href="http://go-server.1.project:8153/go/api/stages/3.xml"/>
|
10
|
+
<result>Failed</result>
|
11
|
+
<state>Completed</state>
|
12
|
+
<properties>
|
13
|
+
<property
|
14
|
+
name="cruise_agent"><![CDATA[go-agent-01.1.project]]></property>
|
15
|
+
<property name="cruise_job_duration"><![CDATA[39]]></property>
|
16
|
+
<property name="cruise_job_id"><![CDATA[3]]></property>
|
17
|
+
<property name="cruise_job_result"><![CDATA[Failed]]></property>
|
18
|
+
<property name="cruise_pipeline_counter"><![CDATA[2]]></property>
|
19
|
+
<property name="cruise_pipeline_label"><![CDATA[2]]></property>
|
20
|
+
<property name="cruise_stage_counter"><![CDATA[1]]></property>
|
21
|
+
<property
|
22
|
+
name="cruise_timestamp_01_scheduled"><![CDATA[2012-06-05T10:02:10Z]]></property>
|
23
|
+
<property
|
24
|
+
name="cruise_timestamp_02_assigned"><![CDATA[2012-06-05T10:02:19Z]]></property>
|
25
|
+
<property
|
26
|
+
name="cruise_timestamp_03_preparing"><![CDATA[2012-06-05T10:02:29Z]]></property>
|
27
|
+
<property
|
28
|
+
name="cruise_timestamp_04_building"><![CDATA[2012-06-05T10:02:29Z]]></property>
|
29
|
+
<property
|
30
|
+
name="cruise_timestamp_05_completing"><![CDATA[2012-06-05T10:03:09Z]]></property>
|
31
|
+
<property
|
32
|
+
name="cruise_timestamp_06_completed"><![CDATA[2012-06-05T10:03:09Z]]></property>
|
33
|
+
</properties>
|
34
|
+
<agent uuid="0a0b859f-406d-4d22-9f7f-6f71d9b45a77"/>
|
35
|
+
<artifacts
|
36
|
+
baseUri="http://go-server.1.project:8153/go/files/defaultPipeline/2/Units/1/Test"
|
37
|
+
pathFromArtifactRoot="pipelines/defaultPipeline/2/Units/1/Test"/>
|
38
|
+
<resources/>
|
39
|
+
<environmentvariables/>
|
40
|
+
</job>
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
|
3
|
+
<job name="Test">
|
4
|
+
<link rel="self"
|
5
|
+
href="http://go-server.1.project:8153/go/api/jobs/4.xml"/>
|
6
|
+
<id><![CDATA[urn:x-go.studios.thoughtworks.com:job-id:defaultPipeline:3:Units:1:Test]]></id>
|
7
|
+
<pipeline name="defaultPipeline" counter="3" label="3"/>
|
8
|
+
<stage name="Units" counter="1"
|
9
|
+
href="http://go-server.1.project:8153/go/api/stages/4.xml"/>
|
10
|
+
<result>Passed</result>
|
11
|
+
<state>Completed</state>
|
12
|
+
<properties>
|
13
|
+
<property
|
14
|
+
name="cruise_agent"><![CDATA[go-agent-01.1.project]]></property>
|
15
|
+
<property name="cruise_job_duration"><![CDATA[39]]></property>
|
16
|
+
<property name="cruise_job_id"><![CDATA[4]]></property>
|
17
|
+
<property name="cruise_job_result"><![CDATA[Passed]]></property>
|
18
|
+
<property name="cruise_pipeline_counter"><![CDATA[3]]></property>
|
19
|
+
<property name="cruise_pipeline_label"><![CDATA[3]]></property>
|
20
|
+
<property name="cruise_stage_counter"><![CDATA[1]]></property>
|
21
|
+
<property
|
22
|
+
name="cruise_timestamp_01_scheduled"><![CDATA[2012-06-05T14:39:27Z]]></property>
|
23
|
+
<property
|
24
|
+
name="cruise_timestamp_02_assigned"><![CDATA[2012-06-05T14:39:39Z]]></property>
|
25
|
+
<property
|
26
|
+
name="cruise_timestamp_03_preparing"><![CDATA[2012-06-05T14:39:49Z]]></property>
|
27
|
+
<property
|
28
|
+
name="cruise_timestamp_04_building"><![CDATA[2012-06-05T14:39:50Z]]></property>
|
29
|
+
<property
|
30
|
+
name="cruise_timestamp_05_completing"><![CDATA[2012-06-05T14:40:29Z]]></property>
|
31
|
+
<property
|
32
|
+
name="cruise_timestamp_06_completed"><![CDATA[2012-06-05T14:40:29Z]]></property>
|
33
|
+
</properties>
|
34
|
+
<agent uuid="0a0b859f-406d-4d22-9f7f-6f71d9b45a77"/>
|
35
|
+
<artifacts
|
36
|
+
baseUri="http://go-server.1.project:8153/go/files/defaultPipeline/3/Units/1/Test"
|
37
|
+
pathFromArtifactRoot="pipelines/defaultPipeline/3/Units/1/Test"/>
|
38
|
+
<resources/>
|
39
|
+
<environmentvariables/>
|
40
|
+
</job>
|