ios_build_kit 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1f7630c49a89ef8634980beefd59e04da253a023
4
- data.tar.gz: e243663b13a963ed6158ccbb67211b68c48fd6a2
3
+ metadata.gz: b5df918eb68f714f87074d768e0a12774090f67e
4
+ data.tar.gz: 4a0436a580aa7fe4b5b22c543a2fe2bb4512342b
5
5
  SHA512:
6
- metadata.gz: b2e2ad91a9b577b1d023d1862a79f3f3c2795d8cfc98f76102d43f3acfc3149b6ef046d22c609b1af5531dedaea192d842619ec5a8d8f5e07678ce4d97822262
7
- data.tar.gz: 77fc3e06608825c0c71503aec632c520749ba2f2b0b844f3ad0d48cadcd6408818577e13f7d69e7d2834f24d1d2c2b0dc25001cdf16f1415281cad03b1f30135
6
+ metadata.gz: 44e6fab90482c1d9686622880c6bc10adb5f94888883c1aa52f4255e4cab9c68d42d0c93e5fe3e7354eff84127fde15a6ce21c63737f27f0f00d77934533496e
7
+ data.tar.gz: 9d31418d802f4397eb2c6c3e0d6a1b3e7614ba0482882f1f16f2626d2f4de38791b964b2748cdd91bb2308bc8a13ff3dd83b496ec37482f1dacf66be56867c8f
data/README.md CHANGED
@@ -11,7 +11,7 @@ Bundled build tasks include:
11
11
  - Run unit tests
12
12
  - Generate an .ipa artefact
13
13
 
14
- BuildKit is distributed as a [Ruby gem](https://rubygems.org/gems/ios_build_kit) with an executable that can be launched either in a continous integration server environment or on your development machine. The process is configured with a simple YAML file that describes the tasks to run and your project-specific options. This means that you can tailor the build process to meet your requirements.
14
+ BuildKit is distributed as a [Ruby gem](https://rubygems.org/gems/ios_build_kit) with an executable that can be launched either in a continuous integration server environment or on your development machine. The process is configured with a simple YAML file that describes the tasks to run and your project-specific options. This means that you can tailor the build process to meet your requirements.
15
15
 
16
16
  *Note: This repository was previosly known as Xcode-Project. It previously contained a project generator as well as a less developed build toolkit. The generator was removed due to the rapid advances in iOS technology. If you would like to continue using the previous version it's available [here](https://github.com/adamwaite/iOS-Build-Kit/releases).*
17
17
 
@@ -194,8 +194,6 @@ Runs unit tests:
194
194
 
195
195
  ![run_tests](resources/run_tests.png)
196
196
 
197
- *Note regarding Kiwi: As of present you need to use 'edge Kiwi' due to [Kiwi issue 390](https://github.com/allending/Kiwi/issues/390). To used the latest Kiwi put `pod 'Kiwi/XCTest', git: 'https://github.com/allending/Kiwi'` in your Podfile.*
198
-
199
197
  Options:
200
198
  - `log`: logs the output to the console
201
199
 
@@ -236,14 +234,12 @@ An example workspace has been included in the repo if you want to try it out. Yo
236
234
 
237
235
  Lots of plans for BuildKit:
238
236
 
239
- - Cover with RSpec specs (in progress).
240
- - Create a build task module to enable artefact distribution by wrapping [Shenzhen](https://github.com/nomad/shenzhen) (next up).
237
+ - Create a build task module to enable artefact distribution by wrapping [Shenzhen](https://github.com/nomad/shenzhen) (in progress).
238
+ - Add a generator for config files (next up).
241
239
  - Add a means to allow custom task modules to be added to the process.
242
240
  - Add a task to email build reports.
243
241
  - Make `decorate_icon` compatible with Xcode 5 asset catalogues.
244
- - Add a generator for config files.
245
242
  - Add some colour to the output.
246
- - Beautify the reports.
247
243
 
248
244
  ## Contributing
249
245
 
@@ -43,7 +43,7 @@ module BuildKit
43
43
  if @runner.has_completed_task? :increment_version
44
44
  name << @runner.store[:new_version_number][:full]
45
45
  else
46
- name << BuildKit::Utilities::VersionNumber.plist_version_number[:full]
46
+ name << BuildKit::Utilities::VersionNumber.plist_version_number(@config.info_plist)[:full]
47
47
  end
48
48
  end
49
49
  name << "-"
@@ -1,7 +1,7 @@
1
1
  module BuildKit
2
2
 
3
3
  require 'rmagick'
4
-
4
+
5
5
  module Tasks
6
6
 
7
7
  def self.decorate_icon runner, task_opts
@@ -42,7 +42,7 @@ module BuildKit
42
42
 
43
43
  def icon_files_to_decorate
44
44
  to_decorate = []
45
- Dir.glob("#{runner.config[:icon_dir]}*.png").each do |filename|
45
+ Dir.glob("#{@config.icon_dir}/*.png").each do |filename|
46
46
  next if filename.include? "Decorated"
47
47
  to_decorate << filename
48
48
  end
@@ -58,7 +58,6 @@ module BuildKit
58
58
  def create_decorated_version_of icon_path
59
59
  original = Magick::ImageList.new icon_path
60
60
  decorated_icon = original.copy
61
-
62
61
  icon_dimension = original.rows
63
62
 
64
63
  background = Magick::Draw.new
@@ -66,7 +65,7 @@ module BuildKit
66
65
  background.rectangle(0, icon_dimension - (icon_dimension * 0.225), icon_dimension, icon_dimension)
67
66
  background.draw decorated_icon
68
67
 
69
- annotation_params = {
68
+ annotation_params = {
70
69
  gravity: Magick::SouthGravity,
71
70
  pointsize: icon_dimension * 0.11 ,
72
71
  stroke: 'transparent',
@@ -96,7 +95,7 @@ module BuildKit
96
95
 
97
96
  def complete_task!
98
97
  message = "Icons have been decorated with #{version_number_to_draw}. They are here: " + @decorated_icons.join(",")
99
- @runner.task_completed! :decorate_icons, message, message
98
+ @runner.task_completed! :decorate_icon, message, message
100
99
  end
101
100
 
102
101
  end
@@ -26,6 +26,7 @@ module BuildKit
26
26
 
27
27
  def assert_requirements
28
28
  BuildKit::Utilities::Assertions.assert_required_config [:app_name, :workspace, :sdk, :build_configuration, :build_dir, :scheme], @runner
29
+ BuildKit::Utilities::Assertions.assert_files_exist [@config.absolute_build_dir, @config.workspace]
29
30
  end
30
31
 
31
32
  def create_build_directory
@@ -1,3 +1,3 @@
1
1
  module BuildKit
2
- VERSION = '0.0.4'
2
+ VERSION = '0.0.5'
3
3
  end
@@ -1,26 +1,29 @@
1
1
  require_relative 'spec_helper'
2
2
 
3
- describe "decorate_icon task" do
3
+ describe "create_ipa task" do
4
4
 
5
5
  describe "invalid config handling" do
6
-
7
6
  context "missing previous tasks" do
8
-
9
7
  context "xcode_build" do
10
- pending "raise exception"
8
+ let(:runner) { mock_runner vc.enable_create_ipa! }
9
+ specify { expect { runner.run_tasks! }.to raise_error }
11
10
  end
12
-
13
11
  end
14
-
15
12
  end
16
13
 
17
14
  describe "ipa creation" do
18
- pending "the build dir has a new ipa file"
15
+ let!(:existing_ipa_exists) { (Dir["#{runner.config.build_dir}/*"].reject{ |f| !f.include? ".ipa" }.count > 0) }
16
+ let(:runner) { mock_runner vc.enable_xcode_build!.enable_create_ipa! }
17
+ before { runner.run_tasks! }
18
+ specify { existing_ipa_exists.should be_false }
19
+ specify { Dir["#{runner.config.build_dir}/*"].reject{ |f| !f.include? ".ipa" }.count.should == 1 }
19
20
  end
20
21
 
21
22
  describe "task completion" do
22
- pending "runner.tasks[:completed].include?(:create_ipa).should be_true"
23
- pending "runner.outputs[:create_ipa].should_not be_nil"
23
+ let(:runner) { mock_runner vc.enable_xcode_build!.enable_create_ipa! }
24
+ before { runner.run_tasks! }
25
+ specify { runner.tasks[:completed].include?(:create_ipa).should be_true }
26
+ specify { runner.outputs[:create_ipa].should_not be_nil }
24
27
  end
25
28
 
26
29
  end
@@ -1,34 +1,37 @@
1
1
  require_relative 'spec_helper'
2
+ require 'fileutils'
2
3
 
3
4
  describe "decorate_icon task" do
4
5
 
5
6
  describe "invalid config handling" do
6
-
7
7
  context "missing configuration" do
8
-
9
8
  context "icon_dir" do
10
- pending "raise exception"
9
+ let(:runner) { mock_runner vc.enable_decorate_icon!.remove_config! :icon_dir }
10
+ specify { expect { runner.run_tasks! }.to raise_error }
11
11
  end
12
-
13
12
  end
14
13
 
15
14
  context "non-existent files" do
16
-
17
15
  context "icon_dir" do
18
- pending "raise exception"
16
+ let(:runner) { mock_runner vc.enable_decorate_icon!.invalid_location! :icon_dir }
17
+ specify { expect { runner.run_tasks! }.to raise_error }
19
18
  end
20
-
21
19
  end
22
-
23
20
  end
24
21
 
25
- describe "new icons" do
26
- pending "the icon dir has as many new files of type png as there was beforehand"
22
+ describe "new icons" do
23
+ let!(:existing_icon_file_count) { Dir["#{temp_icon_dir_path}/*.png"].count }
24
+ let(:runner) { mock_runner vc.enable_decorate_icon!.modify_config!(:icon_dir, temp_icon_dir_path) }
25
+ before { runner.run_tasks! }
26
+ specify { Dir["#{temp_icon_dir_path}/*.png"].count.should == existing_icon_file_count * 2 }
27
+ specify { Dir["#{temp_icon_dir_path}/*.png"].reject{ |f| !f.include? "Decorated" }.count.should == existing_icon_file_count }
27
28
  end
28
29
 
29
30
  describe "task completion" do
30
- pending "runner.tasks[:completed].include?(:decorate_icon).should be_true"
31
- pending "runner.outputs[:decorate_icon].should_not be_nil"
31
+ let(:runner) { mock_runner vc.enable_decorate_icon! }
32
+ before { runner.run_tasks! }
33
+ specify { runner.tasks[:completed].include?(:decorate_icon).should be_true }
34
+ specify { runner.outputs[:decorate_icon].should_not be_nil }
32
35
  end
33
36
 
34
37
  end
@@ -3,46 +3,61 @@ require_relative 'spec_helper'
3
3
  describe "xcode_build task" do
4
4
 
5
5
  describe "invalid config handling" do
6
-
7
6
  context "missing configuration" do
8
-
9
7
  context "info_plist" do
10
- pending "raise exception"
8
+ let(:runner) { mock_runner vc.enable_increment_version!.remove_config! :info_plist }
9
+ specify { expect { runner.run_tasks! }.to raise_error }
11
10
  end
12
-
13
11
  end
14
-
15
12
  context "non-existent files" do
16
-
17
13
  context "info_plist" do
18
- pending "raise exception"
14
+ let(:runner) { mock_runner vc.enable_increment_version!.missing_file! :info_plist }
15
+ specify { expect { runner.run_tasks! }.to raise_error }
19
16
  end
20
-
21
17
  end
22
-
23
18
  end
24
19
 
25
- describe "plist reading" do
26
- pending "it reads major, minor, build version"
27
- pending "it reads revision version"
20
+ describe "plist reading" do
21
+ let(:runner) { mock_runner vc.enable_increment_version! }
22
+ specify { BuildKit::Utilities::VersionNumber.plist_version_number(runner.config.info_plist).should be_kind_of Hash }
23
+ specify { BuildKit::Utilities::VersionNumber.plist_version_number(runner.config.info_plist)[:major].should be_kind_of Integer }
24
+ specify { BuildKit::Utilities::VersionNumber.plist_version_number(runner.config.info_plist)[:minor].should be_kind_of Integer }
25
+ specify { BuildKit::Utilities::VersionNumber.plist_version_number(runner.config.info_plist)[:revision].should be_kind_of Integer }
26
+ specify { BuildKit::Utilities::VersionNumber.plist_version_number(runner.config.info_plist)[:build].should be_kind_of Integer }
28
27
  end
29
28
 
30
29
  describe "existing version" do
31
- pending "it stores the existing version"
30
+ let(:runner) { mock_runner vc.enable_increment_version! }
31
+ let!(:existing_version) { BuildKit::Utilities::VersionNumber.plist_version_number(runner.config.info_plist) }
32
+ before { runner.run_tasks! }
33
+ specify { runner.store[:existing_version_number].should == existing_version }
32
34
  end
33
35
 
34
36
  describe "new version" do
35
- pending "it stores the existing version"
37
+ let(:runner) { mock_runner vc.enable_increment_version! }
38
+ before { runner.run_tasks! }
39
+ specify { runner.store[:new_version_number].should_not be_nil }
40
+ end
41
+
42
+ describe "it increments the build number" do
43
+ let(:runner) { mock_runner vc.enable_increment_version! }
44
+ let!(:existing_build_number) { BuildKit::Utilities::VersionNumber.plist_version_number(runner.config.info_plist)[:build] }
45
+ before { runner.run_tasks! }
46
+ specify { runner.store[:new_version_number][:build].should == existing_build_number + 1 }
36
47
  end
37
48
 
38
49
  describe "writing the new version to the plist" do
39
- pending "it increments the existing version"
40
- pending "it stores the new version"
50
+ let(:runner) { mock_runner vc.enable_increment_version! }
51
+ let!(:existing_build_number) { BuildKit::Utilities::VersionNumber.plist_version_number(runner.config.info_plist)[:build] }
52
+ before { runner.run_tasks! }
53
+ specify { BuildKit::Utilities::VersionNumber.plist_version_number(runner.config.info_plist)[:build].should == existing_build_number + 1 }
41
54
  end
42
55
 
43
56
  describe "task completion" do
44
- pending "runner.tasks[:completed].include?(:increment_version).should be_true"
45
- pending "runner.outputs[:increment_version].should_not be_nil"
57
+ let(:runner) { mock_runner vc.enable_increment_version! }
58
+ before { runner.run_tasks! }
59
+ specify { runner.tasks[:completed].include?(:increment_version).should be_true }
60
+ specify { runner.outputs[:increment_version].should_not be_nil }
46
61
  end
47
62
 
48
63
  end
@@ -2,12 +2,36 @@ require_relative 'spec_helper'
2
2
 
3
3
  describe "report generation" do
4
4
 
5
- context "user switches reports on" do
6
- pending "reports appear"
5
+ let(:run_task) { :increment_version.to_s }
6
+ let(:report_path) { vc[:preferences][:reports] }
7
+ let(:report_count) { Dir["#{report_path}/*.json"].count }
8
+
9
+ context "reports on" do
10
+ let(:runner) { mock_runner vc.enable_increment_version! }
11
+ before { runner.run_tasks! }
12
+ specify { report_count.should == 1 }
7
13
  end
8
14
 
9
- context "user swicthes reports off" do
10
- pending "reports don't appear"
15
+ context "reports off" do
16
+ let(:runner) { mock_runner vc.enable_increment_version!.modify_preference! :reports, nil }
17
+ before { runner.run_tasks! }
18
+ specify { report_count.should == 0 }
11
19
  end
12
20
 
21
+ context "JSON" do
22
+ let(:runner) { mock_runner vc.enable_increment_version! }
23
+ let(:report) { Dir["#{report_path}/*.json"].first }
24
+ let(:report_json_string) { File.read(Dir["#{report_path}/*.json"].first) }
25
+ let(:report_content_hash) { JSON.parse(report_json_string) }
26
+ before { runner.run_tasks! }
27
+ specify { report_json_string.should be_kind_of String }
28
+ specify { report_content_hash.should be_kind_of Hash }
29
+ specify { report_content_hash[:time.to_s].should_not be_nil }
30
+ specify { report_content_hash[:config.to_s].should_not be_nil }
31
+ specify { report_content_hash[:preferences.to_s].should_not be_nil }
32
+ specify { report_content_hash[:runtime_store.to_s].should_not be_nil }
33
+ specify { report_content_hash[:outputs.to_s].should_not be_nil }
34
+ specify { report_content_hash[:outputs.to_s][run_task].should_not be_nil }
35
+ end
36
+
13
37
  end
@@ -3,40 +3,39 @@ require_relative 'spec_helper'
3
3
  describe "run_tests task" do
4
4
 
5
5
  describe "invalid config handling" do
6
-
7
6
  context "missing configuration" do
8
-
9
7
  context "workspace" do
10
- pending "raise exception"
8
+ let(:runner) { mock_runner vc.enable_run_tests!.remove_config! :workspace }
9
+ specify { expect { runner.run_tasks! }.to raise_error }
11
10
  end
12
-
13
11
  context "scheme" do
14
- pending "raise exception"
12
+ let(:runner) { mock_runner vc.enable_run_tests!.remove_config! :scheme }
13
+ specify { expect { runner.run_tasks! }.to raise_error }
15
14
  end
16
-
17
15
  end
18
-
19
16
  context "non-existent files" do
20
-
21
17
  context "workspace" do
22
- pending "raise exception"
18
+ let(:runner) { mock_runner vc.enable_run_tests!.invalid_location! :workspace }
19
+ specify { expect { runner.run_tasks! }.to raise_error }
23
20
  end
24
-
25
21
  end
26
-
27
22
  end
28
23
 
29
24
  describe "passing tests" do
30
- pending "runner.store[:tests_passed].should be_true"
25
+ let(:runner) { mock_runner vc.enable_run_tests! }
26
+ before { runner.run_tasks! }
27
+ specify { runner.store[:tests_passed].should be_true }
31
28
  end
32
29
 
33
30
  describe "failing tests" do
34
- pending "runner.store[:tests_passed].should_not be_true <- need to create a failing test target. compare YES to NO or something"
31
+ pending "Create a failing test target, compare YES to NO or something"
35
32
  end
36
33
 
37
34
  describe "task completion" do
38
- pending "runner.tasks[:completed].include?(:run_tests).should be_true"
39
- pending "runner.outputs[:run_tests].should_not be_nil"
35
+ let(:runner) { mock_runner vc.enable_run_tests! }
36
+ before { runner.run_tasks! }
37
+ specify { runner.tasks[:completed].include?(:run_tests).should be_true }
38
+ specify { runner.outputs[:run_tests].should_not be_nil }
40
39
  end
41
40
 
42
41
  end
@@ -14,7 +14,13 @@ RSpec.configure do |config|
14
14
  config.formatter = :documentation
15
15
  config.fail_fast = true
16
16
 
17
- config.before(:each) { create_spec_temp_dir }
18
- config.after(:each) { destroy_spec_temp_dir }
17
+ config.before(:each) do
18
+ create_spec_temp_dir
19
+ clone_and_modify_icons
20
+ end
21
+
22
+ config.after(:each) do
23
+ destroy_spec_temp_dir
24
+ end
19
25
 
20
26
  end
@@ -2,24 +2,54 @@ require 'yaml'
2
2
 
3
3
  class Hash
4
4
 
5
- def enable_increment_version
5
+ def enable_increment_version!
6
6
  self[:tasks][:increment_version][:run] = true
7
+ self
7
8
  end
8
9
 
9
- def enable_decorate_icon
10
+ def enable_decorate_icon!
10
11
  self[:tasks][:decorate_icon][:run] = true
12
+ self
11
13
  end
12
14
 
13
- def enable_xcode_build
15
+ def enable_xcode_build!
14
16
  self[:tasks][:xcode_build][:run] = true
17
+ self
15
18
  end
16
19
 
17
- def enable_run_tests
20
+ def enable_run_tests!
18
21
  self[:tasks][:run_tests][:run] = true
22
+ self
19
23
  end
20
24
 
21
- def enable_create_ipa
25
+ def enable_create_ipa!
22
26
  self[:tasks][:create_ipa][:run] = true
27
+ self
28
+ end
29
+
30
+ def modify_config! key, value
31
+ self[:configuration][key] = value
32
+ self
33
+ end
34
+
35
+ def remove_config! key
36
+ self[:configuration][key] = nil
37
+ self
38
+ end
39
+
40
+ def missing_file! key
41
+ self[:configuration][key] = "/path/to/nowhere/missing.file"
42
+ self
43
+ end
44
+
45
+ def invalid_location! key
46
+ self[:configuration][key] = "/path/to/nowhere/"
47
+ self
48
+ end
49
+
50
+ def modify_preference! key, value
51
+ self[:preferences][key] = value
52
+ self
23
53
  end
24
54
 
25
55
  end
@@ -68,19 +98,19 @@ def valid_config_file_data
68
98
 
69
99
  configuration: {
70
100
  app_name: "BuildKit",
71
- workspace: "/Users/adamwaite/iOS/Lib/BuildKit/iOS-Build-Kit/example/BuildKit.xcworkspace",
72
- info_plist: "/Users/adamwaite/iOS/Lib/BuildKit/iOS-Build-Kit/example/BuildKit/BuildKit-Info.plist",
101
+ workspace: "/Users/adamwaite/iOS/Lib/iOS-Build-Kit/example/BuildKit.xcworkspace",
102
+ info_plist: "/Users/adamwaite/iOS/Lib/iOS-Build-Kit/example/BuildKit/BuildKit-Info.plist",
73
103
  build_configuration: "Release",
74
104
  scheme: "BuildKit",
75
105
  sdk: "iphoneos",
76
- provisioning_profile: "/Users/adamwaite/iOS/Lib/BuildKit/iOS-Build-Kit/example/Provisioning/BuildKitTest.mobileprovision",
106
+ provisioning_profile: "/Users/adamwaite/iOS/Lib/iOS-Build-Kit/example/Provisioning/BuildKitTest.mobileprovision",
77
107
  code_sign: "iPhone Distribution: Alpaca Labs",
78
- icon_dir: "/Users/adamwaite/iOS/Lib/BuildKit/iOS-Build-Kit/example/BuildKit/Icon/",
79
- build_dir: "/Users/adamwaite/iOS/Lib/BuildKit/iOS-Build-Kit/spec/temp/",
108
+ icon_dir: "/Users/adamwaite/iOS/Lib/iOS-Build-Kit/example/BuildKit/Icon/",
109
+ build_dir: "/Users/adamwaite/iOS/Lib/iOS-Build-Kit/spec/temp/",
80
110
  },
81
111
 
82
112
  preferences: {
83
- reports: "/Users/adamwaite/iOS/Lib/BuildKit/iOS-Build-Kit/spec/temp/",
113
+ reports: "/Users/adamwaite/iOS/Lib/iOS-Build-Kit/spec/temp/",
84
114
  }
85
115
 
86
116
  }
@@ -1,9 +1,23 @@
1
1
  require 'fileutils'
2
2
 
3
3
  def create_spec_temp_dir
4
- FileUtils.mkdir_p "spec/temp"
4
+ FileUtils.mkdir_p temp_dir_path
5
5
  end
6
6
 
7
7
  def destroy_spec_temp_dir
8
- FileUtils.rm_rf "spec/temp"
8
+ FileUtils.rm_rf temp_dir_path
9
+ end
10
+
11
+ def temp_dir_path
12
+ "spec/temp"
13
+ end
14
+
15
+ def clone_and_modify_icons
16
+ icons_dir = vc[:configuration][:icon_dir]
17
+ FileUtils.mkdir_p temp_icon_dir_path
18
+ FileUtils.cp_r(Dir["#{icons_dir}/*.png"].reject { |f| f.include? "Decorated" }, temp_icon_dir_path)
19
+ end
20
+
21
+ def temp_icon_dir_path
22
+ "#{temp_dir_path}/icons/"
9
23
  end
@@ -5,54 +5,56 @@ describe "xcode_build task" do
5
5
  describe "invalid config handling" do
6
6
 
7
7
  context "missing configuration" do
8
-
9
8
  context "app_name" do
10
- pending "raise exception"
9
+ let(:runner) { mock_runner vc.enable_xcode_build!.remove_config! :app_name }
10
+ specify { expect { runner.run_tasks! }.to raise_error }
11
11
  end
12
-
13
12
  context "workspace" do
14
- pending "raise exception"
13
+ let(:runner) { mock_runner vc.enable_xcode_build!.remove_config! :workspace }
14
+ specify { expect { runner.run_tasks! }.to raise_error }
15
15
  end
16
-
17
16
  context "build_configuration" do
18
- pending "raise exception"
17
+ let(:runner) { mock_runner vc.enable_xcode_build!.remove_config! :build_configuration }
18
+ specify { expect { runner.run_tasks! }.to raise_error }
19
19
  end
20
-
21
20
  context "build_dir" do
22
- pending "raise exception"
21
+ let(:runner) { mock_runner vc.enable_xcode_build!.remove_config! :build_dir }
22
+ specify { expect { runner.run_tasks! }.to raise_error }
23
23
  end
24
-
25
24
  context "scheme" do
26
- pending "raise exception"
25
+ let(:runner) { mock_runner vc.enable_xcode_build!.remove_config! :scheme }
26
+ specify { expect { runner.run_tasks! }.to raise_error }
27
27
  end
28
-
29
28
  end
30
29
 
31
30
  context "non-existent files" do
32
-
33
31
  context "workspace" do
34
- pending "raise exception"
32
+ let(:runner) { mock_runner vc.enable_xcode_build!.missing_file!(:workspace) }
33
+ specify { expect { runner.run_tasks! }.to raise_error }
35
34
  end
36
-
37
35
  context "build_dir" do
38
- pending "raise exception"
36
+ let(:runner) { mock_runner vc.enable_xcode_build!.invalid_location!(:build_dir) }
37
+ specify { expect { runner.run_tasks! }.to raise_error }
39
38
  end
40
-
41
39
  end
42
40
 
43
41
  end
44
42
 
45
43
  describe "successful build" do
46
- pending "runner.store[:xcode_build_succeeded].should be_true"
44
+ let(:runner) { mock_runner(vc.enable_xcode_build!) }
45
+ before { runner.run_tasks! }
46
+ specify { runner.store[:xcode_build_succeeded].should be_true }
47
47
  end
48
48
 
49
49
  describe "failing build" do
50
- pending "runner.store[:xcode_build_succeeded].should_not be_true <- need to create a target that fails to build, spelling mistake or something"
50
+ pending "create a target that fails to build, spelling mistake or something"
51
51
  end
52
52
 
53
53
  describe "task completion" do
54
- pending "runner.tasks[:completed].include?(:xcode_build).should be_true"
55
- pending "runner.outputs[:xcode_build].should_not be_nil"
54
+ let(:runner) { mock_runner(vc.enable_xcode_build!) }
55
+ before { runner.run_tasks! }
56
+ specify { runner.tasks[:completed].include?(:xcode_build).should be_true }
57
+ specify { runner.outputs[:xcode_build].should_not be_nil }
56
58
  end
57
59
 
58
60
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ios_build_kit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Waite
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-02-21 00:00:00.000000000 Z
11
+ date: 2014-02-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: commander
@@ -196,7 +196,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
196
196
  version: '0'
197
197
  requirements: []
198
198
  rubyforge_project:
199
- rubygems_version: 2.0.8
199
+ rubygems_version: 2.1.11
200
200
  signing_key:
201
201
  specification_version: 4
202
202
  summary: iOS Build Kit
@@ -211,4 +211,3 @@ test_files:
211
211
  - spec/support/config_mocker.rb
212
212
  - spec/support/temp_dir.rb
213
213
  - spec/xcode_build_spec.rb
214
- has_rdoc: