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 +7 -0
- data/README.md +7 -2
- data/lib/revup/deploy_task.rb +28 -26
- data/lib/revup/version.rb +1 -1
- metadata +94 -32
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
|
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!
|
data/lib/revup/deploy_task.rb
CHANGED
@@ -20,7 +20,7 @@ module Revup
|
|
20
20
|
|
21
21
|
attr_accessor :versioned_asset_name
|
22
22
|
|
23
|
-
attr_accessor :
|
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(
|
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
|
-
@
|
47
|
-
@versioned_asset_name =
|
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
|
-
"#{
|
59
|
+
"#{versioned_asset_name}-#{revision}"
|
63
60
|
end
|
64
61
|
|
65
62
|
def local_archive_path
|
66
|
-
File.join(
|
63
|
+
File.join(local_tmp_dir, "#{archive_basename}.tgz")
|
67
64
|
end
|
68
65
|
|
69
66
|
def remote_archive_path
|
70
|
-
File.join(
|
67
|
+
File.join(remote_tmp_dir, "#{archive_basename}.tgz")
|
71
68
|
end
|
72
69
|
|
73
70
|
def remote_archive_dir
|
74
|
-
File.join(
|
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
|
-
|
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
|
-
|
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 '#{
|
104
|
-
sh "tar -C '#{
|
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(
|
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
|
-
|
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 '#{
|
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
|
-
|
140
|
+
logger.info("[local] executing: #{cmd}")
|
139
141
|
result = `#{cmd} 2>&1`.strip
|
140
142
|
raise "Failed to execute: #{result}" unless $?.success?
|
141
|
-
|
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
|
-
|
149
|
+
logger.info("[remote] executing: #{cmd}")
|
148
150
|
if result = @ssh.exec!(cmd)
|
149
|
-
|
151
|
+
logger.info("[remote] output: #{result}")
|
150
152
|
end
|
151
153
|
end
|
152
154
|
end
|
data/lib/revup/version.rb
CHANGED
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.
|
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:
|
17
|
-
none: false
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
18
16
|
requirements:
|
19
|
-
- - ~>
|
17
|
+
- - "~>"
|
20
18
|
- !ruby/object:Gem::Version
|
21
|
-
version:
|
19
|
+
version: 6.1.0
|
22
20
|
type: :runtime
|
23
21
|
prerelease: false
|
24
|
-
version_requirements:
|
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:
|
28
|
-
|
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.
|
61
|
+
version: 1.2.4
|
33
62
|
type: :runtime
|
34
63
|
prerelease: false
|
35
|
-
version_requirements:
|
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:
|
39
|
-
none: false
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
40
86
|
requirements:
|
41
|
-
- - ~>
|
87
|
+
- - "~>"
|
42
88
|
- !ruby/object:Gem::Version
|
43
|
-
version:
|
89
|
+
version: 3.8.0
|
44
90
|
type: :development
|
45
91
|
prerelease: false
|
46
|
-
version_requirements:
|
47
|
-
|
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
|
-
|
121
|
+
- lib/revup/deploy_task.rb
|
122
|
+
- lib/revup/version.rb
|
123
|
+
homepage:
|
60
124
|
licenses:
|
61
125
|
- MIT
|
62
|
-
|
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:
|
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
|
-
|
80
|
-
|
81
|
-
|
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: []
|