samus 1.4.4 → 1.5.0
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 +4 -4
- data/Dockerfile +8 -0
- data/Rakefile +43 -0
- data/bin/samus +42 -39
- data/commands/build/changelog-parse +1 -1
- data/lib/samus/action.rb +8 -6
- data/lib/samus/build_action.rb +10 -13
- data/lib/samus/builder.rb +30 -20
- data/lib/samus/command.rb +31 -24
- data/lib/samus/credentials.rb +10 -6
- data/lib/samus/publish_action.rb +3 -1
- data/lib/samus/publisher.rb +5 -6
- data/lib/samus/version.rb +1 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ec8b4850b480f49ce49ab6c437a0feb1e50de811
|
4
|
+
data.tar.gz: 07f12c2e09ade8dde71f5b92e4bd34e37cc78bfd
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 21705267ac960018b61b4de530f334c3231d533f324dd0caec788bb96df259754a1a02b3dc7c5514183bf5e5719fc73d3388879e13f21ae3854a0e2f369cde64
|
7
|
+
data.tar.gz: 67de29e4727253e87a1c90b4d7b890ec716c76e888751784c2deab377fb5c5e21305afecc6ab60888d7d156ffe1fa2afd10a3df297233d2868102e46e1303f9e
|
data/Dockerfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
task default: :build
|
2
|
+
|
3
|
+
task :build do
|
4
|
+
home = Dir.home
|
5
|
+
id = `docker build -q .`.chomp
|
6
|
+
dirs = [
|
7
|
+
"#{home}/.ssh:/root/.sshkeys",
|
8
|
+
"#{home}/.samus:/root/.samus",
|
9
|
+
"#{home}/.gitconfig:/root/.gitconfig",
|
10
|
+
"#{Dir.pwd}:/app"
|
11
|
+
]
|
12
|
+
cmd = "rake build_from_docker VERSION=#{ENV['VERSION']}"
|
13
|
+
alldirs = dirs.map { |d| "-v \"#{d}\"" }.join(' ')
|
14
|
+
sh "docker run --rm #{alldirs} -w /app -t #{id} #{cmd}"
|
15
|
+
end
|
16
|
+
|
17
|
+
task :build_from_docker do
|
18
|
+
version = ENV['VERSION']
|
19
|
+
sh 'mkdir -p ~/.ssh && cp -R ~/.sshkeys/* ~/.ssh'
|
20
|
+
sh 'chmod 700 ~/.ssh && chmod 400 ~/.ssh/*'
|
21
|
+
sh "samus build #{version}"
|
22
|
+
end
|
23
|
+
|
24
|
+
task :publish do
|
25
|
+
home = Dir.home
|
26
|
+
id = `docker build -q .`.chomp
|
27
|
+
dirs = [
|
28
|
+
"#{home}/.ssh:/root/.sshkeys",
|
29
|
+
"#{home}/.samus:/root/.samus",
|
30
|
+
"#{home}/.gitconfig:/root/.gitconfig",
|
31
|
+
"#{Dir.pwd}:/app"
|
32
|
+
]
|
33
|
+
cmd = "rake publish_from_docker FILE=#{ENV['FILE']}"
|
34
|
+
alldirs = dirs.map { |d| "-v \"#{d}\"" }.join(' ')
|
35
|
+
sh "docker run --rm #{alldirs} -w /app -t #{id} #{cmd}"
|
36
|
+
end
|
37
|
+
|
38
|
+
task :publish_from_docker do
|
39
|
+
file = ENV['FILE']
|
40
|
+
sh 'mkdir -p ~/.ssh && cp -R ~/.sshkeys/* ~/.ssh'
|
41
|
+
sh 'chmod 700 ~/.ssh && chmod 400 ~/.ssh/*'
|
42
|
+
sh "samus publish #{file}"
|
43
|
+
end
|
data/bin/samus
CHANGED
@@ -4,67 +4,70 @@ require_relative '../lib/samus'
|
|
4
4
|
require 'optparse'
|
5
5
|
require 'tmpdir'
|
6
6
|
|
7
|
-
command =
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
7
|
+
command =
|
8
|
+
case ARGV.shift
|
9
|
+
when 'install'
|
10
|
+
Dir.mkdir(Samus::CONFIG_PATH) unless File.directory?(Samus::CONFIG_PATH)
|
11
|
+
Dir.chdir(Samus::CONFIG_PATH) { system "git clone #{ARGV.shift}" }
|
12
|
+
exit
|
13
|
+
when 'update'
|
14
|
+
Samus.config_paths.each do |path|
|
15
|
+
Dir.chdir(path) do
|
16
|
+
if File.directory?('.git')
|
17
|
+
puts "[I] Updating #{path}"
|
18
|
+
system 'git pull'
|
19
|
+
else
|
20
|
+
puts "[S] Skipping non-Git directory #{path}"
|
21
|
+
end
|
20
22
|
end
|
21
23
|
end
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
24
|
+
exit
|
25
|
+
when 'show-cmd'
|
26
|
+
stage = ARGV.shift
|
27
|
+
if stage
|
28
|
+
name = ARGV.shift
|
29
|
+
if name
|
30
|
+
Samus::Command.new(stage, name).show_help
|
31
|
+
else
|
32
|
+
Samus::Command.list_commands(stage)
|
33
|
+
end
|
30
34
|
else
|
31
|
-
Samus::Command.list_commands
|
35
|
+
Samus::Command.list_commands
|
32
36
|
end
|
33
|
-
|
34
|
-
|
37
|
+
exit
|
38
|
+
when 'publish', 'push'
|
39
|
+
Samus::Publisher
|
40
|
+
when 'build'
|
41
|
+
Samus::Builder
|
35
42
|
end
|
36
|
-
exit
|
37
|
-
when 'publish', 'push'; Samus::Publisher
|
38
|
-
when 'build'; Samus::Builder
|
39
|
-
end
|
40
43
|
|
41
44
|
dry_run = false
|
42
45
|
zip_release = true
|
43
46
|
outfile = nil
|
44
|
-
|
47
|
+
options = OptionParser.new do |opts|
|
45
48
|
opts.banner = "Usage: samus publish [options] <directory> [directory ...]\n"
|
46
49
|
opts.banner += " samus build [options] <version> [build.json]\n"
|
47
50
|
opts.banner += " samus show-cmd [stage] [name]\n"
|
48
51
|
|
49
|
-
opts.separator
|
50
|
-
opts.separator
|
51
|
-
opts.on(
|
52
|
+
opts.separator ''
|
53
|
+
opts.separator 'Options:'
|
54
|
+
opts.on('--dry-run', "Print commands, don't run them") do |_v|
|
52
55
|
dry_run = true
|
53
56
|
end
|
54
57
|
if command == Samus::Builder
|
55
|
-
opts.on(
|
58
|
+
opts.on('--[no-]zip', 'Zip release directory') do |zip|
|
56
59
|
zip_release = zip
|
57
60
|
end
|
58
|
-
opts.on(
|
61
|
+
opts.on('-o FILE', '--output', 'The file (no extension) to generate') do |file|
|
59
62
|
outfile = file
|
60
63
|
end
|
61
64
|
end
|
62
65
|
end
|
63
|
-
|
66
|
+
options.parse!
|
64
67
|
|
65
68
|
if command == Samus::Publisher
|
66
69
|
ARGV.each do |dir|
|
67
|
-
|
70
|
+
raise "Aborting due to missing path #{dir}" unless File.exist?(dir)
|
68
71
|
end
|
69
72
|
|
70
73
|
ARGV.each do |dir|
|
@@ -78,9 +81,9 @@ if command == Samus::Publisher
|
|
78
81
|
end
|
79
82
|
end
|
80
83
|
elsif command == Samus::Builder
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
+
ver = ARGV.shift
|
85
|
+
raise 'Missing version' if ver.nil?
|
86
|
+
Samus::Builder.build_version = ver.sub(/^v/, '')
|
84
87
|
|
85
88
|
(ARGV.empty? ? ['samus.json'] : ARGV).each do |file|
|
86
89
|
command.new(file).build(dry_run, zip_release, outfile)
|
data/lib/samus/action.rb
CHANGED
@@ -12,7 +12,9 @@ module Samus
|
|
12
12
|
@arguments = opts[:arguments] || {}
|
13
13
|
end
|
14
14
|
|
15
|
-
def stage
|
15
|
+
def stage
|
16
|
+
raise NotImplementedError, 'action must define stage'
|
17
|
+
end
|
16
18
|
|
17
19
|
def load(opts = {})
|
18
20
|
opts.each do |key, value|
|
@@ -32,10 +34,10 @@ module Samus
|
|
32
34
|
|
33
35
|
def command_options
|
34
36
|
{
|
35
|
-
:
|
36
|
-
:
|
37
|
-
:
|
38
|
-
:
|
37
|
+
arguments: @creds ? @arguments.merge(@creds.load) : @arguments,
|
38
|
+
files: @files,
|
39
|
+
dry_run: @dry_run,
|
40
|
+
allow_fail: @allow_fail
|
39
41
|
}
|
40
42
|
end
|
41
43
|
|
@@ -54,7 +56,7 @@ module Samus
|
|
54
56
|
attr_writer :files
|
55
57
|
|
56
58
|
def arguments=(args)
|
57
|
-
args.each {|k, v| @arguments[k] = v }
|
59
|
+
args.each { |k, v| @arguments[k] = v }
|
58
60
|
end
|
59
61
|
end
|
60
62
|
end
|
data/lib/samus/build_action.rb
CHANGED
@@ -10,15 +10,15 @@ module Samus
|
|
10
10
|
|
11
11
|
attr_reader :publish
|
12
12
|
|
13
|
-
def stage
|
13
|
+
def stage
|
14
|
+
'build'
|
15
|
+
end
|
14
16
|
|
15
17
|
def command_options
|
16
|
-
super.merge(:
|
18
|
+
super.merge(pwd: @pwd)
|
17
19
|
end
|
18
20
|
|
19
|
-
|
20
|
-
@pwd = pwd
|
21
|
-
end
|
21
|
+
attr_writer :pwd
|
22
22
|
|
23
23
|
def run
|
24
24
|
return if @skip
|
@@ -26,21 +26,18 @@ module Samus
|
|
26
26
|
end
|
27
27
|
|
28
28
|
def publish=(publish)
|
29
|
-
@publish = Array
|
29
|
+
@publish = publish.is_a?(Array) ? publish : [publish]
|
30
30
|
@publish.each do |publish_action|
|
31
31
|
publish_action['files'] ||= @files if @files
|
32
32
|
end
|
33
|
-
@publish
|
34
33
|
end
|
35
34
|
|
36
35
|
attr_reader :skip
|
37
36
|
def condition=(condition)
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
raise e
|
43
|
-
end
|
37
|
+
@skip = !eval(condition)
|
38
|
+
rescue StandardError => e
|
39
|
+
puts "[E] Condition failed on #{@raw_options['action']}"
|
40
|
+
raise e
|
44
41
|
end
|
45
42
|
end
|
46
43
|
end
|
data/lib/samus/builder.rb
CHANGED
@@ -5,25 +5,30 @@ require_relative './build_action'
|
|
5
5
|
|
6
6
|
module Samus
|
7
7
|
class Builder
|
8
|
-
RESTORE_FILE =
|
8
|
+
RESTORE_FILE = '.git/samus-restore'.freeze
|
9
|
+
|
10
|
+
class << self
|
11
|
+
attr_accessor :build_version
|
12
|
+
end
|
9
13
|
|
10
14
|
attr_reader :build_manifest
|
11
15
|
|
12
16
|
def initialize(build_manifest_file)
|
17
|
+
fdata = File.read(build_manifest_file).gsub('$version', version)
|
13
18
|
@stage = 'build'
|
14
19
|
@build_manifest_file = build_manifest_file
|
15
|
-
@build_manifest = JSON.parse(
|
20
|
+
@build_manifest = JSON.parse(fdata)
|
16
21
|
@manifest = {}
|
17
22
|
end
|
18
23
|
|
19
24
|
def build(dry_run = false, zip_release = true, outfile = nil)
|
20
25
|
orig_pwd = Dir.pwd
|
21
|
-
manifest = {'version' =>
|
22
|
-
build_branch = "samus-release/v#{
|
26
|
+
manifest = { 'version' => version, 'actions' => [] }
|
27
|
+
build_branch = "samus-release/v#{version}"
|
23
28
|
orig_branch = `git symbolic-ref -q --short HEAD`.chomp
|
24
29
|
|
25
|
-
if `git diff --shortstat 2> /dev/null | tail -n1` !=
|
26
|
-
Samus.error
|
30
|
+
if `git diff --shortstat 2> /dev/null | tail -n1` != ''
|
31
|
+
Samus.error 'Repository is dirty, it is too dangerous to continue.'
|
27
32
|
end
|
28
33
|
|
29
34
|
system "git checkout -qb #{build_branch} 2>/dev/null"
|
@@ -31,24 +36,25 @@ module Samus
|
|
31
36
|
|
32
37
|
Dir.mktmpdir do |build_dir|
|
33
38
|
actions.map do |action|
|
34
|
-
BuildAction.new(:
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
39
|
+
BuildAction.new(dry_run: dry_run, arguments: {
|
40
|
+
'_restore_file' => RESTORE_FILE,
|
41
|
+
'_build_dir' => build_dir,
|
42
|
+
'_build_branch' => build_branch,
|
43
|
+
'version' => version
|
44
|
+
}).load(action)
|
40
45
|
end.each do |action|
|
41
46
|
next if action.skip
|
42
47
|
action.run
|
43
48
|
manifest['actions'] += action.publish if action.publish
|
44
49
|
end
|
45
50
|
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
51
|
+
unless dry_run
|
52
|
+
Dir.chdir(build_dir) do
|
53
|
+
generate_manifest(manifest)
|
54
|
+
generate_release(orig_pwd, zip_release, outfile)
|
55
|
+
end
|
56
|
+
end
|
50
57
|
end
|
51
|
-
|
52
58
|
ensure
|
53
59
|
restore_git_repo
|
54
60
|
system "git checkout -q #{orig_branch} 2>/dev/null"
|
@@ -64,7 +70,7 @@ module Samus
|
|
64
70
|
end
|
65
71
|
|
66
72
|
def generate_release(orig_pwd, zip_release = true, outfile = nil)
|
67
|
-
file = outfile || build_manifest['output'] || "release-v#{
|
73
|
+
file = outfile || build_manifest['output'] || "release-v#{version}"
|
68
74
|
file = File.join(orig_pwd, file) unless file[0] == '/'
|
69
75
|
file_is_zipped = file =~ /\.(tar\.gz|tgz)$/
|
70
76
|
if zip_release || file_is_zipped
|
@@ -86,10 +92,10 @@ module Samus
|
|
86
92
|
File.readlines(RESTORE_FILE).each do |line|
|
87
93
|
type, branch, commit = *line.split(/\s+/)
|
88
94
|
case type
|
89
|
-
when
|
95
|
+
when 'tag'
|
90
96
|
puts "[D] Removing tag #{branch}" if $DEBUG
|
91
97
|
system "git tag -d #{branch} >/dev/null"
|
92
|
-
when
|
98
|
+
when 'branch'
|
93
99
|
puts "[D] Restoring #{branch} to #{commit}" if $DEBUG
|
94
100
|
system "git checkout -q #{branch}"
|
95
101
|
system "git reset -q --hard #{commit}"
|
@@ -102,5 +108,9 @@ module Samus
|
|
102
108
|
def remove_restore_file
|
103
109
|
File.unlink(RESTORE_FILE) if File.file?(RESTORE_FILE)
|
104
110
|
end
|
111
|
+
|
112
|
+
def version
|
113
|
+
self.class.build_version
|
114
|
+
end
|
105
115
|
end
|
106
116
|
end
|
data/lib/samus/command.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
module Samus
|
2
2
|
class Command
|
3
3
|
class << self
|
4
|
-
|
4
|
+
attr_reader :command_paths
|
5
5
|
|
6
6
|
def list_commands(stage = nil)
|
7
7
|
display_commands(collect_commands(stage))
|
@@ -10,15 +10,17 @@ module Samus
|
|
10
10
|
private
|
11
11
|
|
12
12
|
def display_commands(stages)
|
13
|
-
puts
|
14
|
-
puts
|
13
|
+
puts 'Commands:'
|
14
|
+
puts ''
|
15
15
|
stages.each do |type, commands|
|
16
16
|
puts "#{type}:"
|
17
|
-
puts
|
17
|
+
puts ''
|
18
18
|
commands.sort.each do |command|
|
19
|
-
puts(
|
19
|
+
puts(format(' * %<name>-20s%<desc>s',
|
20
|
+
name: command.name,
|
21
|
+
desc: command.help_text.split(/\r?\n/)[0]))
|
20
22
|
end
|
21
|
-
puts
|
23
|
+
puts ''
|
22
24
|
end
|
23
25
|
end
|
24
26
|
|
@@ -26,7 +28,7 @@ module Samus
|
|
26
28
|
stages = {}
|
27
29
|
command_paths.each do |path|
|
28
30
|
Dir.glob(File.join(path, '*', '*')).each do |dir|
|
29
|
-
type, name = *dir.split(File::SEPARATOR)[-2,2]
|
31
|
+
type, name = *dir.split(File::SEPARATOR)[-2, 2]
|
30
32
|
next if name =~ /\.md$/
|
31
33
|
next if stage && stage != type
|
32
34
|
(stages[type] ||= []).push(new(type, name))
|
@@ -36,7 +38,9 @@ module Samus
|
|
36
38
|
end
|
37
39
|
end
|
38
40
|
|
39
|
-
|
41
|
+
@command_paths = [File.expand_path(
|
42
|
+
File.join(File.dirname(__FILE__), '..', '..', 'commands')
|
43
|
+
)]
|
40
44
|
|
41
45
|
attr_reader :stage, :name
|
42
46
|
|
@@ -48,35 +52,34 @@ module Samus
|
|
48
52
|
|
49
53
|
def show_help
|
50
54
|
puts "#{stage.capitalize} Command: #{name}"
|
51
|
-
puts
|
55
|
+
puts ''
|
52
56
|
puts help_text
|
53
57
|
end
|
54
58
|
|
55
59
|
def help_text
|
56
|
-
@help_text ||= File.exist?(help_path) ? File.read(help_path) :
|
60
|
+
@help_text ||= File.exist?(help_path) ? File.read(help_path) : ''
|
57
61
|
end
|
58
62
|
|
59
63
|
def log_command(env = {}, arguments = [])
|
60
|
-
e = env.map {|k,v| k =~ /^(AWS|__)/ ? nil : "#{k}=#{v.inspect}" }.compact.join(
|
61
|
-
e
|
62
|
-
puts(
|
64
|
+
e = env.map { |k, v| k =~ /^(AWS|__)/ ? nil : "#{k}=#{v.inspect}" }.compact.join(' ')
|
65
|
+
e += ' ' unless e.empty?
|
66
|
+
puts('[C] ' + e + name + (arguments ? ' ' + arguments.join(' ') : ''))
|
63
67
|
end
|
64
68
|
|
65
69
|
def run(opts = {})
|
66
|
-
env = (opts[:arguments] || {}).
|
70
|
+
env = (opts[:arguments] || {}).each_with_object({}) { |(k, v), h| h["_#{k}"] = v; }
|
67
71
|
arguments = opts[:files] || []
|
68
72
|
dry_run = opts[:dry_run] || false
|
69
73
|
allow_fail = opts[:allow_fail] || false
|
70
74
|
pwd = opts[:pwd]
|
71
|
-
old_pwd = Dir.pwd
|
72
75
|
|
73
76
|
log_command(env, arguments)
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
report_error($?, allow_fail)
|
77
|
+
|
78
|
+
return if dry_run
|
79
|
+
exec_in_dir(pwd) do
|
80
|
+
system(env, @full_path + ' ' + (arguments ? arguments.join(' ') : ''))
|
79
81
|
end
|
82
|
+
report_error($CHILD_STATUS, allow_fail)
|
80
83
|
end
|
81
84
|
|
82
85
|
def <=>(other)
|
@@ -86,7 +89,7 @@ module Samus
|
|
86
89
|
private
|
87
90
|
|
88
91
|
def report_error(exit_code, allow_fail)
|
89
|
-
return if exit_code.to_i
|
92
|
+
return if exit_code.to_i.zero?
|
90
93
|
puts "[E] Last command failed with #{exit_code}#{allow_fail ? ' but allowFail=true' : ', exiting'}."
|
91
94
|
exit(exit_code.to_i) unless allow_fail
|
92
95
|
end
|
@@ -96,11 +99,15 @@ module Samus
|
|
96
99
|
end
|
97
100
|
|
98
101
|
def load_full_path
|
99
|
-
|
102
|
+
path = self.class.command_paths.find do |ipath|
|
103
|
+
File.exist?(File.join(ipath, stage, name))
|
104
|
+
end
|
105
|
+
|
106
|
+
if path
|
100
107
|
@full_path = File.join(path, stage, name)
|
101
108
|
else
|
102
|
-
Samus.error "Could not find command: #{name} "
|
103
|
-
|
109
|
+
Samus.error "Could not find command: #{name} " \
|
110
|
+
"(cmd_paths=#{self.class.command_paths.join(':')})"
|
104
111
|
end
|
105
112
|
end
|
106
113
|
|
data/lib/samus/credentials.rb
CHANGED
@@ -2,7 +2,11 @@ module Samus
|
|
2
2
|
class Credentials
|
3
3
|
attr_reader :name
|
4
4
|
|
5
|
-
|
5
|
+
class << self
|
6
|
+
attr_accessor :credentials
|
7
|
+
end
|
8
|
+
|
9
|
+
@credentials = {}
|
6
10
|
|
7
11
|
def initialize(name)
|
8
12
|
@name = name
|
@@ -10,7 +14,7 @@ module Samus
|
|
10
14
|
end
|
11
15
|
|
12
16
|
def load
|
13
|
-
return
|
17
|
+
return self.class.credentials[name] if self.class.credentials[name]
|
14
18
|
|
15
19
|
hsh = {}
|
16
20
|
data = nil
|
@@ -28,7 +32,7 @@ module Samus
|
|
28
32
|
hsh["_creds_#{name.strip.downcase}"] = value.strip
|
29
33
|
end
|
30
34
|
|
31
|
-
|
35
|
+
self.class.credentials[name] = hsh
|
32
36
|
end
|
33
37
|
|
34
38
|
private
|
@@ -41,8 +45,8 @@ module Samus
|
|
41
45
|
return
|
42
46
|
end
|
43
47
|
end
|
44
|
-
Samus.error "Could not find credential: #{name} "
|
45
|
-
|
48
|
+
Samus.error "Could not find credential: #{name} " \
|
49
|
+
"(SAMUS_CONFIG_PATH=#{Samus.config_paths.join(':')})"
|
46
50
|
end
|
47
51
|
end
|
48
|
-
end
|
52
|
+
end
|
data/lib/samus/publish_action.rb
CHANGED
data/lib/samus/publisher.rb
CHANGED
@@ -12,12 +12,11 @@ module Samus
|
|
12
12
|
def publish(dry_run = false)
|
13
13
|
Dir.chdir(@dir) do
|
14
14
|
actions.map do |action|
|
15
|
-
PublishAction.new(
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
end
|
15
|
+
PublishAction.new(
|
16
|
+
dry_run: dry_run,
|
17
|
+
arguments: { 'version' => manifest['version'] }
|
18
|
+
).load(action)
|
19
|
+
end.each(&:run)
|
21
20
|
end
|
22
21
|
end
|
23
22
|
|
data/lib/samus/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: samus
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Loren Segal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2018-07-18 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: lsegal@soen.ca
|
@@ -18,8 +18,10 @@ extensions: []
|
|
18
18
|
extra_rdoc_files: []
|
19
19
|
files:
|
20
20
|
- CHANGELOG.md
|
21
|
+
- Dockerfile
|
21
22
|
- LICENSE
|
22
23
|
- README.md
|
24
|
+
- Rakefile
|
23
25
|
- bin/samus
|
24
26
|
- commands/build/archive-git-full
|
25
27
|
- commands/build/archive-git-full.help.md
|
@@ -105,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
105
107
|
version: '0'
|
106
108
|
requirements: []
|
107
109
|
rubyforge_project:
|
108
|
-
rubygems_version: 2.
|
110
|
+
rubygems_version: 2.6.14.1
|
109
111
|
signing_key:
|
110
112
|
specification_version: 4
|
111
113
|
summary: Samus helps you release Open Source Software.
|