cyclid 0.3.2 → 0.3.3
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 +4 -4
- data/app/cyclid/job/evaluator.rb +2 -1
- data/app/cyclid/job/job.rb +2 -1
- data/app/cyclid/job/runner.rb +9 -0
- data/app/cyclid/job/stage.rb +1 -1
- data/app/cyclid/plugins/api/github/helpers.rb +6 -2
- data/app/cyclid/plugins/api/github/pull_request.rb +5 -2
- data/lib/cyclid/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a6d5c64f60ead996640a63f571a67236cbcc6185
|
4
|
+
data.tar.gz: 478f7805d7e8153aa1d98a55da62f52d8543f504
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d9aaeaa77e2f3d9c2c8f0cac5220e4c6a52b95411d8d7123a28b08255d4aa290276da0682c8e12cc6f93bd2c3682be398bb7ef8f5ac7654d5986a18a36bb4bb2
|
7
|
+
data.tar.gz: 31b39a88162dfb9998c65410dae99984bd68b0213484648b5bf2ec699648e5d8f2b17f7cf22dcd0fedb1098fef8444658771d70928732f3ac7b66332f4187fe8
|
data/app/cyclid/job/evaluator.rb
CHANGED
@@ -23,12 +23,13 @@ module Cyclid
|
|
23
23
|
class EvalException < RuntimeError
|
24
24
|
end
|
25
25
|
|
26
|
-
# Evalute an expression for "only_if" & "
|
26
|
+
# Evalute an expression for "only_if", "not_if" & "fail_if"
|
27
27
|
class Evaluator
|
28
28
|
class << self
|
29
29
|
def only_if(statement, vars)
|
30
30
|
evaluate(statement, vars)
|
31
31
|
end
|
32
|
+
alias fail_if only_if
|
32
33
|
|
33
34
|
def not_if(statement, vars)
|
34
35
|
not evaluate(statement, vars) # rubocop:disable Style/Not
|
data/app/cyclid/job/job.rb
CHANGED
@@ -144,7 +144,7 @@ module Cyclid
|
|
144
144
|
end
|
145
145
|
stage_view.on_success = success_stage
|
146
146
|
|
147
|
-
# Now set the on_failure
|
147
|
+
# Now set the on_failure handler
|
148
148
|
stage_failure = { stage: job_stage[:on_failure] }
|
149
149
|
job_sequence << stage_failure \
|
150
150
|
unless job_stage[:on_failure].nil? or \
|
@@ -154,6 +154,7 @@ module Cyclid
|
|
154
154
|
# Merge in any modifiers
|
155
155
|
stage_view.only_if = job_stage[:only_if]
|
156
156
|
stage_view.not_if = job_stage[:not_if]
|
157
|
+
stage_view.fail_if = job_stage[:fail_if]
|
157
158
|
|
158
159
|
# Store the modified StageView
|
159
160
|
stages[stage_view.name.to_sym] = stage_view
|
data/app/cyclid/job/runner.rb
CHANGED
@@ -156,6 +156,15 @@ module Cyclid
|
|
156
156
|
# rubocop:enable Style/MultilineTernaryOperator
|
157
157
|
end
|
158
158
|
|
159
|
+
# Fail the stage if fail_if applies
|
160
|
+
if stage.fail_if && Evaluator.fail_if(stage.fail_if, @ctx)
|
161
|
+
@notifier.write "Stage #{stage.name} v#{stage.version} failed: #{stage.fail_if}\n"
|
162
|
+
|
163
|
+
success = false
|
164
|
+
|
165
|
+
Cyclid.logger.info "stage failed due to #{stage.fail_if}"
|
166
|
+
end
|
167
|
+
|
159
168
|
# Decide which stage to run next depending on the outcome of this
|
160
169
|
# one
|
161
170
|
if success
|
data/app/cyclid/job/stage.rb
CHANGED
@@ -25,7 +25,7 @@ module Cyclid
|
|
25
25
|
# the database object.
|
26
26
|
class StageView
|
27
27
|
attr_reader :name, :version, :steps
|
28
|
-
attr_accessor :on_success, :on_failure, :only_if, :not_if
|
28
|
+
attr_accessor :on_success, :on_failure, :only_if, :not_if, :fail_if
|
29
29
|
|
30
30
|
def initialize(arg)
|
31
31
|
if arg.is_a? Cyclid::API::Stage
|
@@ -29,6 +29,10 @@ module Cyclid
|
|
29
29
|
@pr ||= @payload['pull_request']
|
30
30
|
end
|
31
31
|
|
32
|
+
def pr_number
|
33
|
+
@pr_number ||= pull_request['number']
|
34
|
+
end
|
35
|
+
|
32
36
|
def pr_head
|
33
37
|
@pr_head ||= pull_request['head']
|
34
38
|
end
|
@@ -112,7 +116,7 @@ module Cyclid
|
|
112
116
|
sha = nil
|
113
117
|
type = nil
|
114
118
|
tree['tree'].each do |file|
|
115
|
-
match = file['path'].match(/\A\.cyclid\.(json|yml)\z/)
|
119
|
+
match = file['path'].match(/\A\.cyclid\.(json|yml|yaml)\z/)
|
116
120
|
next unless match
|
117
121
|
|
118
122
|
sha = file['sha']
|
@@ -127,7 +131,7 @@ module Cyclid
|
|
127
131
|
case type
|
128
132
|
when 'json'
|
129
133
|
Oj.load(Base64.decode64(blob.content))
|
130
|
-
when 'yml'
|
134
|
+
when 'yml', 'yaml'
|
131
135
|
YAML.load(Base64.decode64(blob.content))
|
132
136
|
end
|
133
137
|
end
|
@@ -117,7 +117,10 @@ module Cyclid
|
|
117
117
|
ctx = { github_event: 'pull_request',
|
118
118
|
github_user: pull_request['user']['login'],
|
119
119
|
github_ref: pr_ref,
|
120
|
-
github_comment: pull_request['title']
|
120
|
+
github_comment: pull_request['title'],
|
121
|
+
github_owner: pr_repository.owner,
|
122
|
+
github_repository: pr_repository.name,
|
123
|
+
github_number: pr_number }
|
121
124
|
|
122
125
|
callback = GithubCallback.new(auth_token, pr_repository, pr_sha, linkback_url)
|
123
126
|
job_from_definition(job_definition, callback, ctx)
|
@@ -154,7 +157,7 @@ module Cyclid
|
|
154
157
|
end
|
155
158
|
|
156
159
|
# If we didn't update an existing source definition, insert the new one
|
157
|
-
normalized <<
|
160
|
+
normalized << new_source unless updated
|
158
161
|
|
159
162
|
normalized.compact
|
160
163
|
end
|
data/lib/cyclid/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cyclid
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kristian Van Der Vliet
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-
|
11
|
+
date: 2017-06-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: oj
|