betabuilder 0.7.3 → 0.7.4.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.
- 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
|