revup 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA256:
3
+ metadata.gz: 57625f7e1d76b08957bc2a82887c0e723c1e04b15351092df11abc820aceeed6
4
+ data.tar.gz: 1925dd8a3c798c4e1f710e7a3f3d3189decdb184c168c298ec39ea0fba7d6842
5
+ SHA512:
6
+ metadata.gz: 801cfea76b13207f54a3156c547678062d1dddd4738d2085130504895792ad5a50ef0ae1bcf2affdc6ee0377e4db9421a42762fbc742700aab0c0b2f290c88fa
7
+ data.tar.gz: 1f8780314df5f9850ca6abc98f4112d69dae2b1d8841461f62b69c870c0c731cad8f3efb64d4c8a49c85fd22067b244402d9df765158f00e410a637797b1fe39
data/README.md CHANGED
@@ -2,8 +2,8 @@
2
2
 
3
3
  Revup is a simple deployment utility, for the Sauspiel client versioned_assets, packaged as a rake task.
4
4
 
5
- You tell it which files to deploy and Revup will push it to the server and register the new revision of the versioned_asset.
6
-
5
+ You tell it which files to deploy and Revup will push it to the server and
6
+ register the new revision of the versioned_asset.
7
7
 
8
8
  ## Install
9
9
 
@@ -79,3 +79,8 @@ Before you can actually deploy a new revision of a versioned_asset, the Rails ap
79
79
  SQL (0.5ms) INSERT INTO `versioned_assets` (`created_at`, `name`, `released_revision_id`, `updated_at`) VALUES ('2012-01-12 14:27:23', 'html5-desktop-game-client', NULL, '2012-01-12 14:27:23')
80
80
  (0.6ms) COMMIT
81
81
  => #<VersionedAsset id: 909168789, name: "html5-desktop-game-client", released_revision_id: nil, created_at: "2012-01-12 14:27:23", updated_at: "2012-01-12 14:27:23">
82
+
83
+ ## running tests
84
+
85
+ To run tests, you need to enable ssh access with private key to your local
86
+ machine, including your whole filesystem. Sorry!
@@ -20,7 +20,7 @@ module Revup
20
20
 
21
21
  attr_accessor :versioned_asset_name
22
22
 
23
- attr_accessor :versioned_asset_name_and_prerequisites
23
+ attr_accessor :task_name_and_prerequisites
24
24
 
25
25
  attr_accessor :files_root, :files
26
26
 
@@ -38,49 +38,46 @@ module Revup
38
38
 
39
39
  attr_accessor :logger
40
40
 
41
- def initialize(versioned_asset_name_and_prerequisites)
41
+ def initialize(task_name_and_prerequisites)
42
42
  DEFAULT_TO_CLASS_ATTRS.each do |attr|
43
43
  send("#{attr}=", self.class.send(attr))
44
44
  end
45
45
 
46
- @versioned_asset_name_and_prerequisites = versioned_asset_name_and_prerequisites
47
- @versioned_asset_name = @versioned_asset_name_and_prerequisites.is_a?(Hash) ?
48
- @versioned_asset_name_and_prerequisites.keys.first : @versioned_asset_name_and_prerequisites
46
+ @task_name_and_prerequisites = task_name_and_prerequisites
47
+ @versioned_asset_name = task_name
49
48
 
50
- yield self if block_given?
51
- define
52
- end
53
-
54
- def revision
55
49
  @revision ||= begin
56
50
  result = sh("git rev-parse --short HEAD 2>&1")
57
51
  result unless result.empty?
58
52
  end
53
+
54
+ yield self if block_given?
55
+ define
59
56
  end
60
57
 
61
58
  def archive_basename
62
- "#{@versioned_asset_name}-#{@revision}"
59
+ "#{versioned_asset_name}-#{revision}"
63
60
  end
64
61
 
65
62
  def local_archive_path
66
- File.join(@local_tmp_dir, "#{archive_basename}.tgz")
63
+ File.join(local_tmp_dir, "#{archive_basename}.tgz")
67
64
  end
68
65
 
69
66
  def remote_archive_path
70
- File.join(@remote_tmp_dir, "#{archive_basename}.tgz")
67
+ File.join(remote_tmp_dir, "#{archive_basename}.tgz")
71
68
  end
72
69
 
73
70
  def remote_archive_dir
74
- File.join(@remote_tmp_dir, archive_basename)
71
+ File.join(remote_tmp_dir, archive_basename)
75
72
  end
76
73
 
77
74
  # Actual task definition
78
75
 
79
76
  def define
80
- desc "Deploy build of the `#{@versioned_asset_name}' versioned_asset"
81
- task(@versioned_asset_name_and_prerequisites) do
77
+ task(task_name_and_prerequisites) do
82
78
  deploy
83
79
  end
80
+ Rake::Task[task_name].add_description("Deploy build of the `#{versioned_asset_name}' versioned_asset")
84
81
  end
85
82
 
86
83
  def deploy
@@ -95,27 +92,27 @@ module Revup
95
92
  upload_and_register
96
93
 
97
94
  rescue Object => e
98
- @logger.error("#{e.message}\n\t#{e.backtrace.join("\n\t")}")
95
+ logger.error("#{e.message}\n\t#{e.backtrace.join("\n\t")}")
99
96
  raise e
100
97
  end
101
98
 
102
99
  def create_archive
103
- sh "mkdir -p '#{@local_tmp_dir}'"
104
- sh "tar -C '#{@files_root}' -zcf '#{local_archive_path}' '#{@files.sort.join("' '")}'"
100
+ sh "mkdir -p '#{local_tmp_dir}'"
101
+ sh "tar -C '#{files_root}' -zcf '#{local_archive_path}' '#{files.sort.join("' '")}'"
105
102
  end
106
103
 
107
104
  def upload_and_register
108
- Net::SSH.start(@host, @user) do |connection|
105
+ Net::SSH.start(host, user) do |connection|
109
106
  @ssh = connection
110
107
 
111
108
  ssh "mkdir -p '#{remote_archive_dir}'"
112
109
  # Upload archive
113
- @logger.info("Transferring `#{local_archive_path}' to `#{@host}:#{remote_archive_path}'")
110
+ logger.info("Transferring `#{local_archive_path}' to `#{host}:#{remote_archive_path}'")
114
111
  @ssh.scp.upload!(local_archive_path, remote_archive_path)
115
112
  # Unpack archive
116
113
  ssh "tar -C '#{remote_archive_dir}' -zxf '#{remote_archive_path}'"
117
114
  # Register revision
118
- ssh "cd '#{@app_dir}' && bundle exec ./script/register_versioned_asset_revision '#{remote_archive_dir}' '#{versioned_asset_name}' '#{revision}'"
115
+ ssh "cd '#{app_dir}' && /usr/local/rbenv/shims/bundle exec ./script/register_versioned_asset_revision '#{remote_archive_dir}' '#{versioned_asset_name}' '#{revision}'"
119
116
 
120
117
  cleanup!
121
118
  end
@@ -130,23 +127,28 @@ module Revup
130
127
 
131
128
  private
132
129
 
130
+ def task_name
131
+ task_name_and_prerequisites.is_a?(Hash) ?
132
+ task_name_and_prerequisites.keys.first : task_name_and_prerequisites
133
+ end
134
+
133
135
  def validate(value, message)
134
136
  raise message if value.nil? || value.empty?
135
137
  end
136
138
 
137
139
  def sh(cmd)
138
- @logger.info("[local] executing: #{cmd}")
140
+ logger.info("[local] executing: #{cmd}")
139
141
  result = `#{cmd} 2>&1`.strip
140
142
  raise "Failed to execute: #{result}" unless $?.success?
141
- @logger.info("[local] output: #{result}") unless result.empty?
143
+ logger.info("[local] output: #{result}") unless result.empty?
142
144
  result
143
145
  end
144
146
 
145
147
  def ssh(cmd)
146
148
  cmd = "#{remote_setup}; #{cmd}" if remote_setup
147
- @logger.info("[remote] executing: #{cmd}")
149
+ logger.info("[remote] executing: #{cmd}")
148
150
  if result = @ssh.exec!(cmd)
149
- @logger.info("[remote] output: #{result}")
151
+ logger.info("[remote] output: #{result}")
150
152
  end
151
153
  end
152
154
  end
data/lib/revup/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Revup
2
- VERSION = '0.2.0'
2
+ VERSION = '0.2.1'
3
3
  end
metadata CHANGED
@@ -1,50 +1,114 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: revup
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
5
- prerelease:
4
+ version: 0.2.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Eloy Duran
9
- autorequire:
8
+ autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
11
  date: 2012-01-12 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: net-ssh
16
- requirement: &70336829881540 !ruby/object:Gem::Requirement
17
- none: false
15
+ requirement: !ruby/object:Gem::Requirement
18
16
  requirements:
19
- - - ~>
17
+ - - "~>"
20
18
  - !ruby/object:Gem::Version
21
- version: 2.3.0
19
+ version: 6.1.0
22
20
  type: :runtime
23
21
  prerelease: false
24
- version_requirements: *70336829881540
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - "~>"
25
+ - !ruby/object:Gem::Version
26
+ version: 6.1.0
25
27
  - !ruby/object:Gem::Dependency
26
28
  name: net-scp
27
- requirement: &70336829881020 !ruby/object:Gem::Requirement
28
- none: false
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - "~>"
32
+ - !ruby/object:Gem::Version
33
+ version: 3.0.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - "~>"
39
+ - !ruby/object:Gem::Version
40
+ version: 3.0.0
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 13.0.6
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 13.0.6
55
+ - !ruby/object:Gem::Dependency
56
+ name: ed25519
57
+ requirement: !ruby/object:Gem::Requirement
29
58
  requirements:
30
- - - ~>
59
+ - - "~>"
31
60
  - !ruby/object:Gem::Version
32
- version: 1.0.4
61
+ version: 1.2.4
33
62
  type: :runtime
34
63
  prerelease: false
35
- version_requirements: *70336829881020
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: 1.2.4
69
+ - !ruby/object:Gem::Dependency
70
+ name: bcrypt_pbkdf
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - "~>"
74
+ - !ruby/object:Gem::Version
75
+ version: 1.1.0
76
+ type: :runtime
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: 1.1.0
36
83
  - !ruby/object:Gem::Dependency
37
84
  name: rspec
38
- requirement: &70336829880220 !ruby/object:Gem::Requirement
39
- none: false
85
+ requirement: !ruby/object:Gem::Requirement
40
86
  requirements:
41
- - - ~>
87
+ - - "~>"
42
88
  - !ruby/object:Gem::Version
43
- version: 2.8.0
89
+ version: 3.8.0
44
90
  type: :development
45
91
  prerelease: false
46
- version_requirements: *70336829880220
47
- description:
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: 3.8.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: 0.14.0
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - "~>"
109
+ - !ruby/object:Gem::Version
110
+ version: 0.14.0
111
+ description:
48
112
  email:
49
113
  - eloy@fngtps.com
50
114
  - martin@sauspiel.de
@@ -52,33 +116,31 @@ executables: []
52
116
  extensions: []
53
117
  extra_rdoc_files: []
54
118
  files:
55
- - lib/revup/deploy_task.rb
56
- - lib/revup/version.rb
57
119
  - LICENSE
58
120
  - README.md
59
- homepage:
121
+ - lib/revup/deploy_task.rb
122
+ - lib/revup/version.rb
123
+ homepage:
60
124
  licenses:
61
125
  - MIT
62
- post_install_message:
126
+ metadata: {}
127
+ post_install_message:
63
128
  rdoc_options: []
64
129
  require_paths:
65
130
  - lib
66
131
  required_ruby_version: !ruby/object:Gem::Requirement
67
- none: false
68
132
  requirements:
69
- - - ! '>='
133
+ - - ">="
70
134
  - !ruby/object:Gem::Version
71
- version: '0'
135
+ version: 2.7.0
72
136
  required_rubygems_version: !ruby/object:Gem::Requirement
73
- none: false
74
137
  requirements:
75
- - - ! '>='
138
+ - - ">="
76
139
  - !ruby/object:Gem::Version
77
140
  version: '0'
78
141
  requirements: []
79
- rubyforge_project:
80
- rubygems_version: 1.8.11
81
- signing_key:
82
- specification_version: 3
142
+ rubygems_version: 3.1.6
143
+ signing_key:
144
+ specification_version: 4
83
145
  summary: A simple deploy tool, packaged as a rake task. Currently targeted for sauspiel.de
84
146
  test_files: []