samus 3.0.5 → 3.0.6
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/CHANGELOG.md +12 -4
- data/bin/samus +5 -1
- data/commands/build/changelog-rotate +22 -0
- data/commands/build/changelog-rotate.help.md +16 -0
- data/lib/samus.rb +2 -2
- data/lib/samus/builder.rb +8 -4
- data/lib/samus/rake/{samus_task.rb → tasks.rb} +17 -7
- data/lib/samus/version.rb +1 -1
- data/samus.json +8 -1
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 47915496a5eff19917c66ca7388eedbec635fc74edec591d3812c372be5320df
|
4
|
+
data.tar.gz: 8ccd1ec5293c13e891c99b018522192f1a7412c80455836c542f7e5a82c5bf64
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e0688d7e14d2b8d2fdcc8ae93c71c2f92d369dd4d5aa501a825fe4f8006e5b4cd5073e1b553b08d59de2d0b5636f556c8403a88a9e6e3fd694a10ebbe86f251
|
7
|
+
data.tar.gz: 959212c3c2437831e675b6c2d2a73f0a807c6ab55cdc66ecde554f5916851c3bcc0eaf57721116e913a96274bb8913f8c454ee697bc03095e88f54f43dbadf43
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
# master
|
2
|
+
|
3
|
+
# 3.0.6 - April 02nd, 2019
|
4
|
+
|
5
|
+
[3.0.6]: https://github.com/lsegal/samus/compare/v3.0.5...v3.0.6
|
6
|
+
|
7
|
+
- Add `--skip-restore` to samus build to skip restoring Git repository. Useful
|
8
|
+
with Docker build support in order to inspect output of a built release.
|
9
|
+
- Add `build/changelog-rotate` command for changelog rotation.
|
10
|
+
- Add `inspect` and `clean` Rake tasks for `DockerReleaseTask` to inspect and
|
11
|
+
remove a previously built release respectively.
|
12
|
+
|
1
13
|
# 3.0.5 - April 1st, 2019
|
2
14
|
|
3
15
|
- Fix bug that breaks DockerReleaseTask if .gitconfig or .samus configs are
|
@@ -97,7 +109,3 @@ end
|
|
97
109
|
# 1.3.0 - July 23, 2014
|
98
110
|
|
99
111
|
- Fix issue where repository would not reset when using `samus-build` command.
|
100
|
-
|
101
|
-
```
|
102
|
-
|
103
|
-
```
|
data/bin/samus
CHANGED
@@ -43,6 +43,7 @@ command =
|
|
43
43
|
|
44
44
|
dry_run = false
|
45
45
|
zip_release = true
|
46
|
+
skip_restore = false
|
46
47
|
outfile = nil
|
47
48
|
docker = false
|
48
49
|
docker_image = "lsegal/samus:latest"
|
@@ -63,6 +64,9 @@ options = OptionParser.new do |opts|
|
|
63
64
|
opts.on('-o FILE', '--output', 'The file (no extension) to generate') do |file|
|
64
65
|
outfile = file
|
65
66
|
end
|
67
|
+
opts.on('--skip-restore', 'Skips restore after build completes') do
|
68
|
+
skip_restore = true
|
69
|
+
end
|
66
70
|
end
|
67
71
|
opts.on('--docker', 'Use Docker to build or publish') do |_v|
|
68
72
|
docker = true
|
@@ -107,7 +111,7 @@ elsif command == Samus::Builder
|
|
107
111
|
Samus::Builder.build_version = ver.sub(/^v/, '')
|
108
112
|
|
109
113
|
(ARGV.empty? ? ['samus.json'] : ARGV).each do |file|
|
110
|
-
command.new(file).build(dry_run, zip_release, outfile)
|
114
|
+
command.new(file).build(dry_run, zip_release, outfile, skip_restore)
|
111
115
|
end
|
112
116
|
else
|
113
117
|
puts options
|
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
file = ARGV[0]
|
4
|
+
ver = ENV['_VERSION']
|
5
|
+
master = ENV['_MASTER'] || 'master'
|
6
|
+
title_fmt = ENV['_TITLE_FORMAT'] || "[$version] - %B %-d$day_nth, %Y"
|
7
|
+
|
8
|
+
content = File.read(file)
|
9
|
+
compare_url = `git config remote.origin.url`.strip.sub(/^git@(.+?):/, 'https://\1/')
|
10
|
+
day_nth = {1 => 'st', 2 => 'nd', 3 => 'rd'}[Time.now.day % 10] || 'th'
|
11
|
+
title = Time.now.strftime(title_fmt).sub('$version', ver).sub('$day_nth', day_nth)
|
12
|
+
|
13
|
+
match = /\A\s*# #{master}\r?\n(?<body>.*?)(?<rest>\r?\n# .+|\Z)/mis.match(content)
|
14
|
+
raise "Failed to rotate changelog: #{file}" unless match
|
15
|
+
|
16
|
+
prev_ver = match['rest'][/(\d+\.\d+(?:\.\d+)?)/, 1]
|
17
|
+
repl = "# #{master}\n\n# #{title}\n\n" +
|
18
|
+
(prev_ver ? "[#{ver}]: #{compare_url}/compare/v#{prev_ver}...v#{ver}\n" : '') +
|
19
|
+
match['body'] + match['rest']
|
20
|
+
File.open(file, 'w') {|f| f.write(repl) }
|
21
|
+
puts "Added new #{file} header: #{title}"
|
22
|
+
puts "Previous #{file} version: #{prev_ver.inspect}"
|
@@ -0,0 +1,16 @@
|
|
1
|
+
Rotates the latest ChangeLog entries into an arbitrary formatted title heading.
|
2
|
+
The heading is formatted via `title_format` and can include the version
|
3
|
+
and release date.
|
4
|
+
|
5
|
+
Files:
|
6
|
+
|
7
|
+
- The path to the ChangeLog file.
|
8
|
+
|
9
|
+
Arguments:
|
10
|
+
|
11
|
+
- master: (optional) defaults to "master", should match the first development
|
12
|
+
heading used for in-flux changelog entries before rotation.
|
13
|
+
- title_format: (optional) a `Time.strftime` date formatted string that can
|
14
|
+
also include `$version` to represent the title of the rotated changelog entry.
|
15
|
+
Example: `$version - %B %-d, %Y`. It is recommended to put the version at the
|
16
|
+
front of the title to improve the reliability of generating a compare URL.
|
data/lib/samus.rb
CHANGED
@@ -6,8 +6,8 @@ module Samus
|
|
6
6
|
|
7
7
|
module Rake
|
8
8
|
# Autoloads
|
9
|
-
autoload :ReleaseTask, File.expand_path('samus/rake/
|
10
|
-
autoload :DockerReleaseTask, File.expand_path('samus/rake/
|
9
|
+
autoload :ReleaseTask, File.expand_path('samus/rake/tasks', __dir__)
|
10
|
+
autoload :DockerReleaseTask, File.expand_path('samus/rake/tasks', __dir__)
|
11
11
|
end
|
12
12
|
|
13
13
|
module_function
|
data/lib/samus/builder.rb
CHANGED
@@ -22,7 +22,7 @@ module Samus
|
|
22
22
|
@manifest = {}
|
23
23
|
end
|
24
24
|
|
25
|
-
def build(dry_run = false, zip_release = true, outfile = nil)
|
25
|
+
def build(dry_run = false, zip_release = true, outfile = nil, skip_restore = false)
|
26
26
|
orig_pwd = Dir.pwd
|
27
27
|
manifest = { 'version' => version, 'actions' => [] }
|
28
28
|
build_branch = "samus-release/v#{version}"
|
@@ -60,9 +60,13 @@ module Samus
|
|
60
60
|
end
|
61
61
|
end
|
62
62
|
ensure
|
63
|
-
|
64
|
-
|
65
|
-
|
63
|
+
if skip_restore
|
64
|
+
remove_restore_file
|
65
|
+
else
|
66
|
+
restore_git_repo
|
67
|
+
system "git checkout -q #{orig_branch} 2>#{devnull}"
|
68
|
+
system "git branch -qD #{build_branch} 2>#{devnull}"
|
69
|
+
end
|
66
70
|
end
|
67
71
|
|
68
72
|
private
|
@@ -60,7 +60,7 @@ module Samus
|
|
60
60
|
Samus::CONFIG_PATH => '.samus',
|
61
61
|
File.expand_path('~/.gitconfig') => '.gitconfig'
|
62
62
|
}.merge(extra_config)
|
63
|
-
@config_files.
|
63
|
+
@config_files.select! {|src, _dst| File.exist?(src) }
|
64
64
|
end
|
65
65
|
|
66
66
|
def copy_prep
|
@@ -83,12 +83,12 @@ module Samus
|
|
83
83
|
"COPY . /build",
|
84
84
|
config_copies.join("\n"),
|
85
85
|
"RUN rm -rf /build/.samusprep",
|
86
|
-
"RUN samus build ${VERSION}"
|
86
|
+
"RUN samus build --skip-restore ${VERSION}"
|
87
87
|
].join("\n"))
|
88
88
|
end
|
89
89
|
fname
|
90
90
|
end
|
91
|
-
|
91
|
+
|
92
92
|
def define
|
93
93
|
namespace(@namespace) do
|
94
94
|
desc '[VERSION=X.Y.Z] Builds a Samus release using Docker'
|
@@ -99,7 +99,7 @@ module Samus
|
|
99
99
|
|
100
100
|
begin
|
101
101
|
copy_prep
|
102
|
-
sh "docker build . -t #{img} -f #{build_or_get_dockerfile} --build-arg VERSION=#{ver}"
|
102
|
+
sh "docker build . --rm -t #{img} -f #{build_or_get_dockerfile} --build-arg VERSION=#{ver}"
|
103
103
|
ensure
|
104
104
|
FileUtils.rm_rf(PREP_DIR)
|
105
105
|
end
|
@@ -109,10 +109,20 @@ module Samus
|
|
109
109
|
task :publish do
|
110
110
|
img = release_image
|
111
111
|
mount = mount_samus_config ? "-v #{Samus::CONFIG_PATH}:/root/.samus:ro" : ''
|
112
|
-
sh "docker run #{mount} --rm #{
|
113
|
-
|
112
|
+
sh "docker run #{mount} --rm #{release_image}"
|
113
|
+
Rake::Task["#{@namespace}:clean"].execute if delete_image_after_publish
|
114
114
|
sh "git pull" if git_pull_after_publish
|
115
115
|
end
|
116
|
+
|
117
|
+
desc '[VERSION=X.Y.Z] Inspects a built release using Docker shell'
|
118
|
+
task :inspect do
|
119
|
+
sh "docker run -it --entrypoint sh #{release_image}"
|
120
|
+
end
|
121
|
+
|
122
|
+
desc '[VERSION=X.Y.Z] Removes a built release using Docker'
|
123
|
+
task :clean do
|
124
|
+
sh "docker rmi -f #{release_image}"
|
125
|
+
end
|
116
126
|
end
|
117
127
|
end
|
118
128
|
end
|
@@ -140,7 +150,7 @@ module Samus
|
|
140
150
|
def zipfile
|
141
151
|
@zipfile || "release-v#{release_version}.tar.gz"
|
142
152
|
end
|
143
|
-
|
153
|
+
|
144
154
|
def define
|
145
155
|
namespace(@namespace) do
|
146
156
|
desc '[VERSION=X.Y.Z] Builds a Samus release'
|
data/lib/samus/version.rb
CHANGED
data/samus.json
CHANGED
@@ -8,6 +8,13 @@
|
|
8
8
|
"replace": "VERSION = '$version'"
|
9
9
|
}
|
10
10
|
},
|
11
|
+
{
|
12
|
+
"action": "changelog-rotate",
|
13
|
+
"files": ["CHANGELOG.md"],
|
14
|
+
"arguments": {
|
15
|
+
"title_format": "$version - %B %d$day_nth, %Y"
|
16
|
+
}
|
17
|
+
},
|
11
18
|
{
|
12
19
|
"action": "chmod-files",
|
13
20
|
"files": [
|
@@ -19,7 +26,7 @@
|
|
19
26
|
},
|
20
27
|
{
|
21
28
|
"action": "git-commit",
|
22
|
-
"files": ["lib/*/version.rb"]
|
29
|
+
"files": ["CHANGELOG.md", "lib/*/version.rb"]
|
23
30
|
},
|
24
31
|
{
|
25
32
|
"action": "git-merge",
|
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: 3.0.
|
4
|
+
version: 3.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Loren Segal
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-04-
|
11
|
+
date: 2019-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description:
|
14
14
|
email: lsegal@soen.ca
|
@@ -32,6 +32,8 @@ files:
|
|
32
32
|
- commands/build/archive-zip.help.md
|
33
33
|
- commands/build/changelog-parse
|
34
34
|
- commands/build/changelog-parse.help.md
|
35
|
+
- commands/build/changelog-rotate
|
36
|
+
- commands/build/changelog-rotate.help.md
|
35
37
|
- commands/build/chmod-files
|
36
38
|
- commands/build/chmod-files.help.md
|
37
39
|
- commands/build/fs-copy
|
@@ -90,7 +92,7 @@ files:
|
|
90
92
|
- lib/samus/credentials.rb
|
91
93
|
- lib/samus/publish_action.rb
|
92
94
|
- lib/samus/publisher.rb
|
93
|
-
- lib/samus/rake/
|
95
|
+
- lib/samus/rake/tasks.rb
|
94
96
|
- lib/samus/version.rb
|
95
97
|
- samus.gemspec
|
96
98
|
- samus.json
|