last_green_go_pipeline 1.1.4 → 1.2.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6286a4e98df356ca29cc4f976b32e3ca714f354c
4
- data.tar.gz: cfcfdc2060e8eeac4f6fa15e1dbdb246ff7821ea
3
+ metadata.gz: 3d8f6092b30076f8d0374433c945e07fcea0bc12
4
+ data.tar.gz: 9a238cfad0e42dfadf7427806fd42aace6af7f59
5
5
  SHA512:
6
- metadata.gz: a76ba09cb48babb40e44651325e0471a5b45a1a1f9c7d03d314b7b098dd2a6f28d808a97575837fb96e04bcc8e2f9dbfd927d26e57b55cb1e1351e925a5d0e62
7
- data.tar.gz: c8122ea4efefa3af712f2edeb65c388d16d59fd3e92d176f1dc0d19cd4ae63564ff4ce87660d1bf49b4aa897dd168143d768bf281c47fc09d2a79cd8df70e2de
6
+ metadata.gz: a73e3191a24e8f3f884886d32c709c66200befcb8e0535dae4b83c630fd6fd33eb9a1c560e78463a088815c157e6af73aafd464d65f3b086f2f735d9f861540d
7
+ data.tar.gz: cedce87165e764adb9c39bcd42a5f5bb3fafc3265e2576712560183abcac786dd16916eaea85f65dbda86a614d2e51c5947dffb2db3caaaa797a3e9e89f616be
@@ -3,7 +3,7 @@ Bundler.setup
3
3
  require 'go_api_client'
4
4
  require 'pstore'
5
5
  require 'benchmark'
6
- require_relative 'green_build'
6
+ require_relative 'stage_run'
7
7
 
8
8
  module GoCD
9
9
  class LastGreenBuildFetcher
@@ -21,7 +21,7 @@ module GoCD
21
21
  end
22
22
  end
23
23
 
24
- def fetch
24
+ def fetch(filters={})
25
25
  feed = nil
26
26
  ms = Benchmark.realtime do
27
27
  feed = GoApiClient.runs(@options)
@@ -29,22 +29,31 @@ module GoCD
29
29
  puts "fetched pipeline runs in #{ms/1000}sec" unless ENV['QUIET']
30
30
 
31
31
  pipelines = feed[:pipelines]
32
- remember(:latest_atom_entry_id, feed[:latest_atom_entry_id])
33
32
  puts "Checking for last green run of #{@stage}. Latest event: #{feed[:latest_atom_entry_id]}" unless ENV['QUIET']
34
33
 
34
+ find_green_stage(pipelines: pipelines, filters: filters).tap do |stage|
35
+ remember(:last_green_build, StageRun.new(stage)) if stage
36
+ end
37
+
38
+ remember(:latest_atom_entry_id, feed[:latest_atom_entry_id])
39
+ recall :last_green_build
40
+ end
41
+
42
+ private
43
+
44
+ def find_green_stage(params)
45
+ pipelines = params.delete(:pipelines)
46
+ filter = params.delete(:filters)
35
47
  pipelines.reverse.each do |pipeline|
36
48
  stage = pipeline.stages.find { |stage| stage.name == @stage }
37
49
  if stage && stage.result == 'Passed'
38
50
  stage.pipeline = pipeline
39
- return remember(:last_green_build, GreenBuild.new(stage))
51
+ return stage
40
52
  end
41
53
  end
42
-
43
- recall :last_green_build
54
+ return nil
44
55
  end
45
56
 
46
- private
47
-
48
57
  def remember(key, value)
49
58
  @cache.transaction do
50
59
  if @cache[@pipeline]
@@ -1,11 +1,12 @@
1
1
  module GoCD
2
2
 
3
- class GreenBuild
3
+ class StageRun
4
4
 
5
- attr_reader :completed_at, :materials, :dependencies, :instance, :pipeline_name, :pipeline_counter
5
+ attr_reader :completed_at, :materials, :dependencies, :instance, :pipeline_name, :pipeline_counter, :result
6
6
 
7
7
  def initialize(stage)
8
8
  @completed_at = stage.completed_at
9
+ @result = stage.result
9
10
  @materials = stage.pipeline.materials
10
11
  @dependencies = stage.pipeline.dependencies
11
12
  @pipeline_name = stage.pipeline.name
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: last_green_go_pipeline
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.4
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Bill DePhillips
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-15 00:00:00.000000000 Z
11
+ date: 2014-07-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec
@@ -47,7 +47,7 @@ extensions: []
47
47
  extra_rdoc_files: []
48
48
  files:
49
49
  - lib/go_cd/last_green_build_fetcher.rb
50
- - lib/go_cd/green_build.rb
50
+ - lib/go_cd/stage_run.rb
51
51
  - LICENSE
52
52
  - README.md
53
53
  homepage: https://github.com/rearadmiral/last_green_go_pipeline