travis-custom-deploy 0.0.1
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 +7 -0
- data/.gitignore +6 -0
- data/Gemfile +2 -0
- data/LICENSE.md +0 -0
- data/README.md +13 -0
- data/Rakefile +58 -0
- data/bin/travis-custom-deploy +30 -0
- data/cucumber.yml +3 -0
- data/features/.gitkeep +0 -0
- data/lib/travis-custom-deploy.rb +5 -0
- data/lib/travis-custom-deploy/deployment.rb +65 -0
- data/lib/travis-custom-deploy/services.rb +10 -0
- data/lib/travis-custom-deploy/transfer.rb +10 -0
- data/lib/travis-custom-deploy/transfer/base.rb +30 -0
- data/lib/travis-custom-deploy/transfer/ftp.rb +0 -0
- data/lib/travis-custom-deploy/transfer/sftp.rb +25 -0
- data/lib/travis-custom-deploy/version.rb +5 -0
- data/test/helper.rb +9 -0
- data/test/test_deployment.rb +36 -0
- data/travis-custom-deploy.gemspec +31 -0
- metadata +207 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: aec931f741eed8f077825a3befa8466e5e4976f6
|
4
|
+
data.tar.gz: 5532a7c0308adc31324907698f77c67ed1161236
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 520ad562cd94147e07f0f61e91f5b9ab6ea096624a4c5d04d024e32d3b5bc0fdc867b34012208fa4a426a4cbeccefac062e2dcc989a134e293f4eab62af025f0
|
7
|
+
data.tar.gz: 265c9efffe93c98e2bff80db8e516fa165a9a6a3464a71b4cb0959b449443e9a619eab071f216055404779d16496f4d1cb8af907f8ea4f96ef5887f9f84ae835
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/LICENSE.md
ADDED
File without changes
|
data/README.md
ADDED
@@ -0,0 +1,13 @@
|
|
1
|
+
travis-custom-deploy
|
2
|
+
====================
|
3
|
+
|
4
|
+
Deploy your ruby based applications on your own server.
|
5
|
+
|
6
|
+
env:
|
7
|
+
global:
|
8
|
+
- "CUSTOM_DEPLOY_HOST=host"
|
9
|
+
- "CUSTOM_DEPLOY_USER=user"
|
10
|
+
- "CUSTOM_DEPLOY_PASSWORD=password"
|
11
|
+
- "CUSTOM_DEPLOY_REMOTEDIR=/path/to/"
|
12
|
+
|
13
|
+
travis-custom-deploy sftp site/
|
data/Rakefile
ADDED
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'rake'
|
3
|
+
require 'rdoc'
|
4
|
+
|
5
|
+
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), *%w[lib]))
|
6
|
+
|
7
|
+
# Returns the name of the project
|
8
|
+
def name
|
9
|
+
@name ||= Dir['*.gemspec'].first.split('.').first
|
10
|
+
end
|
11
|
+
|
12
|
+
# Returns the version number of the project
|
13
|
+
def version
|
14
|
+
line = File.read("lib/#{name}/version.rb")[/^\s*VERSION\s*=\s*.*/]
|
15
|
+
line.match(/.*VERSION\s*=\s*['"](.*)['"]/)[1]
|
16
|
+
end
|
17
|
+
|
18
|
+
if ENV["TRAVIS"] == "true"
|
19
|
+
require 'coveralls/rake/task'
|
20
|
+
Coveralls::RakeTask.new
|
21
|
+
|
22
|
+
task :default => [:test, :features, 'coveralls:push']
|
23
|
+
else
|
24
|
+
task :default => [:test, :features]
|
25
|
+
end
|
26
|
+
|
27
|
+
# << test
|
28
|
+
require 'rake/testtask'
|
29
|
+
Rake::TestTask.new(:test) do |test|
|
30
|
+
test.libs << 'lib' << 'test'
|
31
|
+
test.pattern = 'test/**/test_*.rb'
|
32
|
+
test.verbose = true
|
33
|
+
end
|
34
|
+
|
35
|
+
# << rdoc
|
36
|
+
require 'rdoc/task'
|
37
|
+
Rake::RDocTask.new do |rdoc|
|
38
|
+
rdoc.rdoc_dir = 'rdoc'
|
39
|
+
rdoc.title = "#{name} #{version}"
|
40
|
+
rdoc.rdoc_files.include('README*')
|
41
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
42
|
+
end
|
43
|
+
|
44
|
+
# << features
|
45
|
+
begin
|
46
|
+
require 'cucumber/rake/task'
|
47
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
48
|
+
t.profile = "travis"
|
49
|
+
end
|
50
|
+
Cucumber::Rake::Task.new(:"features:html", "Run Cucumber features and produce HTML output") do |t|
|
51
|
+
t.profile = "html_report"
|
52
|
+
end
|
53
|
+
rescue LoadError
|
54
|
+
desc 'Cucumber rake task not available'
|
55
|
+
task :features do
|
56
|
+
abort 'Cucumber rake task is not available. Be sure to install cucumber as a gem or plugin'
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'travis-custom-deploy'
|
4
|
+
|
5
|
+
def usage
|
6
|
+
puts 'Usage: travis-custom-deploy TRANSFER_TYPE FILES...'
|
7
|
+
end
|
8
|
+
|
9
|
+
if ARGV.count < 2
|
10
|
+
usage
|
11
|
+
end
|
12
|
+
|
13
|
+
transfer = ARGV[0]
|
14
|
+
files = ARGV[1..-1]
|
15
|
+
|
16
|
+
host = ENV['DEPLOY_HOST']
|
17
|
+
username = ENV['DEPLOY_USERNAME']
|
18
|
+
password = ENV['DEPLOY_PASSWORD']
|
19
|
+
remotedir = ENV['DEPLOY_REMOTEDIR']
|
20
|
+
|
21
|
+
transfer_opts = {
|
22
|
+
:type => transfer,
|
23
|
+
:host => ENV['DEPLOY_HOST'],
|
24
|
+
:username => ENV['DEPLOY_USERNAME'],
|
25
|
+
:password => ENV['DEPLOY_PASSWORD'],
|
26
|
+
:remotedir => ENV['DEPLOY_REMOTEDIR']
|
27
|
+
}
|
28
|
+
|
29
|
+
d = TravisCustomDeploy::Deployment.new(transfer_opts, files)
|
30
|
+
d.deploy
|
data/cucumber.yml
ADDED
data/features/.gitkeep
ADDED
File without changes
|
@@ -0,0 +1,65 @@
|
|
1
|
+
module TravisCustomDeploy
|
2
|
+
|
3
|
+
class Deployment
|
4
|
+
|
5
|
+
attr_reader :remoteopts
|
6
|
+
attr_reader :files
|
7
|
+
|
8
|
+
def initialize(remoteopts, files)
|
9
|
+
check_remoteopts(remoteopts)
|
10
|
+
@remoteopts = remoteopts
|
11
|
+
@files = files
|
12
|
+
check_services(@files[0])
|
13
|
+
@transfer = get_transfer(remoteopts[:type])
|
14
|
+
end
|
15
|
+
|
16
|
+
# Actually start the deployment
|
17
|
+
def deploy
|
18
|
+
@transfer.transfer
|
19
|
+
end
|
20
|
+
|
21
|
+
# Check if the remoteopts are valid
|
22
|
+
#
|
23
|
+
# opts - the remote opts to check
|
24
|
+
def check_remoteopts(opts)
|
25
|
+
raise ArgumentError, 'host must not be nil' if opts[:host].nil?
|
26
|
+
raise ArgumentError, 'username must not be nil' if opts[:username].nil?
|
27
|
+
raise ArgumentError, 'password must not be nil' if opts[:password].nil?
|
28
|
+
raise ArgumentError, 'transfer type must not be nil' if opts[:type].nil?
|
29
|
+
end
|
30
|
+
|
31
|
+
# Create an instance for the transfer type and return it
|
32
|
+
#
|
33
|
+
# type - the transfer type like sftp, ftp, etc.
|
34
|
+
def get_transfer(type)
|
35
|
+
type = type[0].upcase + type[1..-1]
|
36
|
+
try_require(type)
|
37
|
+
Transfer.const_get(type).new(@remoteopts, @files)
|
38
|
+
end
|
39
|
+
|
40
|
+
# Try requiring a transfer type class
|
41
|
+
#
|
42
|
+
# name - the name of the transfer type like: sftp, stp
|
43
|
+
def try_require(name)
|
44
|
+
require("travis-custom-deploy/transfer/#{name.downcase}")
|
45
|
+
true
|
46
|
+
end
|
47
|
+
protected :try_require
|
48
|
+
|
49
|
+
# check if the first file matches service:<service-name>
|
50
|
+
# and try to determine the files based on the service.
|
51
|
+
#
|
52
|
+
# first_file the first file given
|
53
|
+
def check_services(first_file)
|
54
|
+
if first_file.start_with?('service:')
|
55
|
+
service = first_file.sub(/service:/, '')
|
56
|
+
SERVICES.each do |k,v|
|
57
|
+
if k == service
|
58
|
+
@files = v
|
59
|
+
end
|
60
|
+
end
|
61
|
+
end
|
62
|
+
end
|
63
|
+
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module TravisCustomDeploy
|
2
|
+
|
3
|
+
module Transfer
|
4
|
+
|
5
|
+
class Base
|
6
|
+
|
7
|
+
attr_reader :remoteopts
|
8
|
+
attr_reader :files
|
9
|
+
|
10
|
+
def initialize(remoteopts, files)
|
11
|
+
@remoteopts = remoteopts
|
12
|
+
@files = files
|
13
|
+
prepare_remotedir
|
14
|
+
end
|
15
|
+
|
16
|
+
# The method which needs to be implemented by subclasses
|
17
|
+
# of transfer types.
|
18
|
+
def transfer
|
19
|
+
raise NotImplementedError
|
20
|
+
end
|
21
|
+
|
22
|
+
# Prepares the remote directory (remote trailing slash)
|
23
|
+
def prepare_remotedir
|
24
|
+
@remotedir = @remoteopts[:remotedir]
|
25
|
+
@remotedir = "" if @remotedir.nil?
|
26
|
+
@remotedir = @remotedir[0..-2] if @remotedir[-1] == "/"
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
File without changes
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'net/sftp'
|
2
|
+
|
3
|
+
module TravisCustomDeploy
|
4
|
+
|
5
|
+
module Transfer
|
6
|
+
|
7
|
+
class Sftp < Base
|
8
|
+
|
9
|
+
def initialize(remoteopts, files)
|
10
|
+
super(remoteopts, files)
|
11
|
+
end
|
12
|
+
|
13
|
+
# transfers the given files via sftp
|
14
|
+
def transfer
|
15
|
+
Net::SFTP.start(@remoteopts[:host], @remoteopts[:username], :password => @remoteopts[:password]) do |sftp|
|
16
|
+
for e in @files
|
17
|
+
sftp.upload!(e, "#{@remotedir}/")
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/test/helper.rb
ADDED
@@ -0,0 +1,36 @@
|
|
1
|
+
require 'helper'
|
2
|
+
|
3
|
+
class TestDeployment < Test::Unit::TestCase
|
4
|
+
|
5
|
+
context "A deployment" do
|
6
|
+
setup do
|
7
|
+
@opts = {
|
8
|
+
:type => 'sftp',
|
9
|
+
:host => 'example.org',
|
10
|
+
:username => 'username',
|
11
|
+
:password => 'password',
|
12
|
+
:remotedir => '/public/'
|
13
|
+
}
|
14
|
+
end
|
15
|
+
|
16
|
+
context "with files" do
|
17
|
+
setup do
|
18
|
+
@deployment = Deployment.new(@opts, ['foo', 'bar', 'foo2'])
|
19
|
+
end
|
20
|
+
|
21
|
+
should "return file names" do
|
22
|
+
assert_equal ['foo', 'bar', 'foo2'], @deployment.files
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context "with service identifier as first file name" do
|
27
|
+
setup do
|
28
|
+
@deployment = Deployment.new(@opts, ['service:jekyll'])
|
29
|
+
end
|
30
|
+
|
31
|
+
should "return file names of service" do
|
32
|
+
assert_equal ['_site/'], @deployment.files
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
$:.push File.expand_path("../lib", __FILE__)
|
2
|
+
require "travis-custom-deploy/version"
|
3
|
+
|
4
|
+
Gem::Specification.new do |s|
|
5
|
+
s.name = "travis-custom-deploy"
|
6
|
+
s.version = TravisCustomDeploy::VERSION
|
7
|
+
s.platform = Gem::Platform::RUBY
|
8
|
+
s.licenses = ['MIT']
|
9
|
+
s.authors = ["Jens Nazarenus"]
|
10
|
+
s.email = ["me@jens-na.de"]
|
11
|
+
s.homepage = "https://github.com/jens-na/travis-custom-deploy"
|
12
|
+
s.summary = %q{Travis custom deployment gem}
|
13
|
+
s.description = %q{Deploy your ruby based applications to your own servers}
|
14
|
+
|
15
|
+
s.add_runtime_dependency('net-sftp', "~> 2.1.2")
|
16
|
+
|
17
|
+
s.add_development_dependency("rspec", "~>2.14.1")
|
18
|
+
s.add_development_dependency('rake', "~> 10.1.1")
|
19
|
+
s.add_development_dependency('cucumber', "~> 1.3.10")
|
20
|
+
s.add_development_dependency('redgreen', "~> 1.2.2")
|
21
|
+
s.add_development_dependency('shoulda-context', "~> 1.1.6")
|
22
|
+
s.add_development_dependency('rr', "~> 1.1.2")
|
23
|
+
s.add_development_dependency('coveralls', "~> 0.7.0")
|
24
|
+
s.add_development_dependency('pry')
|
25
|
+
s.add_development_dependency('pry-nav')
|
26
|
+
|
27
|
+
s.files = `git ls-files`.split("\n")
|
28
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
29
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
30
|
+
s.require_paths = ["lib"]
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,207 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: travis-custom-deploy
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jens Nazarenus
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-01-11 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: net-sftp
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: 2.1.2
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: 2.1.2
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rspec
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 2.14.1
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 2.14.1
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: rake
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: 10.1.1
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: 10.1.1
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: cucumber
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - "~>"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: 1.3.10
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - "~>"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: 1.3.10
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: redgreen
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - "~>"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: 1.2.2
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - "~>"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: 1.2.2
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: shoulda-context
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - "~>"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: 1.1.6
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: 1.1.6
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: rr
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - "~>"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: 1.1.2
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - "~>"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: 1.1.2
|
111
|
+
- !ruby/object:Gem::Dependency
|
112
|
+
name: coveralls
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - "~>"
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: 0.7.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.7.0
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: pry
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: pry-nav
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
153
|
+
description: Deploy your ruby based applications to your own servers
|
154
|
+
email:
|
155
|
+
- me@jens-na.de
|
156
|
+
executables:
|
157
|
+
- travis-custom-deploy
|
158
|
+
extensions: []
|
159
|
+
extra_rdoc_files: []
|
160
|
+
files:
|
161
|
+
- ".gitignore"
|
162
|
+
- Gemfile
|
163
|
+
- LICENSE.md
|
164
|
+
- README.md
|
165
|
+
- Rakefile
|
166
|
+
- bin/travis-custom-deploy
|
167
|
+
- cucumber.yml
|
168
|
+
- features/.gitkeep
|
169
|
+
- lib/travis-custom-deploy.rb
|
170
|
+
- lib/travis-custom-deploy/deployment.rb
|
171
|
+
- lib/travis-custom-deploy/services.rb
|
172
|
+
- lib/travis-custom-deploy/transfer.rb
|
173
|
+
- lib/travis-custom-deploy/transfer/base.rb
|
174
|
+
- lib/travis-custom-deploy/transfer/ftp.rb
|
175
|
+
- lib/travis-custom-deploy/transfer/sftp.rb
|
176
|
+
- lib/travis-custom-deploy/version.rb
|
177
|
+
- test/helper.rb
|
178
|
+
- test/test_deployment.rb
|
179
|
+
- travis-custom-deploy.gemspec
|
180
|
+
homepage: https://github.com/jens-na/travis-custom-deploy
|
181
|
+
licenses:
|
182
|
+
- MIT
|
183
|
+
metadata: {}
|
184
|
+
post_install_message:
|
185
|
+
rdoc_options: []
|
186
|
+
require_paths:
|
187
|
+
- lib
|
188
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
189
|
+
requirements:
|
190
|
+
- - ">="
|
191
|
+
- !ruby/object:Gem::Version
|
192
|
+
version: '0'
|
193
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
194
|
+
requirements:
|
195
|
+
- - ">="
|
196
|
+
- !ruby/object:Gem::Version
|
197
|
+
version: '0'
|
198
|
+
requirements: []
|
199
|
+
rubyforge_project:
|
200
|
+
rubygems_version: 2.2.0
|
201
|
+
signing_key:
|
202
|
+
specification_version: 4
|
203
|
+
summary: Travis custom deployment gem
|
204
|
+
test_files:
|
205
|
+
- features/.gitkeep
|
206
|
+
- test/helper.rb
|
207
|
+
- test/test_deployment.rb
|