pipe_fitter 0.2.2 → 0.2.5
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/.github/workflows/test.yml +65 -0
- data/exe/pipe_fitter +2 -0
- data/lib/pipe_fitter/pipeline.rb +14 -19
- data/lib/pipe_fitter/version.rb +1 -1
- data/lib/pipe_fitter/yaml_loader.rb +3 -1
- data/pipe_fitter.gemspec +1 -1
- metadata +18 -17
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 6cb9f2f924f88ec2ab37a6ec3c61c2ea23700d88e3fba2f923801f46cdd79a47
|
|
4
|
+
data.tar.gz: 04ff627ba4eb1beef15b71051e278f1b1ca856fe109ebc4220b36ba5f628a7c3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4aff19dc044c5584b7f342d7a0d9e4c6899e09c45563c3a10ad4ce873488651a696a0cf69132f1307c1f10fb7d90344ef565213c4bed1162b556ebd34272ba86
|
|
7
|
+
data.tar.gz: 26b7035abcbc846efa2cdd700ca7954e4ce57403a7d83e8edad97820f3fcc014ea5b37221b718631cecb71b7b3aa03082693d131340a76e10ffd145d516942f1
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
name: test
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches:
|
|
6
|
+
- master
|
|
7
|
+
pull_request:
|
|
8
|
+
types:
|
|
9
|
+
- opened
|
|
10
|
+
- synchronize
|
|
11
|
+
- reopened
|
|
12
|
+
schedule:
|
|
13
|
+
- cron: "0 10 * * 5" # JST 19:00 (Fri)
|
|
14
|
+
|
|
15
|
+
env:
|
|
16
|
+
RUBYOPT: -EUTF-8
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
test:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
|
|
22
|
+
strategy:
|
|
23
|
+
fail-fast: false
|
|
24
|
+
|
|
25
|
+
matrix:
|
|
26
|
+
ruby:
|
|
27
|
+
- "2.6"
|
|
28
|
+
- "2.7"
|
|
29
|
+
- "3.0"
|
|
30
|
+
- "3.1"
|
|
31
|
+
- "3.2"
|
|
32
|
+
|
|
33
|
+
steps:
|
|
34
|
+
- uses: actions/checkout@v3
|
|
35
|
+
|
|
36
|
+
- uses: ruby/setup-ruby@v1
|
|
37
|
+
with:
|
|
38
|
+
ruby-version: ${{ matrix.ruby }}
|
|
39
|
+
bundler-cache: true
|
|
40
|
+
|
|
41
|
+
- run: bundle update --jobs $(nproc) --retry 3
|
|
42
|
+
|
|
43
|
+
- name: bundle update
|
|
44
|
+
run: |
|
|
45
|
+
set -xe
|
|
46
|
+
bundle config path vendor/bundle
|
|
47
|
+
bundle update --jobs $(nproc) --retry 3
|
|
48
|
+
|
|
49
|
+
- name: Setup Code Climate Test Reporter
|
|
50
|
+
uses: aktions/codeclimate-test-reporter@v1
|
|
51
|
+
with:
|
|
52
|
+
codeclimate-test-reporter-id: ${{ secrets.CC_TEST_REPORTER_ID }}
|
|
53
|
+
command: before-build
|
|
54
|
+
continue-on-error: true
|
|
55
|
+
|
|
56
|
+
- run: bundle exec rake test
|
|
57
|
+
timeout-minutes: 1
|
|
58
|
+
|
|
59
|
+
- name: Teardown Code Climate Test Reporter
|
|
60
|
+
uses: aktions/codeclimate-test-reporter@v1
|
|
61
|
+
with:
|
|
62
|
+
codeclimate-test-reporter-id: ${{ secrets.CC_TEST_REPORTER_ID }}
|
|
63
|
+
command: after-build
|
|
64
|
+
if: always()
|
|
65
|
+
continue-on-error: true
|
data/exe/pipe_fitter
CHANGED
|
@@ -60,6 +60,7 @@ module PipeFitter
|
|
|
60
60
|
p = client.find_registered(definition_file)
|
|
61
61
|
abort("Pipeline is not registered") if p.nil?
|
|
62
62
|
puts client.diff(p.id, definition_file, options[:format])
|
|
63
|
+
puts p.to_h.to_json
|
|
63
64
|
end
|
|
64
65
|
|
|
65
66
|
desc "find_update", "Find pipeline besed on name and uniqueId, update pipeline definition"
|
|
@@ -74,6 +75,7 @@ module PipeFitter
|
|
|
74
75
|
end
|
|
75
76
|
res = client.update(p.id, definition_file)
|
|
76
77
|
puts JSON.pretty_generate(res)
|
|
78
|
+
puts p.to_h.to_json
|
|
77
79
|
end
|
|
78
80
|
|
|
79
81
|
desc "diff_deploy_files DEFINITION_FILE", "Show deploy files differences"
|
data/lib/pipe_fitter/pipeline.rb
CHANGED
|
@@ -83,6 +83,15 @@ module PipeFitter
|
|
|
83
83
|
end
|
|
84
84
|
|
|
85
85
|
class PipelineBaseObjects
|
|
86
|
+
def initialize(objs)
|
|
87
|
+
@objs = (objs || []).map { |obj| symbolize_keys(obj) }
|
|
88
|
+
.sort_by { |obj| obj[:id] }.map do |obj|
|
|
89
|
+
obj.sort_by do |k, v|
|
|
90
|
+
[key_order.index(k) || key_order.size + 1, k.to_s, v.to_s]
|
|
91
|
+
end.to_h
|
|
92
|
+
end
|
|
93
|
+
end
|
|
94
|
+
|
|
86
95
|
def to_objs
|
|
87
96
|
case @objs
|
|
88
97
|
when Array then @objs.map { |obj| stringify_keys(obj) }
|
|
@@ -126,7 +135,7 @@ module PipeFitter
|
|
|
126
135
|
res = []
|
|
127
136
|
obj.each do |k, v|
|
|
128
137
|
next if skip_keys.include?(k)
|
|
129
|
-
(v
|
|
138
|
+
Array(v).each do |vv|
|
|
130
139
|
if vv.is_a?(Hash) && vv.key?(:ref)
|
|
131
140
|
res << { key: k, ref_value: vv[:ref] }
|
|
132
141
|
else
|
|
@@ -150,15 +159,8 @@ module PipeFitter
|
|
|
150
159
|
new(objs)
|
|
151
160
|
end
|
|
152
161
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
def initialize(objs)
|
|
156
|
-
@objs = (objs || []).map { |obj| symbolize_keys(obj) }
|
|
157
|
-
.sort_by { |obj| obj[:id] }.map do |obj|
|
|
158
|
-
obj.sort_by do |k, v|
|
|
159
|
-
[KEY_ORDER.index(k) || KEY_ORDER.size + 1, k.to_s, v.to_s]
|
|
160
|
-
end.to_h
|
|
161
|
-
end
|
|
162
|
+
def key_order
|
|
163
|
+
%i(id name).freeze
|
|
162
164
|
end
|
|
163
165
|
|
|
164
166
|
def to_api_opts
|
|
@@ -179,15 +181,8 @@ module PipeFitter
|
|
|
179
181
|
new(objs)
|
|
180
182
|
end
|
|
181
183
|
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
def initialize(objs)
|
|
185
|
-
@objs = (objs || []).map { |obj| symbolize_keys(obj) }
|
|
186
|
-
.sort_by { |obj| obj[:id] }.map do |obj|
|
|
187
|
-
obj.sort_by do |k, v|
|
|
188
|
-
[KEY_ORDER.index(k) || KEY_ORDER.size + 1, k.to_s, v.to_s]
|
|
189
|
-
end.to_h
|
|
190
|
-
end
|
|
184
|
+
def key_order
|
|
185
|
+
%i(id).freeze
|
|
191
186
|
end
|
|
192
187
|
|
|
193
188
|
def to_api_opts
|
data/lib/pipe_fitter/version.rb
CHANGED
|
@@ -12,6 +12,8 @@ module PipeFitter
|
|
|
12
12
|
def load(filename)
|
|
13
13
|
@search_path.unshift(Pathname.new(filename).dirname)
|
|
14
14
|
text = eval_erb(grep_v(filename, /^\s*#/))
|
|
15
|
+
YAML.load(text, aliases: true) || {}
|
|
16
|
+
rescue ArgumentError
|
|
15
17
|
YAML.load(text) || {}
|
|
16
18
|
rescue Psych::SyntaxError => e
|
|
17
19
|
text.split("\n").each_with_index do |l, i|
|
|
@@ -39,7 +41,7 @@ module PipeFitter
|
|
|
39
41
|
private
|
|
40
42
|
|
|
41
43
|
def eval_erb(data, context = {})
|
|
42
|
-
ERB.new(data,
|
|
44
|
+
ERB.new(data, trim_mode: "-").result(binding).strip
|
|
43
45
|
end
|
|
44
46
|
|
|
45
47
|
def grep_v(filename, pattern)
|
data/pipe_fitter.gemspec
CHANGED
|
@@ -25,11 +25,11 @@ Gem::Specification.new do |spec|
|
|
|
25
25
|
spec.add_runtime_dependency "thor"
|
|
26
26
|
spec.add_runtime_dependency "hashie"
|
|
27
27
|
spec.add_runtime_dependency "s3diff", ">= 0.1.2"
|
|
28
|
+
spec.add_runtime_dependency "rexml"
|
|
28
29
|
|
|
29
30
|
spec.add_development_dependency "bundler", ">= 1.3.5"
|
|
30
31
|
spec.add_development_dependency "rake"
|
|
31
32
|
spec.add_development_dependency "simplecov"
|
|
32
33
|
spec.add_development_dependency "test-unit"
|
|
33
34
|
spec.add_development_dependency "test-unit-rr"
|
|
34
|
-
spec.add_development_dependency "pry-byebug"
|
|
35
35
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: pipe_fitter
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.5
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- masa21kik
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2023-01-05 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: aws-sdk-s3
|
|
@@ -95,35 +95,35 @@ dependencies:
|
|
|
95
95
|
- !ruby/object:Gem::Version
|
|
96
96
|
version: 0.1.2
|
|
97
97
|
- !ruby/object:Gem::Dependency
|
|
98
|
-
name:
|
|
98
|
+
name: rexml
|
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
|
100
100
|
requirements:
|
|
101
101
|
- - ">="
|
|
102
102
|
- !ruby/object:Gem::Version
|
|
103
|
-
version:
|
|
104
|
-
type: :
|
|
103
|
+
version: '0'
|
|
104
|
+
type: :runtime
|
|
105
105
|
prerelease: false
|
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
|
107
107
|
requirements:
|
|
108
108
|
- - ">="
|
|
109
109
|
- !ruby/object:Gem::Version
|
|
110
|
-
version:
|
|
110
|
+
version: '0'
|
|
111
111
|
- !ruby/object:Gem::Dependency
|
|
112
|
-
name:
|
|
112
|
+
name: bundler
|
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
|
114
114
|
requirements:
|
|
115
115
|
- - ">="
|
|
116
116
|
- !ruby/object:Gem::Version
|
|
117
|
-
version:
|
|
117
|
+
version: 1.3.5
|
|
118
118
|
type: :development
|
|
119
119
|
prerelease: false
|
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
|
121
121
|
requirements:
|
|
122
122
|
- - ">="
|
|
123
123
|
- !ruby/object:Gem::Version
|
|
124
|
-
version:
|
|
124
|
+
version: 1.3.5
|
|
125
125
|
- !ruby/object:Gem::Dependency
|
|
126
|
-
name:
|
|
126
|
+
name: rake
|
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
|
128
128
|
requirements:
|
|
129
129
|
- - ">="
|
|
@@ -137,7 +137,7 @@ dependencies:
|
|
|
137
137
|
- !ruby/object:Gem::Version
|
|
138
138
|
version: '0'
|
|
139
139
|
- !ruby/object:Gem::Dependency
|
|
140
|
-
name:
|
|
140
|
+
name: simplecov
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
142
142
|
requirements:
|
|
143
143
|
- - ">="
|
|
@@ -151,7 +151,7 @@ dependencies:
|
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
152
|
version: '0'
|
|
153
153
|
- !ruby/object:Gem::Dependency
|
|
154
|
-
name: test-unit
|
|
154
|
+
name: test-unit
|
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
|
156
156
|
requirements:
|
|
157
157
|
- - ">="
|
|
@@ -165,7 +165,7 @@ dependencies:
|
|
|
165
165
|
- !ruby/object:Gem::Version
|
|
166
166
|
version: '0'
|
|
167
167
|
- !ruby/object:Gem::Dependency
|
|
168
|
-
name:
|
|
168
|
+
name: test-unit-rr
|
|
169
169
|
requirement: !ruby/object:Gem::Requirement
|
|
170
170
|
requirements:
|
|
171
171
|
- - ">="
|
|
@@ -186,6 +186,7 @@ executables:
|
|
|
186
186
|
extensions: []
|
|
187
187
|
extra_rdoc_files: []
|
|
188
188
|
files:
|
|
189
|
+
- ".github/workflows/test.yml"
|
|
189
190
|
- ".gitignore"
|
|
190
191
|
- ".travis.yml"
|
|
191
192
|
- Gemfile
|
|
@@ -205,7 +206,7 @@ homepage: https://github.com/masa21kik/pipe_fitter
|
|
|
205
206
|
licenses:
|
|
206
207
|
- MIT
|
|
207
208
|
metadata: {}
|
|
208
|
-
post_install_message:
|
|
209
|
+
post_install_message:
|
|
209
210
|
rdoc_options: []
|
|
210
211
|
require_paths:
|
|
211
212
|
- lib
|
|
@@ -220,8 +221,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
220
221
|
- !ruby/object:Gem::Version
|
|
221
222
|
version: '0'
|
|
222
223
|
requirements: []
|
|
223
|
-
rubygems_version: 3.
|
|
224
|
-
signing_key:
|
|
224
|
+
rubygems_version: 3.3.7
|
|
225
|
+
signing_key:
|
|
225
226
|
specification_version: 4
|
|
226
227
|
summary: PipeFitter is a tool for AWS Data Pipeline.
|
|
227
228
|
test_files: []
|