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 CHANGED
@@ -1,7 +1,15 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 927a724fe12a338af1370cae82511b850c12c828
4
- data.tar.gz: 759a48bea051d5e6e807cb24ab6c30fda83c63b2
2
+ !binary "U0hBMQ==":
3
+ metadata.gz: !binary |-
4
+ Mzc1YWRhMjQ4MGUyNGY3Y2Y0OTllMzdhNjNmMTFiNjFkMTE4OGFlMA==
5
+ data.tar.gz: !binary |-
6
+ NDFiZTRkNWI5ZjRjOGU4NTM4ZWY2MWEyNjEyYzMyYWMwODBkNzY1NQ==
5
7
  SHA512:
6
- metadata.gz: 5aea3303f8454939edc2e663432d08003f9c82bc2514be1d15bebc3f3314d4b3e4e23a650cab70632c0706fe341b1c6b800d8100878d6c0b24ae0deb908eaf1f
7
- data.tar.gz: 190f5d3d34dfbc8304256bd0a45c6c4e9f65fdc9c45b53e83c3216eb3d9bb8920685bf72c2a48554688b916d09da3ebd4366153d062af601a3d37889575a35d8
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) 2013, Jens Nazarenus
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 [![Gem Version](https://badge.fury.io/rb/travis-custom-depl
5
5
  [![Code Climate](https://codeclimate.com/github/jens-na/travis-custom-deploy.png)](https://codeclimate.com/github/jens-na/travis-custom-deploy)
6
6
  [![Dependency Status](https://gemnasium.com/jens-na/travis-custom-deploy.png)](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
- You need to define environment variables with Travis. `travis-custom-deploy` will use those to
13
- deploy your application.
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
- - "CUSTOM_DEPLOY_HOST=host"
20
- - "CUSTOM_DEPLOY_USER=user"
21
- - "CUSTOM_DEPLOY_PASSWORD=password"
22
- - "CUSTOM_DEPLOY_REMOTEDIR=/path/to/"
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
- #### Services
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, :features, 'coveralls:push']
22
+ task :default => [:test, 'coveralls:push']
23
23
  else
24
- task :default => [:test, :features]
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
@@ -2,6 +2,7 @@
2
2
 
3
3
  require 'travis-custom-deploy'
4
4
 
5
+ # The usage for the binary of travis-custom-deploy
5
6
  def usage
6
7
  puts 'Usage: travis-custom-deploy TRANSFER_TYPE FILES...'
7
8
  end
@@ -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
- sftp.upload!(e, "#{@remotedir}/")
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, 'username must not be nil' if options['username'].nil?
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
@@ -1,5 +1,5 @@
1
1
  module TravisCustomDeploy
2
2
 
3
- VERSION = "0.0.4"
3
+ VERSION = "0.0.5"
4
4
 
5
5
  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
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 00:00:00.000000000 Z
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
- - ".gitignore"
162
- - ".travis.yml"
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.0
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: []
@@ -1,3 +0,0 @@
1
- default: --format pretty
2
- travis: --format progress
3
- html_report: --format progress --format html --out=features_report.html
File without changes