fwtoolkit 0.2.1 → 0.3.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.
@@ -3,6 +3,28 @@ require 'rubygems'
3
3
  require 'xcodebuild'
4
4
  require 'cucumber/rake/task'
5
5
 
6
+ module XcodeBuild
7
+ def self.run(args = "", output_buffer = STDOUT)
8
+ command = "xcodebuild #{args} DSTROOT=/tmp/artifacts 2>&1"
9
+ #puts command
10
+ IO.popen(command) do |io|
11
+ begin
12
+ while line = io.readline
13
+ begin
14
+ output_buffer << line
15
+ rescue StandardError => e
16
+ puts "Error from output buffer: #{e.inspect}"
17
+ puts e.backtrace
18
+ end
19
+ end
20
+ rescue EOFError
21
+ end
22
+ end
23
+
24
+ $?.exitstatus
25
+ end
26
+ end
27
+
6
28
  module FWToolkit
7
29
  module Tasks
8
30
  class BuildTask < ::Rake::TaskLib
@@ -11,6 +33,8 @@ module FWToolkit
11
33
  attr_accessor :workspace
12
34
  attr_accessor :scheme
13
35
  attr_accessor :bundle_identifier
36
+ attr_accessor :certificate
37
+ attr_accessor :provisioning_profile
14
38
 
15
39
  def initialize(&block)
16
40
  yield self if block_given?
@@ -30,15 +54,32 @@ module FWToolkit
30
54
  t.formatter = XcodeBuild::Formatters::ProgressFormatter.new
31
55
  end
32
56
 
57
+ XcodeBuild::Tasks::BuildTask.new :release_iphoneos do |t|
58
+ t.invoke_from_within = '.'
59
+ t.configuration = "Release"
60
+ t.sdk = "iphoneos"
61
+ t.workspace = @workspace
62
+ t.scheme = @scheme
63
+ t.formatter = XcodeBuild::Formatters::ProgressFormatter.new
64
+ end
65
+
66
+ desc 'Build IPA file'
67
+ task :ipa do
68
+ command = "xcrun -sdk 'iphoneos' PackageApplication -v '/tmp/artifacts/Applications/#{scheme}.app' -o '/tmp/artifacts/Applications/#{scheme}.ipa' --sign '#{certificate}' --embed '#{provisioning_profile}'"
69
+ sh command
70
+ end
71
+
33
72
  desc 'Upload IPA to FWBuild'
34
- task :upload, :file do |t, args|
35
- file = args.file
73
+ task :upload do
36
74
  auth_token=ENV['FWBUILD_AUTH_TOKEN']
37
- file_name = File.basename(file)
75
+ file_name = "#{scheme}.ipa"
38
76
  key = File.join('uploads', file_name)
39
- sh("curl -X POST -F 'key=#{key}' -F 'acl=bucket-owner-full-control' -F 'file=@#{file}' https://fw.fwbuild.production.s3.amazonaws.com/ --progress-bar")
77
+ sh("curl -X POST -F 'key=#{key}' -F 'acl=bucket-owner-full-control' -F 'file=@/tmp/artifacts/Applications/#{scheme}.ipa' https://fw.fwbuild.production.s3.amazonaws.com/ --progress-bar")
40
78
  sh("curl 'http://fwbuild.futureworkshops.com/apps/builds.json?bundle_identifier=#{@bundle_identifier}&s3_upload_name=#{file_name}&auth_token=#{auth_token}'")
41
79
  end
80
+
81
+ desc 'Build and Upload IPA'
82
+ task :build_upload => ['release_iphoneos:archive', :ipa, :upload]
42
83
  end
43
84
 
44
85
  namespace :frank do
@@ -1,3 +1,3 @@
1
1
  module FWToolkit
2
- VERSION = "0.2.1"
2
+ VERSION = "0.3.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fwtoolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.1
4
+ version: 0.3.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-09-27 00:00:00.000000000 Z
12
+ date: 2012-10-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: cucumber