minos 0.3.7 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c0142872ab6be8e8cee71cdbe2705bb6df2569c758d41d97ec6849787d7293c2
4
- data.tar.gz: 8815a55df821773940a81d5fd58a96e0d03ac2be5e0bd47e702558683d4add8b
3
+ metadata.gz: 34694b91db8e98e5972dba9235a74d13f8d4e552bf5a5919c0150a7642bd3733
4
+ data.tar.gz: 3e94a19b7831ed8ca7e3a050ab8def2b32902c3bb042cda1fac202827c56c53d
5
5
  SHA512:
6
- metadata.gz: 7e56c8ad28f97066253cd00fd2a9245955df2bbd061779560bd053f64c5fa0cf7d9c6f360608a3f788fea14b85bc6085c2ba44b6a6cedc06e589945402b14c18
7
- data.tar.gz: 8e69df547ee98a68c203a64eee4bd9ac596bd3206d79941e18b44ff85d64930cd418ea026259fd457d32bd84d66a8849c07da69e7f71268590d4ef336fb89bf7
6
+ metadata.gz: 21a6c18652ca8a839960af8d27e9a34375c58ca7f1678b72d49c02c0bbeccd7392bd8aec3b687c2ace9e94f8e7d6125d617499045dc31d99d1d1f2563216cd9f
7
+ data.tar.gz: 465ff2b0f778c3d16fa2fddaacf6abb752ab2f047ce87ac4c78a52c85bb0c278530e589ac97ab1a26df8a68f015b59096beddc5f1c32fe5c07c072f416c61289
data/.ruby-version CHANGED
@@ -1 +1 @@
1
- 2.5.3
1
+ 3.2.2
data/.tool-versions ADDED
@@ -0,0 +1 @@
1
+ ruby 3.2.2
data/Dockerfile ADDED
@@ -0,0 +1,6 @@
1
+ FROM ruby:2.5.3-alpine3.7
2
+
3
+ WORKDIR /home/runner
4
+
5
+ RUN apk add --update --no-cache docker && \
6
+ gem install --no-document minos
data/README.md CHANGED
@@ -21,11 +21,31 @@ Minos is divided into two components:
21
21
  1. Building and publishing docker artifacts
22
22
  2. Deploying docker artifacts on a Kubernetes cluster
23
23
 
24
+ You can use minos from docker as well:
25
+
26
+ 1. Build the docker image
27
+
28
+ ```sh
29
+ docker build -t textmasterapps/minos:latest .
30
+ ```
31
+
32
+ 2. Run:
33
+
34
+ ```sh
35
+ docker run \
36
+ -e REVISION=$REVISION \
37
+ -v /var/run/docker.sock:/var/run/docker.sock \
38
+ -v `pwd`:/home/runner/ \
39
+ textmasterapps/minos:latest minos build --manifest examples/minos.yaml
40
+ ```
41
+
42
+ *Mount your `.docker` directory if you want to connect to docker repository from within minos docker image*
43
+
24
44
  ### Build
25
45
 
26
- To build docker artifacts, Minos use a declarative config file written in YAML.
46
+ To build docker artifacts, Minos uses a declarative config file written in YAML.
27
47
  By default Minos will look for a file called `minos.yaml` under the
28
- current directory. See `--manifest` option to provide in different config file.
48
+ current directory. See `--manifest` option to provide a different config file.
29
49
  For example:
30
50
 
31
51
  ```yaml
@@ -34,14 +54,15 @@ build:
34
54
  - name: builder
35
55
  image: textmasterapps/foo
36
56
  tags:
37
- - "$TARGET-latest"
57
+ - "$TARGET"
58
+ - "$TARGET-$REVISION"
38
59
  docker:
39
60
  # file: MyDockerfile
40
61
  tag: "$IMAGE:$TARGET" # $IMAGE and $TARGET are automatically populated as env vars for you
41
62
  target: builder
42
63
  cacheFrom:
43
64
  - textmasterapps/foo:builder
44
- - textmasterapps/foo:builder-latest
65
+ - textmasterapps/foo:builder-$REVISION
45
66
  - name: release
46
67
  image: textmasterapps/foo
47
68
  tags:
@@ -56,6 +77,7 @@ build:
56
77
  REVISION: "$REVISION"
57
78
  cacheFrom:
58
79
  - textmasterapps/foo:builder
80
+ - textmasterapps/foo:release
59
81
  - textmasterapps/foo:$REVISION
60
82
  - textmasterapps/foo:latest
61
83
  ```
@@ -140,13 +162,9 @@ ENV REVISION $REVISION
140
162
 
141
163
  More details about our Dockerfiles at TextMaster can be found on our [Blog](https://medium.com/textmaster-engineering/how-textmaster-reduced-deployment-time-by-using-multi-stages-dockerfile-in-its-ci-pipeline-ffb5e153bfc7)
142
164
 
143
- ### Deploy
144
-
145
- WIP
146
-
147
165
  ## Contributing
148
166
 
149
- Bug reports and pull requests are welcome on GitHub at https://github.com/gottfrois/minos. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
167
+ Bug reports and pull requests are welcome on GitHub at https://github.com/textmaster/minos. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
150
168
 
151
169
  ## License
152
170
 
@@ -154,4 +172,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
154
172
 
155
173
  ## Code of Conduct
156
174
 
157
- Everyone interacting in the Minos project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/gottfrois/minos/blob/master/CODE_OF_CONDUCT.md).
175
+ Everyone interacting in the Minos project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/textmaster/minos/blob/master/CODE_OF_CONDUCT.md).
data/Rakefile CHANGED
@@ -1,2 +1,4 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require "bundler/gem_tasks"
2
- task :default => :spec
4
+ task default: :spec
@@ -1,7 +1,7 @@
1
1
  build:
2
2
  artifacts:
3
3
  - name: builder
4
- image: textmasterapps/nginx
4
+ image: textmasterapps/minos
5
5
  tags:
6
6
  - "$TARGET-$REVISION"
7
7
  - "$TARGET-latest"
@@ -10,11 +10,11 @@ build:
10
10
  tag: "$IMAGE:$TARGET" # $IMAGE and $TARGET are automatically populated as env vars for you
11
11
  target: builder
12
12
  cacheFrom:
13
- - textmasterapps/nginx:builder
14
- - textmasterapps/nginx:builder-$REVISION
15
- - textmasterapps/nginx:builder-latest
13
+ - textmasterapps/minos:builder
14
+ - textmasterapps/minos:builder-$REVISION
15
+ - textmasterapps/minos:builder-latest
16
16
  - name: release
17
- image: textmasterapps/nginx
17
+ image: textmasterapps/minos
18
18
  tags:
19
19
  - "$REVISION" # you can reference ENV variables from your shell
20
20
  - "latest"
@@ -26,7 +26,7 @@ build:
26
26
  ENV: "production"
27
27
  REVISION: "$REVISION"
28
28
  cacheFrom:
29
- - textmasterapps/nginx:builder
30
- - textmasterapps/nginx:release
31
- - textmasterapps/nginx:$REVISION
32
- - textmasterapps/nginx:latest
29
+ - textmasterapps/minos:builder
30
+ - textmasterapps/minos:release
31
+ - textmasterapps/minos:$REVISION
32
+ - textmasterapps/minos:latest
data/examples/minos.yaml CHANGED
@@ -1,20 +1,19 @@
1
1
  build:
2
2
  artifacts:
3
3
  - name: builder
4
- image: textmasterapps/nginx
4
+ image: textmasterapps/minos
5
5
  tags:
6
+ - "$TARGET"
6
7
  - "$TARGET-$REVISION"
7
- - "$TARGET-latest"
8
8
  docker:
9
9
  file: ./examples/Dockerfile
10
10
  tag: "$IMAGE:$TARGET" # $IMAGE and $TARGET are automatically populated as env vars for you
11
11
  target: builder
12
12
  cacheFrom:
13
- - textmasterapps/nginx:builder
14
- - textmasterapps/nginx:builder-$REVISION
15
- - textmasterapps/nginx:builder-latest
13
+ - textmasterapps/minos:builder
14
+ - textmasterapps/minos:builder-$REVISION
16
15
  - name: release
17
- image: textmasterapps/nginx
16
+ image: textmasterapps/minos
18
17
  tags:
19
18
  - "$REVISION" # you can reference ENV variables from your shell
20
19
  - "latest"
@@ -26,7 +25,7 @@ build:
26
25
  ENV: "production"
27
26
  REVISION: "$REVISION"
28
27
  cacheFrom:
29
- - textmasterapps/nginx:builder
30
- - textmasterapps/nginx:release
31
- - textmasterapps/nginx:$REVISION
32
- - textmasterapps/nginx:latest
28
+ - textmasterapps/minos:builder
29
+ - textmasterapps/minos:release
30
+ - textmasterapps/minos:$REVISION
31
+ - textmasterapps/minos:latest
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'open3'
2
4
  require 'minos/utils'
3
5
  require 'active_support/core_ext/string/inflections'
@@ -7,6 +9,7 @@ module Minos
7
9
  include Dry::Monads::Result::Mixin
8
10
  include Dry::Monads::Task::Mixin
9
11
  include Dry::Monads::List::Mixin
12
+ include Dry::Monads::Try::Mixin
10
13
  include Dry::Monads::Do.for(:build, :push)
11
14
  include Thor::Shell
12
15
 
@@ -22,12 +25,7 @@ module Minos
22
25
  end
23
26
 
24
27
  def build
25
- yield List::Task[
26
- *caches.map.each_with_index { |cache, i| docker_pull(i, cache) }
27
- ]
28
- .traverse
29
- .bind { |_| docker_build }
30
- .to_result
28
+ docker_build.to_result
31
29
  end
32
30
 
33
31
  def push
@@ -40,29 +38,11 @@ module Minos
40
38
 
41
39
  private
42
40
 
43
- def docker_pull(i, cache)
44
- Task[:io, &-> {
45
- color = select_color(i)
46
- if run "docker inspect #{cache} -f '{{json .ID}}' > /dev/null 2>&1"
47
- print "Using local #{cache}", color: color
48
- else
49
- print "Trying to pull #{cache}...", color: color
50
- if run "docker pull #{cache} 2> /dev/null", color: color
51
- print "Using local #{cache}", color: color
52
- else
53
- print "Enable to pull #{cache}", color: color
54
- end
55
- end
56
-
57
- return Success()
58
- }]
59
- end
60
-
61
41
  def docker_build
62
42
  Task[:io, &-> {
63
43
  color = :green
64
44
  print "Building #{target}...", color: color
65
- if run "docker build --rm #{Minos::Utils.to_args(docker)} .", color: color
45
+ if run "docker build --rm --build-arg BUILDKIT_INLINE_CACHE=1 #{Minos::Utils.to_args(docker)} .", color: color
66
46
  print "Successfully built #{target}", color: color
67
47
  return Success()
68
48
  else
data/lib/minos/cli.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Minos
2
4
  class CLI < Thor
3
5
  include Thor::Shell
data/lib/minos/utils.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Minos
2
4
  class Utils
3
5
  # Flatten args as an array, hash or string into CLI args.
data/lib/minos/version.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Minos
2
- VERSION = '0.3.7'
4
+ VERSION = '0.4.0'
3
5
  end
data/lib/minos.rb CHANGED
@@ -1,9 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yaml'
2
4
  require 'thor'
3
- require 'dry/monads/task'
4
- require 'dry/monads/result'
5
- require 'dry/monads/list'
6
- require 'dry/monads/do'
5
+ require 'dry/monads'
7
6
 
8
7
  require 'minos/artifact'
9
8
  require 'minos/cli'
metadata CHANGED
@@ -1,127 +1,91 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: minos
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.7
4
+ version: 0.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Pierre-Louis Gottfrois
8
- autorequire:
8
+ autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-03-05 00:00:00.000000000 Z
11
+ date: 2023-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activesupport
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '5.2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '8.0'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
- - - "~>"
27
+ - - ">="
25
28
  - !ruby/object:Gem::Version
26
29
  version: '5.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '8.0'
27
33
  - !ruby/object:Gem::Dependency
28
34
  name: thor
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - "~>"
32
38
  - !ruby/object:Gem::Version
33
- version: '0.20'
39
+ version: '1.0'
34
40
  type: :runtime
35
41
  prerelease: false
36
42
  version_requirements: !ruby/object:Gem::Requirement
37
43
  requirements:
38
44
  - - "~>"
39
45
  - !ruby/object:Gem::Version
40
- version: '0.20'
46
+ version: '1.0'
41
47
  - !ruby/object:Gem::Dependency
42
48
  name: dry-matcher
43
49
  requirement: !ruby/object:Gem::Requirement
44
50
  requirements:
45
51
  - - "~>"
46
52
  - !ruby/object:Gem::Version
47
- version: '0.7'
53
+ version: '1.0'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
51
57
  requirements:
52
58
  - - "~>"
53
59
  - !ruby/object:Gem::Version
54
- version: '0.7'
60
+ version: '1.0'
55
61
  - !ruby/object:Gem::Dependency
56
62
  name: dry-monads
57
63
  requirement: !ruby/object:Gem::Requirement
58
64
  requirements:
59
65
  - - "~>"
60
66
  - !ruby/object:Gem::Version
61
- version: '1.2'
67
+ version: '1.0'
62
68
  type: :runtime
63
69
  prerelease: false
64
70
  version_requirements: !ruby/object:Gem::Requirement
65
71
  requirements:
66
72
  - - "~>"
67
73
  - !ruby/object:Gem::Version
68
- version: '1.2'
74
+ version: '1.0'
69
75
  - !ruby/object:Gem::Dependency
70
- name: bundler
71
- requirement: !ruby/object:Gem::Requirement
72
- requirements:
73
- - - "~>"
74
- - !ruby/object:Gem::Version
75
- version: '1.17'
76
- type: :development
77
- prerelease: false
78
- version_requirements: !ruby/object:Gem::Requirement
79
- requirements:
80
- - - "~>"
81
- - !ruby/object:Gem::Version
82
- version: '1.17'
83
- - !ruby/object:Gem::Dependency
84
- name: rake
76
+ name: rspec
85
77
  requirement: !ruby/object:Gem::Requirement
86
78
  requirements:
87
79
  - - "~>"
88
80
  - !ruby/object:Gem::Version
89
- version: '10.0'
81
+ version: '3.0'
90
82
  type: :development
91
83
  prerelease: false
92
84
  version_requirements: !ruby/object:Gem::Requirement
93
85
  requirements:
94
86
  - - "~>"
95
87
  - !ruby/object:Gem::Version
96
- version: '10.0'
97
- - !ruby/object:Gem::Dependency
98
- name: pry
99
- requirement: !ruby/object:Gem::Requirement
100
- requirements:
101
- - - ">="
102
- - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
105
- prerelease: false
106
- version_requirements: !ruby/object:Gem::Requirement
107
- requirements:
108
- - - ">="
109
- - !ruby/object:Gem::Version
110
- version: '0'
111
- - !ruby/object:Gem::Dependency
112
- name: rspec
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - ">="
116
- - !ruby/object:Gem::Version
117
- version: '0'
118
- type: :development
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - ">="
123
- - !ruby/object:Gem::Version
124
- version: '0'
88
+ version: '3.0'
125
89
  description: Easy and repeatable Kubernetes deployment based on Docker images
126
90
  email:
127
91
  - pierre-louis@textmaster.com
@@ -130,16 +94,13 @@ executables:
130
94
  extensions: []
131
95
  extra_rdoc_files: []
132
96
  files:
133
- - ".gitignore"
134
97
  - ".ruby-version"
98
+ - ".tool-versions"
135
99
  - CODE_OF_CONDUCT.md
136
- - Gemfile
137
- - Gemfile.lock
100
+ - Dockerfile
138
101
  - LICENSE.txt
139
102
  - README.md
140
103
  - Rakefile
141
- - bin/console
142
- - bin/setup
143
104
  - examples/Dockerfile
144
105
  - examples/Dockerfile.invalid
145
106
  - examples/minos.invalid.yaml
@@ -150,12 +111,14 @@ files:
150
111
  - lib/minos/cli.rb
151
112
  - lib/minos/utils.rb
152
113
  - lib/minos/version.rb
153
- - minos.gemspec
154
114
  homepage: https://github.com/textmaster/minos
155
115
  licenses:
156
116
  - MIT
157
- metadata: {}
158
- post_install_message:
117
+ metadata:
118
+ homepage_uri: https://github.com/textmaster/minos
119
+ source_code_uri: https://github.com/textmaster/minos
120
+ changelog_uri: https://github.com/textmaster/minos
121
+ post_install_message:
159
122
  rdoc_options: []
160
123
  require_paths:
161
124
  - lib
@@ -163,16 +126,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
163
126
  requirements:
164
127
  - - ">="
165
128
  - !ruby/object:Gem::Version
166
- version: '0'
129
+ version: 2.6.0
167
130
  required_rubygems_version: !ruby/object:Gem::Requirement
168
131
  requirements:
169
132
  - - ">="
170
133
  - !ruby/object:Gem::Version
171
134
  version: '0'
172
135
  requirements: []
173
- rubyforge_project:
174
- rubygems_version: 2.7.8
175
- signing_key:
136
+ rubygems_version: 3.4.10
137
+ signing_key:
176
138
  specification_version: 4
177
139
  summary: Easy and repeatable Kubernetes deployment based on Docker images
178
140
  test_files: []
data/.gitignore DELETED
@@ -1,8 +0,0 @@
1
- /.bundle/
2
- /.yardoc
3
- /_yardoc/
4
- /coverage/
5
- /doc/
6
- /pkg/
7
- /spec/reports/
8
- /tmp/
data/Gemfile DELETED
@@ -1,6 +0,0 @@
1
- source "https://rubygems.org"
2
-
3
- git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
-
5
- # Specify your gem's dependencies in minos.gemspec
6
- gemspec
data/Gemfile.lock DELETED
@@ -1,66 +0,0 @@
1
- PATH
2
- remote: .
3
- specs:
4
- minos (0.3.7)
5
- activesupport (~> 5.2)
6
- dry-matcher (~> 0.7)
7
- dry-monads (~> 1.2)
8
- thor (~> 0.20)
9
-
10
- GEM
11
- remote: https://rubygems.org/
12
- specs:
13
- activesupport (5.2.2)
14
- concurrent-ruby (~> 1.0, >= 1.0.2)
15
- i18n (>= 0.7, < 2)
16
- minitest (~> 5.1)
17
- tzinfo (~> 1.1)
18
- coderay (1.1.2)
19
- concurrent-ruby (1.1.4)
20
- diff-lcs (1.3)
21
- dry-core (0.4.7)
22
- concurrent-ruby (~> 1.0)
23
- dry-equalizer (0.2.1)
24
- dry-matcher (0.7.0)
25
- dry-monads (1.2.0)
26
- concurrent-ruby (~> 1.0)
27
- dry-core (~> 0.4, >= 0.4.4)
28
- dry-equalizer
29
- i18n (1.5.3)
30
- concurrent-ruby (~> 1.0)
31
- method_source (0.9.2)
32
- minitest (5.11.3)
33
- pry (0.12.2)
34
- coderay (~> 1.1.0)
35
- method_source (~> 0.9.0)
36
- rake (10.5.0)
37
- rspec (3.8.0)
38
- rspec-core (~> 3.8.0)
39
- rspec-expectations (~> 3.8.0)
40
- rspec-mocks (~> 3.8.0)
41
- rspec-core (3.8.0)
42
- rspec-support (~> 3.8.0)
43
- rspec-expectations (3.8.2)
44
- diff-lcs (>= 1.2.0, < 2.0)
45
- rspec-support (~> 3.8.0)
46
- rspec-mocks (3.8.0)
47
- diff-lcs (>= 1.2.0, < 2.0)
48
- rspec-support (~> 3.8.0)
49
- rspec-support (3.8.0)
50
- thor (0.20.3)
51
- thread_safe (0.3.6)
52
- tzinfo (1.2.5)
53
- thread_safe (~> 0.1)
54
-
55
- PLATFORMS
56
- ruby
57
-
58
- DEPENDENCIES
59
- bundler (~> 1.17)
60
- minos!
61
- pry
62
- rake (~> 10.0)
63
- rspec
64
-
65
- BUNDLED WITH
66
- 1.17.3
data/bin/console DELETED
@@ -1,14 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require "bundler/setup"
4
- require "minos"
5
-
6
- # You can add fixtures and/or initialization code here to make experimenting
7
- # with your gem easier. You can also use a different console, if you like.
8
-
9
- # (If you use this, don't forget to add pry to your Gemfile!)
10
- # require "pry"
11
- # Pry.start
12
-
13
- require "irb"
14
- IRB.start(__FILE__)
data/bin/setup DELETED
@@ -1,8 +0,0 @@
1
- #!/usr/bin/env bash
2
- set -euo pipefail
3
- IFS=$'\n\t'
4
- set -vx
5
-
6
- bundle install
7
-
8
- # Do any other automated setup that you need to do here
data/minos.gemspec DELETED
@@ -1,35 +0,0 @@
1
-
2
- lib = File.expand_path("../lib", __FILE__)
3
- $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
- require "minos/version"
5
-
6
- Gem::Specification.new do |spec|
7
- spec.name = "minos"
8
- spec.version = Minos::VERSION
9
- spec.authors = ["Pierre-Louis Gottfrois"]
10
- spec.email = ["pierre-louis@textmaster.com"]
11
-
12
- spec.summary = %q{Easy and repeatable Kubernetes deployment based on Docker images}
13
- spec.description = %q{Easy and repeatable Kubernetes deployment based on Docker images}
14
- spec.homepage = "https://github.com/textmaster/minos"
15
- spec.license = "MIT"
16
-
17
- # Specify which files should be added to the gem when it is released.
18
- # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
19
- spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
20
- `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|features)/}) }
21
- end
22
- spec.bindir = "exe"
23
- spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
24
- spec.require_paths = ["lib"]
25
-
26
- spec.add_dependency "activesupport", "~> 5.2"
27
- spec.add_dependency "thor", "~> 0.20"
28
- spec.add_dependency "dry-matcher", "~> 0.7"
29
- spec.add_dependency "dry-monads", "~> 1.2"
30
-
31
- spec.add_development_dependency "bundler", "~> 1.17"
32
- spec.add_development_dependency "rake", "~> 10.0"
33
- spec.add_development_dependency "pry"
34
- spec.add_development_dependency "rspec"
35
- end