betabuilder 0.7.3 → 0.7.4.1
Sign up to get free protection for your applications and to get access to all the features.
- data/CHANGES.md +12 -0
- data/lib/beta_builder.rb +24 -8
- data/lib/beta_builder/archived_build.rb +4 -3
- data/lib/beta_builder/deployment_strategies/testflight.rb +14 -3
- metadata +11 -13
data/CHANGES.md
CHANGED
@@ -1,3 +1,15 @@
|
|
1
|
+
## 0.7.4.1
|
2
|
+
* Allow auto-archiving from other Rake namespaces (@victor)
|
3
|
+
* Fixed bug with Xcode archive sharing (@victor)
|
4
|
+
* Fall back on CFBundleVersion if CFBundleVersionShortString is not set (@subdigital)
|
5
|
+
* Added verbose and dry run options to the TestFlight deployment strategy (@subdigital)
|
6
|
+
* Defer dynamic release note generation until runtime (@subdigital)
|
7
|
+
* Allow architectures to be configured (@subdigital)
|
8
|
+
* Fix detection of build directories containing spaces
|
9
|
+
|
10
|
+
# 0.7.4
|
11
|
+
* YANKED
|
12
|
+
|
1
13
|
## 0.7.3
|
2
14
|
* Made the Xcode derived data directory more robust by grepping for the Validate line in the log.
|
3
15
|
|
data/lib/beta_builder.rb
CHANGED
@@ -18,31 +18,42 @@ module BetaBuilder
|
|
18
18
|
:workspace_path => nil,
|
19
19
|
:scheme => nil,
|
20
20
|
:app_name => nil,
|
21
|
+
:arch => nil,
|
21
22
|
:xcode4_archive_mode => false,
|
22
|
-
:skip_clean => false
|
23
|
+
:skip_clean => false,
|
24
|
+
:verbose => false,
|
25
|
+
:dry_run => false
|
23
26
|
)
|
24
27
|
@namespace = namespace
|
25
28
|
yield @configuration if block_given?
|
26
29
|
define
|
27
30
|
end
|
28
|
-
|
31
|
+
|
29
32
|
def xcodebuild(*args)
|
30
33
|
# we're using tee as we still want to see our build output on screen
|
31
34
|
system("#{@configuration.xcodebuild_path} #{args.join(" ")} | tee build.output")
|
32
35
|
end
|
33
|
-
|
36
|
+
|
34
37
|
class Configuration < OpenStruct
|
38
|
+
def release_notes_text
|
39
|
+
return release_notes.call if release_notes.is_a? Proc
|
40
|
+
release_notes
|
41
|
+
end
|
35
42
|
def build_arguments
|
43
|
+
args = ""
|
36
44
|
if workspace_path
|
37
45
|
raise "A scheme is required if building from a workspace" unless scheme
|
38
|
-
"-workspace '#{workspace_path}' -scheme '#{scheme}' -configuration '#{configuration}'"
|
46
|
+
args << "-workspace '#{workspace_path}' -scheme '#{scheme}' -configuration '#{configuration}'"
|
39
47
|
else
|
40
48
|
args = "-target '#{target}' -configuration '#{configuration}' -sdk iphoneos"
|
41
49
|
args << " -project #{project_file_path}" if project_file_path
|
42
|
-
args
|
43
50
|
end
|
51
|
+
|
52
|
+
args << " -arch \"#{arch}\"" unless arch.nil?
|
53
|
+
|
54
|
+
args
|
44
55
|
end
|
45
|
-
|
56
|
+
|
46
57
|
def archive_name
|
47
58
|
app_name || target
|
48
59
|
end
|
@@ -76,7 +87,12 @@ module BetaBuilder
|
|
76
87
|
output = File.read("build.output")
|
77
88
|
|
78
89
|
# yes, this is truly horrible, but unless somebody else can find a better way...
|
79
|
-
|
90
|
+
found = output.split("\n").grep(/^Validate(.*)\/Xcode\/DerivedData\/(.*)-(.*)/).first
|
91
|
+
if found && found =~ /Validate \"(.*)\"/
|
92
|
+
reference = $1
|
93
|
+
else
|
94
|
+
raise "Cannot parse build_dir from build output."
|
95
|
+
end
|
80
96
|
derived_data_directory = reference.split("/Build/Products/").first
|
81
97
|
"#{derived_data_directory}/Build/Products/"
|
82
98
|
end
|
@@ -121,7 +137,7 @@ module BetaBuilder
|
|
121
137
|
desc "Package the beta release as an IPA file"
|
122
138
|
task :package => :build do
|
123
139
|
if @configuration.auto_archive
|
124
|
-
Rake::Task[
|
140
|
+
Rake::Task["#{@namespace}:archive"].invoke
|
125
141
|
end
|
126
142
|
|
127
143
|
FileUtils.rm_rf('pkg') && FileUtils.mkdir_p('pkg')
|
@@ -70,15 +70,16 @@ module BetaBuilder
|
|
70
70
|
private
|
71
71
|
|
72
72
|
def write_plist_to(path)
|
73
|
+
version = metadata["CFBundleShortVersionString"] || metadata["CFBundleVersion"]
|
73
74
|
plist = {
|
74
75
|
"ApplicationProperties" => {
|
75
|
-
"ApplicationPath" => File.join("Applications",
|
76
|
+
"ApplicationPath" => File.join("Applications", @configuration.app_file_name),
|
76
77
|
"CFBundleIdentifier" => metadata["CFBundleIdentifier"],
|
77
|
-
"CFBundleShortVersionString" =>
|
78
|
+
"CFBundleShortVersionString" => version,
|
78
79
|
"IconPaths" => metadata["CFBundleIconFiles"].map { |file| File.join("Applications", @configuration.app_file_name, file) }
|
79
80
|
},
|
80
81
|
"ArchiveVersion" => 1.0,
|
81
|
-
"Comment" => @configuration.
|
82
|
+
"Comment" => @configuration.release_notes_text,
|
82
83
|
"CreationDate" => Time.now,
|
83
84
|
"Name" => @configuration.archive_name,
|
84
85
|
"SchemeName" => @configuration.scheme
|
@@ -11,21 +11,31 @@ module BetaBuilder
|
|
11
11
|
def extended_configuration_for_strategy
|
12
12
|
proc do
|
13
13
|
def generate_release_notes(&block)
|
14
|
-
self.release_notes =
|
14
|
+
self.release_notes = block if block
|
15
15
|
end
|
16
16
|
end
|
17
17
|
end
|
18
18
|
|
19
19
|
def deploy
|
20
|
+
release_notes = get_notes
|
20
21
|
payload = {
|
21
22
|
:api_token => @configuration.api_token,
|
22
23
|
:team_token => @configuration.team_token,
|
23
24
|
:file => File.new(@configuration.ipa_path, 'rb'),
|
24
|
-
:notes =>
|
25
|
+
:notes => release_notes,
|
25
26
|
:distribution_lists => (@configuration.distribution_lists || []).join(","),
|
26
27
|
:notify => @configuration.notify || false
|
27
28
|
}
|
28
29
|
puts "Uploading build to TestFlight..."
|
30
|
+
if @configuration.verbose
|
31
|
+
puts "ipa path: #{@configuration.ipa_path}"
|
32
|
+
puts "release notes: #{release_notes}"
|
33
|
+
end
|
34
|
+
|
35
|
+
if @configuration.dry_run
|
36
|
+
puts '** Dry Run - No action here! **'
|
37
|
+
return
|
38
|
+
end
|
29
39
|
|
30
40
|
begin
|
31
41
|
response = RestClient.post(ENDPOINT, payload, :accept => :json)
|
@@ -43,7 +53,8 @@ module BetaBuilder
|
|
43
53
|
private
|
44
54
|
|
45
55
|
def get_notes
|
46
|
-
@configuration.
|
56
|
+
notes = @configuration.release_notes_text
|
57
|
+
notes || get_notes_using_editor || get_notes_using_prompt
|
47
58
|
end
|
48
59
|
|
49
60
|
def get_notes_using_editor
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: betabuilder
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.4.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,12 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2011-
|
13
|
-
default_executable:
|
12
|
+
date: 2011-11-16 00:00:00.000000000Z
|
14
13
|
dependencies:
|
15
14
|
- !ruby/object:Gem::Dependency
|
16
15
|
name: CFPropertyList
|
17
|
-
requirement: &
|
16
|
+
requirement: &2153611800 !ruby/object:Gem::Requirement
|
18
17
|
none: false
|
19
18
|
requirements:
|
20
19
|
- - ~>
|
@@ -22,10 +21,10 @@ dependencies:
|
|
22
21
|
version: 2.0.0
|
23
22
|
type: :runtime
|
24
23
|
prerelease: false
|
25
|
-
version_requirements: *
|
24
|
+
version_requirements: *2153611800
|
26
25
|
- !ruby/object:Gem::Dependency
|
27
26
|
name: uuid
|
28
|
-
requirement: &
|
27
|
+
requirement: &2153611260 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
29
|
requirements:
|
31
30
|
- - ~>
|
@@ -33,10 +32,10 @@ dependencies:
|
|
33
32
|
version: 2.3.1
|
34
33
|
type: :runtime
|
35
34
|
prerelease: false
|
36
|
-
version_requirements: *
|
35
|
+
version_requirements: *2153611260
|
37
36
|
- !ruby/object:Gem::Dependency
|
38
37
|
name: rest-client
|
39
|
-
requirement: &
|
38
|
+
requirement: &2153610720 !ruby/object:Gem::Requirement
|
40
39
|
none: false
|
41
40
|
requirements:
|
42
41
|
- - ~>
|
@@ -44,10 +43,10 @@ dependencies:
|
|
44
43
|
version: 1.6.1
|
45
44
|
type: :runtime
|
46
45
|
prerelease: false
|
47
|
-
version_requirements: *
|
46
|
+
version_requirements: *2153610720
|
48
47
|
- !ruby/object:Gem::Dependency
|
49
48
|
name: json
|
50
|
-
requirement: &
|
49
|
+
requirement: &2153610200 !ruby/object:Gem::Requirement
|
51
50
|
none: false
|
52
51
|
requirements:
|
53
52
|
- - ~>
|
@@ -55,7 +54,7 @@ dependencies:
|
|
55
54
|
version: 1.4.6
|
56
55
|
type: :runtime
|
57
56
|
prerelease: false
|
58
|
-
version_requirements: *
|
57
|
+
version_requirements: *2153610200
|
59
58
|
description:
|
60
59
|
email: luke@lukeredpath.co.uk
|
61
60
|
executables: []
|
@@ -74,7 +73,6 @@ files:
|
|
74
73
|
- lib/beta_builder/deployment_strategies.rb
|
75
74
|
- lib/beta_builder.rb
|
76
75
|
- lib/betabuilder.rb
|
77
|
-
has_rdoc: true
|
78
76
|
homepage: http://github.com/lukeredpath/betabuilder
|
79
77
|
licenses: []
|
80
78
|
post_install_message:
|
@@ -97,7 +95,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
97
95
|
version: '0'
|
98
96
|
requirements: []
|
99
97
|
rubyforge_project:
|
100
|
-
rubygems_version: 1.
|
98
|
+
rubygems_version: 1.8.11
|
101
99
|
signing_key:
|
102
100
|
specification_version: 3
|
103
101
|
summary: A set of Rake tasks and utilities for managing iOS ad-hoc builds
|