travis-custom-deploy 0.0.4 → 0.0.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 +13 -5
- data/LICENSE.md +1 -2
- data/README.md +50 -9
- data/Rakefile +2 -18
- data/bin/travis-custom-deploy +1 -0
- data/lib/travis-custom-deploy/options.rb +5 -0
- data/lib/travis-custom-deploy/transfer/sftp.rb +33 -3
- data/lib/travis-custom-deploy/version.rb +1 -1
- data/travis-custom-deploy.gemspec +0 -1
- metadata +26 -46
- data/cucumber.yml +0 -3
- data/features/.gitkeep +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,15 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
Mzc1YWRhMjQ4MGUyNGY3Y2Y0OTllMzdhNjNmMTFiNjFkMTE4OGFlMA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
NDFiZTRkNWI5ZjRjOGU4NTM4ZWY2MWEyNjEyYzMyYWMwODBkNzY1NQ==
|
5
7
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
NGZhZTAyOWM5MzIxYjkyODRlNWMzMTk3YTQwMDZjMmQ0N2JmMGQ3OTBkYWVj
|
10
|
+
ZGQyNTU2YmQyYTJjMmY5OTYwNDAyOGZmNWU2ZTZlMmE2ZGQ0NWJmZjZmNTk0
|
11
|
+
ZWUyM2RlYjM1M2U0NTIyZTMwODNlM2FkNjA5MjZhMGE4YzQ2YWQ=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
M2E1M2RkZmU4YWNjNTQ1NWVjZDAxMjQ5NTJkZDVjYzMyOWZjNGNkNmIxNTcw
|
14
|
+
OTg1NDJiYzViOTAyYTk2Y2JmNTZiYTEyMGY0YzBmMjQ5NjE5YWI3NTg0NjU5
|
15
|
+
YjJmNmU2MWU0MTYyMDhmNTJiOTU2N2U1MjcxNDc4Mzc2ZTE5Yjg=
|
data/LICENSE.md
CHANGED
@@ -1,8 +1,7 @@
|
|
1
|
-
|
2
1
|
The MIT License
|
3
2
|
===============
|
4
3
|
|
5
|
-
Copyright (c)
|
4
|
+
Copyright (c) 2014, Jens Nazarenus
|
6
5
|
|
7
6
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
8
7
|
of this software and associated documentation files (the "Software"), to deal
|
data/README.md
CHANGED
@@ -5,26 +5,67 @@ travis-custom-deploy [](https://codeclimate.com/github/jens-na/travis-custom-deploy)
|
6
6
|
[](https://gemnasium.com/jens-na/travis-custom-deploy)
|
7
7
|
|
8
|
-
Deploy your ruby based applications on your own server.
|
8
|
+
Deploy your ruby based applications with [Travis-CI](https://travis-ci.org/) on your own server.
|
9
9
|
|
10
10
|
Configuration
|
11
11
|
-------------
|
12
|
-
|
13
|
-
|
12
|
+
Add the gem to your Gemfile or gemspec.
|
13
|
+
|
14
|
+
```ruby
|
15
|
+
gem "travis-custom-deploy", "~> 0.0.4"
|
16
|
+
```
|
17
|
+
To use travis-custom-deploy with Travis-CI you need to define environment variables. I recommend
|
18
|
+
to use [secure environment variables](http://about.travis-ci.org/docs/user/build-configuration/#Secure-environment-variables) with Travis-CI. The best way to do that is to use travis gem:
|
19
|
+
```ruby
|
20
|
+
gem install travis
|
21
|
+
cd my_project
|
22
|
+
travis encrypt DEPLOY_HOST="your-hostname.com" --add
|
23
|
+
travis encrypt DEPLOY_USERNAME="username" --add
|
24
|
+
travis encrypt DEPLOY_PASSWORD="password" --add
|
25
|
+
travis encrypt DEPLOY_REMOTEDIR="/path/to/deploy/" --add
|
26
|
+
```
|
27
|
+
|
28
|
+
To trigger the deployment you have to add the following line to your `~/.travis.yml` file:
|
29
|
+
```yml
|
30
|
+
after_success: bundle exec travis-custom-deploy sftp _site/
|
31
|
+
```
|
14
32
|
|
15
33
|
Example:
|
16
34
|
```yml
|
35
|
+
language: ruby
|
36
|
+
rvm: 2.0.0
|
17
37
|
env:
|
18
38
|
global:
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
39
|
+
- secure: <hash>
|
40
|
+
- secure: <hash>
|
41
|
+
- secure: <hash>
|
42
|
+
- secure: <hash>
|
43
|
+
script:
|
44
|
+
- bundle exec jekyll build --trace
|
45
|
+
- bundle exec ./script/htmlcheck
|
23
46
|
|
24
|
-
after_success: travis-custom-deploy sftp _site/
|
47
|
+
after_success: bundle exec travis-custom-deploy sftp _site/
|
48
|
+
```
|
49
|
+
|
50
|
+
Protocol support
|
51
|
+
----------------
|
52
|
+
The protocol to use to transfer the files to the remote server.
|
53
|
+
|
54
|
+
#### SFTP
|
55
|
+
|
56
|
+
Necessary environment variables:
|
57
|
+
- `DEPLOY_HOST`
|
58
|
+
- `DEPLOY_USERNAME`
|
59
|
+
- `DEPLOY_PASSWORD`
|
60
|
+
- `DEPLOY_REMOTEDIR`
|
61
|
+
|
62
|
+
Example:
|
63
|
+
```
|
64
|
+
after_success: bundle exec travis-custom-deploy sftp files/
|
25
65
|
```
|
26
66
|
|
27
|
-
|
67
|
+
Services
|
68
|
+
--------
|
28
69
|
There are predefined services available. For example if you want to deploy a [Jekyll](https://github.com/jekyll/jekyll) page you can write:
|
29
70
|
|
30
71
|
```yml
|
data/Rakefile
CHANGED
@@ -19,9 +19,9 @@ if ENV["TRAVIS"] == "true"
|
|
19
19
|
require 'coveralls/rake/task'
|
20
20
|
Coveralls::RakeTask.new
|
21
21
|
|
22
|
-
task :default => [:test,
|
22
|
+
task :default => [:test, 'coveralls:push']
|
23
23
|
else
|
24
|
-
task :default => [:test
|
24
|
+
task :default => [:test]
|
25
25
|
end
|
26
26
|
|
27
27
|
# << test
|
@@ -40,19 +40,3 @@ Rake::RDocTask.new do |rdoc|
|
|
40
40
|
rdoc.rdoc_files.include('README*')
|
41
41
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
42
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
|
data/bin/travis-custom-deploy
CHANGED
@@ -34,6 +34,11 @@ module TravisCustomDeploy
|
|
34
34
|
|
35
35
|
class Options
|
36
36
|
|
37
|
+
# Returns the options for the corresponding transfer type
|
38
|
+
#
|
39
|
+
# transfer_type - the transfer type
|
40
|
+
#
|
41
|
+
# Returns an array of options, which must be available
|
37
42
|
def self.get_options(transfer_type)
|
38
43
|
OPTIONS.each do |k,v|
|
39
44
|
if k == transfer_type
|
@@ -16,25 +16,55 @@ module TravisCustomDeploy
|
|
16
16
|
def transfer
|
17
17
|
Net::SFTP.start(@options['host'], @options['username'],
|
18
18
|
:password => @options['password']) do |sftp|
|
19
|
+
|
19
20
|
for e in @files
|
20
|
-
|
21
|
+
if File.directory?(e)
|
22
|
+
send_dir(sftp, e, @remotedir)
|
23
|
+
end
|
21
24
|
end
|
22
25
|
end
|
23
26
|
end
|
24
27
|
|
25
28
|
def check_options(options)
|
26
29
|
raise ArgumentError, 'host name must not be nil' if options['host'].nil?
|
27
|
-
raise ArgumentError, '
|
30
|
+
raise ArgumentError, 'userna)e must not be nil' if options['username'].nil?
|
28
31
|
raise ArgumentError, 'password must not be nil' if options['password'].nil?
|
29
32
|
end
|
30
33
|
|
34
|
+
|
35
|
+
# Sends a directory to the remote server with the given parameters
|
36
|
+
#
|
37
|
+
# sftp - the SFTP connection
|
38
|
+
# dir - the local dir to transfer
|
39
|
+
# the remote folder where to place the files
|
40
|
+
def send_dir(sftp, dir, remote)
|
41
|
+
Dir.foreach(dir) do |file_name|
|
42
|
+
|
43
|
+
next if file_name =~ /^(\.|\.\.)$/
|
44
|
+
|
45
|
+
localfile = File.join(dir, file_name)
|
46
|
+
if File.directory?(localfile)
|
47
|
+
|
48
|
+
begin
|
49
|
+
sftp.mkdir!(remote + "/" + file_name)
|
50
|
+
rescue Net::SFTP::StatusException
|
51
|
+
# the directory probably already exists
|
52
|
+
end
|
53
|
+
|
54
|
+
send_dir(sftp, File.join(dir, file_name), File.join(remote, file_name))
|
55
|
+
else
|
56
|
+
sftp.upload!(File.join(dir, file_name), File.join(remote, file_name))
|
57
|
+
end
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
31
61
|
# Prepares the remote directory (remote trailing slash)
|
32
62
|
def prepare_remotedir
|
33
63
|
@remotedir = @options['remotedir']
|
34
64
|
@remotedir = "" if @remotedir.nil?
|
35
65
|
@remotedir = @remotedir[0..-2] if @remotedir[-1] == "/"
|
36
66
|
end
|
37
|
-
|
67
|
+
|
38
68
|
end
|
39
69
|
end
|
40
70
|
end
|
@@ -16,7 +16,6 @@ Gem::Specification.new do |s|
|
|
16
16
|
|
17
17
|
s.add_development_dependency("rspec", "~>2.14.1")
|
18
18
|
s.add_development_dependency('rake', "~> 10.1.1")
|
19
|
-
s.add_development_dependency('cucumber', "~> 1.3.10")
|
20
19
|
s.add_development_dependency('redgreen', "~> 1.2.2")
|
21
20
|
s.add_development_dependency('shoulda-context', "~> 1.1.6")
|
22
21
|
s.add_development_dependency('rr', "~> 1.1.2")
|
metadata
CHANGED
@@ -1,153 +1,139 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: travis-custom-deploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jens Nazarenus
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-01-
|
11
|
+
date: 2014-01-21 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-sftp
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ~>
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: 2.1.2
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ~>
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 2.1.2
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: rspec
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ~>
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: 2.14.1
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ~>
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: 2.14.1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: 10.1.1
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ~>
|
53
53
|
- !ruby/object:Gem::Version
|
54
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
55
|
- !ruby/object:Gem::Dependency
|
70
56
|
name: redgreen
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
|
-
- -
|
59
|
+
- - ~>
|
74
60
|
- !ruby/object:Gem::Version
|
75
61
|
version: 1.2.2
|
76
62
|
type: :development
|
77
63
|
prerelease: false
|
78
64
|
version_requirements: !ruby/object:Gem::Requirement
|
79
65
|
requirements:
|
80
|
-
- -
|
66
|
+
- - ~>
|
81
67
|
- !ruby/object:Gem::Version
|
82
68
|
version: 1.2.2
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: shoulda-context
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
|
-
- -
|
73
|
+
- - ~>
|
88
74
|
- !ruby/object:Gem::Version
|
89
75
|
version: 1.1.6
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
|
-
- -
|
80
|
+
- - ~>
|
95
81
|
- !ruby/object:Gem::Version
|
96
82
|
version: 1.1.6
|
97
83
|
- !ruby/object:Gem::Dependency
|
98
84
|
name: rr
|
99
85
|
requirement: !ruby/object:Gem::Requirement
|
100
86
|
requirements:
|
101
|
-
- -
|
87
|
+
- - ~>
|
102
88
|
- !ruby/object:Gem::Version
|
103
89
|
version: 1.1.2
|
104
90
|
type: :development
|
105
91
|
prerelease: false
|
106
92
|
version_requirements: !ruby/object:Gem::Requirement
|
107
93
|
requirements:
|
108
|
-
- -
|
94
|
+
- - ~>
|
109
95
|
- !ruby/object:Gem::Version
|
110
96
|
version: 1.1.2
|
111
97
|
- !ruby/object:Gem::Dependency
|
112
98
|
name: coveralls
|
113
99
|
requirement: !ruby/object:Gem::Requirement
|
114
100
|
requirements:
|
115
|
-
- -
|
101
|
+
- - ~>
|
116
102
|
- !ruby/object:Gem::Version
|
117
103
|
version: 0.7.0
|
118
104
|
type: :development
|
119
105
|
prerelease: false
|
120
106
|
version_requirements: !ruby/object:Gem::Requirement
|
121
107
|
requirements:
|
122
|
-
- -
|
108
|
+
- - ~>
|
123
109
|
- !ruby/object:Gem::Version
|
124
110
|
version: 0.7.0
|
125
111
|
- !ruby/object:Gem::Dependency
|
126
112
|
name: pry
|
127
113
|
requirement: !ruby/object:Gem::Requirement
|
128
114
|
requirements:
|
129
|
-
- -
|
115
|
+
- - ! '>='
|
130
116
|
- !ruby/object:Gem::Version
|
131
117
|
version: '0'
|
132
118
|
type: :development
|
133
119
|
prerelease: false
|
134
120
|
version_requirements: !ruby/object:Gem::Requirement
|
135
121
|
requirements:
|
136
|
-
- -
|
122
|
+
- - ! '>='
|
137
123
|
- !ruby/object:Gem::Version
|
138
124
|
version: '0'
|
139
125
|
- !ruby/object:Gem::Dependency
|
140
126
|
name: pry-nav
|
141
127
|
requirement: !ruby/object:Gem::Requirement
|
142
128
|
requirements:
|
143
|
-
- -
|
129
|
+
- - ! '>='
|
144
130
|
- !ruby/object:Gem::Version
|
145
131
|
version: '0'
|
146
132
|
type: :development
|
147
133
|
prerelease: false
|
148
134
|
version_requirements: !ruby/object:Gem::Requirement
|
149
135
|
requirements:
|
150
|
-
- -
|
136
|
+
- - ! '>='
|
151
137
|
- !ruby/object:Gem::Version
|
152
138
|
version: '0'
|
153
139
|
description: Deploy your ruby based applications to your own servers
|
@@ -158,15 +144,13 @@ executables:
|
|
158
144
|
extensions: []
|
159
145
|
extra_rdoc_files: []
|
160
146
|
files:
|
161
|
-
-
|
162
|
-
-
|
147
|
+
- .gitignore
|
148
|
+
- .travis.yml
|
163
149
|
- Gemfile
|
164
150
|
- LICENSE.md
|
165
151
|
- README.md
|
166
152
|
- Rakefile
|
167
153
|
- bin/travis-custom-deploy
|
168
|
-
- cucumber.yml
|
169
|
-
- features/.gitkeep
|
170
154
|
- lib/travis-custom-deploy.rb
|
171
155
|
- lib/travis-custom-deploy/deployment.rb
|
172
156
|
- lib/travis-custom-deploy/options.rb
|
@@ -190,22 +174,18 @@ require_paths:
|
|
190
174
|
- lib
|
191
175
|
required_ruby_version: !ruby/object:Gem::Requirement
|
192
176
|
requirements:
|
193
|
-
- -
|
177
|
+
- - ! '>='
|
194
178
|
- !ruby/object:Gem::Version
|
195
179
|
version: '0'
|
196
180
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
197
181
|
requirements:
|
198
|
-
- -
|
182
|
+
- - ! '>='
|
199
183
|
- !ruby/object:Gem::Version
|
200
184
|
version: '0'
|
201
185
|
requirements: []
|
202
186
|
rubyforge_project:
|
203
|
-
rubygems_version: 2.2.
|
187
|
+
rubygems_version: 2.2.1
|
204
188
|
signing_key:
|
205
189
|
specification_version: 4
|
206
190
|
summary: Travis custom deployment gem
|
207
|
-
test_files:
|
208
|
-
- features/.gitkeep
|
209
|
-
- test/helper.rb
|
210
|
-
- test/test_deployment.rb
|
211
|
-
- test/test_options.rb
|
191
|
+
test_files: []
|
data/cucumber.yml
DELETED
data/features/.gitkeep
DELETED
File without changes
|