revup 0.2.0 → 0.2.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 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: []