djin 0.11.5 → 0.11.6

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: 98bdfb8fd785c550c478fc40887e41c1b60cea1c5fa7348661a4d8042053a76c
4
- data.tar.gz: 375b1702c5056a567495108549bf7c8eb6dbe554a6c175a823b142b30a83739a
3
+ metadata.gz: 73e54a9af2cfce75467f847bac4a279fbf97e502b3a4da93341f81d115fe80ce
4
+ data.tar.gz: d81ff6e9205f17290b7abf7b55754caef024bce6655fc0ed612a39c358810c59
5
5
  SHA512:
6
- metadata.gz: 25e1ebd2bbba35409ccd291b9c8a3ca0335e6f7a8f923c2a2c4865c957134e1dcc856346be0474ea701976d673970a688d440d7bfc756b1d6370ee1154907fb3
7
- data.tar.gz: df8de9e96bd1e5bf7f96b3ec63e8df222d6f650f2f8e6a33af5da979ab0d496807f9e52fa68092e6e5726ba65f7725d4115cd2b4106f9bfd0985b9ae6158eee6
6
+ metadata.gz: 5266c1fe3fe4ce7c65e33f22f714c46e117722a455a096a3bbab04c99d19e2ed079b9896c4a98551ef115347e81e5e97032289303f045e3693c6e7bd6a0ba056
7
+ data.tar.gz: 1e12eeb951e19ecf6f1be10ad442979677d638c53139e9ad4b387f6258ee5ea8909c143bd33cf4fe21eca46da02e37c920a75cc5f924e73f964796f69d131483
data/CHANGELOG.md CHANGED
@@ -1,3 +1,6 @@
1
+ ## 0.11.6 - 26/02/2021
2
+ * [FIX] Enable ssh and file repositories in include option
3
+
1
4
  ## 0.11.5 - 23/02/2021
2
5
  * [FIX] Aborting when dependent task fail
3
6
 
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- djin (0.11.5)
4
+ djin (0.11.6)
5
5
  dry-cli (~> 0.6.0)
6
6
  dry-equalizer (~> 0.3.0)
7
7
  dry-struct (~> 1.3.0)
data/README.md CHANGED
@@ -27,7 +27,7 @@ If you use Rbenv you can install djin only once and create an alias in your .bas
27
27
  To use djin first you need to create a djin.yml file:
28
28
 
29
29
  ```yaml
30
- djin_version: '0.11.5'
30
+ djin_version: '0.11.6'
31
31
 
32
32
  tasks:
33
33
  # With a docker image
@@ -54,7 +54,7 @@ You can also set task dependencies with depends_on option:
54
54
 
55
55
 
56
56
  ```yaml
57
- djin_version: '0.11.5'
57
+ djin_version: '0.11.6'
58
58
 
59
59
  _default_run_options: &default_run_options
60
60
  options: "--rm"
@@ -83,7 +83,7 @@ tasks:
83
83
  Or mix local commands and docker/docker-compose commands:
84
84
 
85
85
  ```yaml
86
- djin_version: '0.11.5'
86
+ djin_version: '0.11.6'
87
87
 
88
88
  _default_run_options: &default_run_options
89
89
  options: "--rm"
@@ -122,7 +122,7 @@ After that you can run `djin {{task_name}}`, like `djin script` or `djin test`
122
122
  You can also use environment variables using the '{{YOUR_ENV_HERE}}' syntax, like so:
123
123
 
124
124
  ```yaml
125
- djin_version: '0.11.5'
125
+ djin_version: '0.11.6'
126
126
 
127
127
  _default_run_options: &default_run_options
128
128
  options: "--rm"
@@ -139,7 +139,7 @@ tasks:
139
139
 
140
140
  Or define some variables to use in multiple locations
141
141
  ```yaml
142
- djin_version: '0.11.5'
142
+ djin_version: '0.11.6'
143
143
 
144
144
  _default_run_options: &default_run_options
145
145
  options: "--rm"
@@ -163,7 +163,7 @@ tasks:
163
163
  It's also possible to pass custom arguments to the command, which means is possible to make a djin task act like the command itself:
164
164
 
165
165
  ```yaml
166
- djin_version: '0.11.5'
166
+ djin_version: '0.11.6'
167
167
 
168
168
  _default_run_options: &default_run_options
169
169
  options: "--rm"
@@ -189,7 +189,7 @@ Under the hood djin uses [Mustache](https://mustache.github.io/), so you can use
189
189
  If you have multiple tasks with similar behavior and with small differences you can use the `include` keyword, so this:
190
190
 
191
191
  ```yaml
192
- djin_version: '0.11.5'
192
+ djin_version: '0.11.6'
193
193
 
194
194
  tasks:
195
195
  "host1:ssh":
@@ -228,7 +228,7 @@ can become this:
228
228
 
229
229
  ```yaml
230
230
  # djin.yml
231
- djin_version: '0.11.5'
231
+ djin_version: '0.11.6'
232
232
 
233
233
  include:
234
234
  - file: '.djin/server_tasks.yml'
@@ -250,7 +250,7 @@ include:
250
250
 
251
251
  ```yaml
252
252
  # .djin/server_tasks.yml
253
- djin_version: '0.11.5'
253
+ djin_version: '0.11.6'
254
254
 
255
255
  tasks:
256
256
  "{{namespace}}:ssh":
@@ -272,7 +272,7 @@ tasks:
272
272
  You can also reuse tasks in some git repository, to do that you need to declare a git source and optionally a version:
273
273
 
274
274
  ```yaml
275
- djin_version: '0.11.5'
275
+ djin_version: '0.11.6'
276
276
 
277
277
  include:
278
278
  - git: 'https://github.com/catks/djin.git'
data/djin.yml CHANGED
@@ -1,4 +1,4 @@
1
- djin_version: '0.11.5'
1
+ djin_version: '0.11.6'
2
2
 
3
3
  _default_run_options: &default_run_options
4
4
  options: "--rm --entrypoint=''"
data/examples/djin.yml CHANGED
@@ -1,5 +1,5 @@
1
1
  ---
2
- djin_version: '0.11.5'
2
+ djin_version: '0.11.6'
3
3
 
4
4
  include:
5
5
  - file: 'djin_lib/test.yml'
@@ -1,4 +1,4 @@
1
- djin_version: '0.11.5'
1
+ djin_version: '0.11.6'
2
2
 
3
3
  _default_run_options: &default_run_options
4
4
  options: "--rm --entrypoint=''"
@@ -1,4 +1,4 @@
1
- djin_version: '0.11.5'
1
+ djin_version: '0.11.6'
2
2
 
3
3
  include:
4
4
  - file: '.djin/server_tasks.yml'
@@ -1,4 +1,4 @@
1
- djin_version: '0.11.5'
1
+ djin_version: '0.11.6'
2
2
 
3
3
  include:
4
4
  - git: 'https://gitserver/myrepo.git'
@@ -5,6 +5,8 @@ module Djin
5
5
  using Djin::ObjectExtensions
6
6
 
7
7
  GIT_URI_REGEXP = Regexp.new('(\w+://)(.+@)*([\w\d\.]+)(:[\d]+){0,1}/*(.*)')
8
+ GIT_SSH_REGEXP = Regexp.new('(.+@)+([\w\d\.]+):(.*)')
9
+ GIT_FILE_REGEXP = Regexp.new('file://(.*)')
8
10
 
9
11
  ContextSchema = Dry::Schema.Params do
10
12
  optional(:variables).filled(:hash)
@@ -21,9 +23,17 @@ module Djin
21
23
  end
22
24
 
23
25
  rule(:git) do
24
- key.failure("Invalid git uri in: #{value}") if value.present? && !GIT_URI_REGEXP.match?(value)
26
+ key.failure("Invalid git uri in: #{value}") if value.present? && !valid_git_repository_path?(value)
25
27
  end
26
28
 
27
29
  # TODO: Add more validations to file and to restricted unespected keys
30
+ #
31
+ private
32
+
33
+ def valid_git_repository_path?(path)
34
+ [GIT_URI_REGEXP,
35
+ GIT_SSH_REGEXP,
36
+ GIT_FILE_REGEXP].any? { |regexp| regexp.match?(path) }
37
+ end
28
38
  end
29
39
  end
data/lib/djin/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Djin
4
- VERSION = '0.11.5'
4
+ VERSION = '0.11.6'
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: djin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.5
4
+ version: 0.11.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Carlos Atkinson
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2021-02-23 00:00:00.000000000 Z
11
+ date: 2021-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: dry-cli