minos 0.3.6 → 0.4.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
  SHA256:
3
- metadata.gz: 0f630873c2560f98da29ac9c8c9420c72adad87a77ab5d65006ce5a00776e659
4
- data.tar.gz: f77a12ea0ac0ae580fcc517c212dbe9575706560cd9de17c45a22b483dc09115
3
+ metadata.gz: 34694b91db8e98e5972dba9235a74d13f8d4e552bf5a5919c0150a7642bd3733
4
+ data.tar.gz: 3e94a19b7831ed8ca7e3a050ab8def2b32902c3bb042cda1fac202827c56c53d
5
5
  SHA512:
6
- metadata.gz: 649feef05d36621721f580a46999fb05c552c421bfb148bd0af78a41a8dbcd9f19e1fb47d656d7729a55c2cdf55a7542b09443d8fb505724cdb51dd4b4de0fde
7
- data.tar.gz: bd7001c03331f8a45a05074c897cd5640178bda3a621656bc7c8cee9e897a9f21479d18a9d145ddd5f6e28265c1f061a13b07bbe974a0af720133ea95ec71fbe
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,23 +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
- print "Pulling #{cache}...", color: color
47
- if run "docker inspect #{cache} -f '{{json .ID}}' > /dev/null 2>&1 || docker pull #{cache} 2> /dev/null", color: color
48
- print "Using #{cache}", color: color
49
- end
50
-
51
- return Success()
52
- }]
53
- end
54
-
55
41
  def docker_build
56
42
  Task[:io, &-> {
57
43
  color = :green
58
44
  print "Building #{target}...", color: color
59
- 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
60
46
  print "Successfully built #{target}", color: color
61
47
  return Success()
62
48
  else
@@ -111,7 +97,7 @@ module Minos
111
97
  end
112
98
 
113
99
  def select_color(i)
114
- colors[i % colors.count + 1]
100
+ colors[i % colors.count]
115
101
  end
116
102
 
117
103
  def colors
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.6'
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.6
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.6)
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