radius-toolbelt 0.0.7 → 0.0.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/lib/radius/toolbelt/release_github.rb +4 -7
- data/lib/radius/toolbelt/release_helpers.rb +33 -14
- data/lib/radius/toolbelt/release_repo.rb +2 -2
- data/lib/radius/toolbelt/slack_helpers.rb +28 -0
- data/lib/radius/toolbelt/tasks.rb +1 -14
- data/lib/radius/toolbelt/version.rb +1 -1
- data/lib/radius/toolbelt/xcode_helpers.rb +38 -5
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c692c22671f2daba30256e32933bf1ece3571bce
|
4
|
+
data.tar.gz: ad64f7506054da040eba5590d84359ad54e63592
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 726761243b91de736cf5fc668f43037e2cb87cd15b47dc44f84a1413726370f03783a3f777c07a0b1c3f3d7077f5e9256a69f02297da32613c677598954220fa
|
7
|
+
data.tar.gz: 046da303794d6ef8d24320e10c1f7cb8d645dcb4218e4fc236b9629f6c2a3df3633d781d12c81f4fc523d3ae59115e6fe3a655588c20c19b041ce58b3f3a6810
|
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.4.2
|
@@ -5,7 +5,6 @@ require 'launchy'
|
|
5
5
|
|
6
6
|
module Radius
|
7
7
|
module Toolbelt
|
8
|
-
|
9
8
|
class ReleaseGithub
|
10
9
|
|
11
10
|
attr_reader :repo, :tag_name, :release_name, :body, :filenames, :token
|
@@ -19,8 +18,6 @@ module Radius
|
|
19
18
|
end
|
20
19
|
|
21
20
|
def run
|
22
|
-
# pull token from ENV or hub config
|
23
|
-
|
24
21
|
puts "\nCreating draft release \"#{release_name}\" for repo \"#{repo}\"..."
|
25
22
|
# create the release
|
26
23
|
client = Octokit::Client.new(access_token: token)
|
@@ -39,11 +36,11 @@ module Radius
|
|
39
36
|
end
|
40
37
|
|
41
38
|
puts "\nRelease URL: #{release.html_url}"
|
42
|
-
|
39
|
+
edit_url = release.html_url.gsub("/tag/", "/edit/")
|
40
|
+
if block_given?
|
41
|
+
yield({edit_url: edit_url})
|
42
|
+
end
|
43
43
|
end
|
44
|
-
|
45
44
|
end
|
46
|
-
|
47
|
-
|
48
45
|
end
|
49
46
|
end
|
@@ -3,10 +3,27 @@ require 'fileutils'
|
|
3
3
|
module Radius
|
4
4
|
module Toolbelt
|
5
5
|
module ReleaseHelpers
|
6
|
+
def validate_clean_git!
|
7
|
+
fail "There are uncommitted changes in git" unless system("git diff-files --quiet")
|
8
|
+
end
|
9
|
+
|
10
|
+
def validate_version_for_repo!(repo)
|
11
|
+
ver = `cd #{repo} && agvtool what-version -terse`.chomp
|
12
|
+
puts "Validating matching version for #{repo}: #{ver}"
|
13
|
+
fail "Versions do not match (version file: #{ver} #{repo} version: #{sanitized_version}" unless (ver == sanitized_version)
|
14
|
+
end
|
15
|
+
|
16
|
+
def current_version
|
17
|
+
@current_version ||= File.read("VERSION").chomp
|
18
|
+
end
|
19
|
+
|
20
|
+
def sanitized_version
|
21
|
+
@sanitized_version ||= /([0-9\.]+)/.match(current_version)[0]
|
22
|
+
end
|
6
23
|
|
7
24
|
def tag_version(ver)
|
8
|
-
unless system("git tag v#{
|
9
|
-
fail "Error: the tag v#{
|
25
|
+
unless system("git tag v#{ver}")
|
26
|
+
fail "Error: the tag v#{ver} already exists on this repo."
|
10
27
|
end
|
11
28
|
end
|
12
29
|
|
@@ -15,7 +32,7 @@ module Radius
|
|
15
32
|
end
|
16
33
|
|
17
34
|
def github_token
|
18
|
-
@token ||= ENV["
|
35
|
+
@token ||= ENV["GITHUB_TOKEN"] || YAML.load(`cat ~/.config/hub`)["github.com"].first["oauth_token"]
|
19
36
|
end
|
20
37
|
|
21
38
|
def clean(dir)
|
@@ -23,7 +40,18 @@ module Radius
|
|
23
40
|
rm_rf Dir.glob("#{dir}/*.zip")
|
24
41
|
end
|
25
42
|
|
26
|
-
|
43
|
+
# Clone down the `repo`, copy all the `file` over then commit, tag and push
|
44
|
+
# it up to the origin.
|
45
|
+
#
|
46
|
+
# `files` is an array of files to copy into the root of the local repo.
|
47
|
+
def release_repo(repo, version, dir, files)
|
48
|
+
dir = File.join "build", File.basename(repo)
|
49
|
+
r = ReleaseRepo.new repo, version, dir, files
|
50
|
+
r.run
|
51
|
+
end
|
52
|
+
|
53
|
+
|
54
|
+
def release_github(repo, release_name, version, files, &block)
|
27
55
|
tag_name = "v#{version}"
|
28
56
|
body = <<EOF
|
29
57
|
Bug Fixes:
|
@@ -41,16 +69,7 @@ EOF
|
|
41
69
|
token = github_token
|
42
70
|
|
43
71
|
r = ReleaseGithub.new repo, token, tag_name, release_name, body, files
|
44
|
-
r.run
|
45
|
-
end
|
46
|
-
|
47
|
-
# Clone down the `repo`, copy all the `file` over then commit, tag and push
|
48
|
-
# it up to the origin.
|
49
|
-
#
|
50
|
-
# `files` is an array of files to copy into the root of the local repo.
|
51
|
-
def release_repo(repo, version, files, dir = "build/release-repo")
|
52
|
-
r = ReleaseRepo.new repo, version, dir, files
|
53
|
-
r.run
|
72
|
+
r.run(&block)
|
54
73
|
end
|
55
74
|
|
56
75
|
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
|
2
|
+
module Radius
|
3
|
+
module Toolbelt
|
4
|
+
module SlackHelpers
|
5
|
+
def slack(message, channel = nil)
|
6
|
+
uri = URI(ENV['SLACK_WEBHOOK_URL'])
|
7
|
+
|
8
|
+
parms = {
|
9
|
+
text: message,
|
10
|
+
username: "Travis CI",
|
11
|
+
icon_emoji: ":travis:"
|
12
|
+
}
|
13
|
+
|
14
|
+
parms[:channel] = channel if channel
|
15
|
+
|
16
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
17
|
+
http.use_ssl = true
|
18
|
+
|
19
|
+
request = Net::HTTP::Post.new(uri.request_uri)
|
20
|
+
request.body = parms.to_json
|
21
|
+
|
22
|
+
http.request(request)
|
23
|
+
end
|
24
|
+
module_function :slack
|
25
|
+
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# Main hook for loading various Rake tasks
|
2
2
|
require 'rake'
|
3
3
|
require_relative 'release_helpers'
|
4
|
+
require_relative 'slack_helpers'
|
4
5
|
require_relative 'xcode_helpers'
|
5
6
|
require_relative 'release_repo'
|
6
7
|
require_relative 'release_github'
|
@@ -27,17 +28,3 @@ namespace :git do
|
|
27
28
|
end
|
28
29
|
end
|
29
30
|
|
30
|
-
namespace :version do
|
31
|
-
desc "Bump the version to the next patch number"
|
32
|
-
task :bump do
|
33
|
-
sh "agvtool next-version -increment-minor-version"
|
34
|
-
end
|
35
|
-
|
36
|
-
desc "Set the version to a specific version number"
|
37
|
-
task :set, [:version] do |t, args|
|
38
|
-
v = args[:version]
|
39
|
-
fail "Error: no version specified" unless v
|
40
|
-
|
41
|
-
sh "xcrun agvtool new-version #{v}"
|
42
|
-
end
|
43
|
-
end
|
@@ -7,21 +7,54 @@ module Radius
|
|
7
7
|
def self.included klass
|
8
8
|
klass.class_eval do
|
9
9
|
include ReleaseHelpers
|
10
|
+
include SlackHelpers
|
10
11
|
end
|
11
12
|
end
|
12
13
|
|
13
14
|
def compress(src, dest)
|
14
|
-
|
15
|
+
sh "ditto -ck --rsrc --sequesterRsrc --keepParent #{src} #{dest}"
|
15
16
|
end
|
16
17
|
|
17
|
-
def
|
18
|
-
|
18
|
+
def xcodebuild(args, pretty=true)
|
19
|
+
output_dir = File.expand_path("./build")
|
20
|
+
cmd = "xcodebuild #{args} UNIVERSAL_OUTPUT_DIR=#{output_dir} CODE_SIGNING_REQUIRED=NO CODE_SIGN_IDENTITY='' #{ "| ./bin/xcpretty" if pretty }"
|
21
|
+
puts cmd
|
22
|
+
sh cmd
|
19
23
|
end
|
20
24
|
|
21
|
-
def
|
22
|
-
|
25
|
+
def schemes
|
26
|
+
schemes = `xcodebuild -workspace Monsters.xcworkspace -list`
|
27
|
+
schemes.each_line.map { |l| l.strip if l[/^ /]}.compact
|
23
28
|
end
|
24
29
|
|
30
|
+
def agvtool(repo = ".")
|
31
|
+
`cd #{repo} && xcrun agvtool what-version -terse`.strip
|
32
|
+
end
|
33
|
+
|
34
|
+
|
35
|
+
def appledoc(name, framework, repo)
|
36
|
+
sh <<-EOF
|
37
|
+
./bin/appledoc \
|
38
|
+
--output "build/#{framework}Docs" \
|
39
|
+
--create-html \
|
40
|
+
--no-create-docset \
|
41
|
+
--project-name "#{name}" \
|
42
|
+
--project-company "Radius Networks" \
|
43
|
+
--project-version #{agvtool repo} \
|
44
|
+
--company-id "com.radiusnetworks.#{framework}" \
|
45
|
+
--exit-threshold 2 \
|
46
|
+
"./build/#{framework}.framework/Headers"
|
47
|
+
EOF
|
48
|
+
end
|
49
|
+
|
50
|
+
#def xcode(action, params)
|
51
|
+
# system "xcodebuild #{params.map {|k,v| "-#{k} #{v}"}.join ' '} #{action}"
|
52
|
+
#end
|
53
|
+
|
54
|
+
#def agvtool_version
|
55
|
+
# @agvtool_version ||= `xcrun agvtool what-version -terse`.chomp
|
56
|
+
#end
|
57
|
+
|
25
58
|
end
|
26
59
|
end
|
27
60
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: radius-toolbelt
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Radius Networks
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date:
|
13
|
+
date: 2017-12-05 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rake
|
@@ -117,6 +117,7 @@ files:
|
|
117
117
|
- lib/radius/toolbelt/release_github.rb
|
118
118
|
- lib/radius/toolbelt/release_helpers.rb
|
119
119
|
- lib/radius/toolbelt/release_repo.rb
|
120
|
+
- lib/radius/toolbelt/slack_helpers.rb
|
120
121
|
- lib/radius/toolbelt/tasks.rb
|
121
122
|
- lib/radius/toolbelt/version.rb
|
122
123
|
- lib/radius/toolbelt/xcode_helpers.rb
|
@@ -145,7 +146,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
145
146
|
version: '0'
|
146
147
|
requirements: []
|
147
148
|
rubyforge_project:
|
148
|
-
rubygems_version: 2.
|
149
|
+
rubygems_version: 2.6.13
|
149
150
|
signing_key:
|
150
151
|
specification_version: 4
|
151
152
|
summary: Radius Networks Tools and Utilities
|
@@ -154,4 +155,3 @@ test_files:
|
|
154
155
|
- spec/spec_helper.rb
|
155
156
|
- spec/support/string.rb
|
156
157
|
- spec/support/subcommand.rb
|
157
|
-
has_rdoc:
|