travis-custom-deploy 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
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