fwtoolkit 2.3.2 → 2.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (28) hide show
  1. checksums.yaml +4 -4
  2. data/features/git/create.feature +0 -8
  3. data/features/step_definitions/project_steps.rb +4 -2
  4. data/features/xcode/create.feature +9 -23
  5. data/lib/fwtoolkit/cli.rb +2 -0
  6. data/lib/fwtoolkit/cli/bitrise.rb +27 -7
  7. data/lib/fwtoolkit/cli/project.rb +6 -4
  8. data/lib/fwtoolkit/cli/xcode.rb +1 -1
  9. data/lib/fwtoolkit/config.rb +6 -2
  10. data/lib/fwtoolkit/projectfile.rb +0 -2
  11. data/lib/fwtoolkit/version.rb +1 -1
  12. data/templates/bitrise/android/bitrise.yml.tt +168 -0
  13. data/templates/{default_project/bitrise → bitrise/ios}/bitrise.yml.tt +3 -3
  14. data/templates/default_project/bitrise/android/bitrise.yml.tt +168 -0
  15. data/templates/{bitrise → default_project/bitrise/ios}/bitrise.yml.tt +3 -3
  16. data/templates/default_project/git/.github/PULL_REQUEST_TEMPLATE.md +6 -3
  17. data/templates/default_project/git/.gitignore +1 -0
  18. data/templates/objc_project/xcode/%project_name%/%project_name%.xcodeproj/project.pbxproj.tt +3 -1
  19. data/templates/objc_project/xcode/%project_name%/%project_name%.xcodeproj/xcshareddata/xcschemes/%project_name%.xcscheme.tt +10 -14
  20. data/templates/swift_project/xcode/%project_name%/%project_name%.xcodeproj/project.pbxproj.tt +3 -1
  21. data/templates/swift_project/xcode/%project_name%/%project_name%.xcodeproj/xcshareddata/xcschemes/%project_name%.xcscheme.tt +10 -14
  22. metadata +54 -61
  23. data/features/cocoapods/setup.feature +0 -60
  24. data/features/frank/model.feature +0 -20
  25. data/features/frank/setup.feature +0 -28
  26. data/templates/objc_project/xcode/%project_name%.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  27. data/templates/objc_project/xcode/%project_name%/%project_name%.entitlements +0 -8
  28. data/templates/swift_project/xcode/%project_name%/%project_name%.entitlements +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: '019162ac50c1af63fa6b1ff17c1bceafaf93fabbd8f67bfa38853e5ebd5ce45c'
4
- data.tar.gz: c0e43f9f2cb8d7d7147c9a6bac3b38dbaff8de637567a2898667cc9fff71eb3a
3
+ metadata.gz: b34e55fe508458da4b6083e4bfef84b774fdd0ccf5f49f9f52db3fa0a7901efa
4
+ data.tar.gz: 446f45b663fbf34383fbd5f16d45c492cc57a9d606b4488d941394227c5f9e5b
5
5
  SHA512:
6
- metadata.gz: 7d8c40a7fd54421e5104ae0231d1731d4bce0f5bea66a153fd683a60b39e272427b84c5f38e036a828ca4549b7554f4656506c6ea4f6bad7d79352ac5cabe7f3
7
- data.tar.gz: c45cf4ae466ff16db10e9d1c8ab3491d3ca35068b93b05e5b03ca8fd91004fd75cca9d3a20e0796e2f7ff870880be229a53bcc24f67bd7077c871c09db2ef60a
6
+ metadata.gz: b1ba5fa746bf3e1c8c1abf85d593882e4959b7c55e14aaf6432305a4129167e49ad4923da299f91fd3e61e19f7c522af9f9ff990253fee6f5382ce70390fac9f
7
+ data.tar.gz: ab359414f786c9b03a797bcf94223f60b4ed9a9e0e3f1206dfb60d5ae9cfeda9dc2220377a5cdd8d6e6eb52667833da1bae9bbade39b5780a6cf3c1fc545b13a
@@ -19,11 +19,3 @@ Feature: Create a git repo
19
19
  """
20
20
  There's already a repository at path
21
21
  """
22
- @slow
23
- Scenario: Create a git repository on a folder with files in it
24
- Given a directory named "my_project"
25
- Given a valid .gitignore file exists inside a directory named "my_project"
26
- Given the directory "my_project" contains an uncommitted file named "my_file.c"
27
- When I successfully run `fwt git new my_project`
28
- Then an initialized git repository should exists inside a directory named "my_project"
29
- And the file named "my_file.c" should have been committed to the repository at path "my_project"
@@ -5,11 +5,13 @@ Given /^a configured installation of FWToolkit for "([^"]*)" working for "([^"]*
5
5
  Given I'm using a clean home directory
6
6
  }
7
7
  steps %Q{
8
- And a directory named ".fwtoolkit" inside the home directory
9
- And a file named "#{File.join(Dir.home, '.fwtoolkit', 'config')}" with:
8
+ And a file named "#{File.join(ENV['CONFIG_PATH'] || Dir.home, '.fwtoolkitconfig')}" with:
10
9
  """
11
10
  developer_name: "#{dev_name}"
12
11
  organization_name: "#{company_name}"
12
+ organization_name: "Future Workshops"
13
+ target_platform: "13.0"
14
+ ci_server_url: "https://app.bitrise.io/dashboard"
13
15
  """
14
16
  }
15
17
  end
@@ -8,35 +8,21 @@ Feature: Create new project
8
8
 
9
9
  @xcode
10
10
  Scenario: Create a new project
11
- When I successfully run `fwt xcode new MyProject AAA`
11
+ When I successfully run `fwt xcode new objc MyProject AAA`
12
12
  Then I cd to "MyProject"
13
13
  And the following directories should exist:
14
14
  | MyProject.xcworkspace |
15
15
  | MyProject/MyProject.xcodeproj |
16
- | MyProject/MyProject/Supporting Files/Settings.bundle |
17
- | MyProject/Myproject/Supporting Files/en.lproj |
18
- | MyProject/MyprojectTests/Supporting Files/en.lproj |
16
+ | MyProject/MyProject/Resources/Assets.xcassets |
17
+ | MyProject/MyProject/Resources/Assets.xcassets/AppIcon.appiconset |
18
+ | MyProject/MyProject/Resources/Base.lproj |
19
19
  And the following files should exist:
20
20
  | MyProject/MyProject/AAAAppDelegate.h |
21
21
  | MyProject/MyProject/AAAAppDelegate.m |
22
- | MyProject/MyProject/Supporting Files/MyProject-Info.plist |
23
- | MyProject/MyProject/Supporting Files/MyProject-Prefix.pch |
22
+ | MyProject/MyProject.entitlements |
23
+ | MyProject/MyProject/Supporting Files/Info.plist |
24
24
  | MyProject/MyProject/Supporting Files/fw-shared.xcconfig |
25
25
  | MyProject/MyProject/Supporting Files/main.m |
26
- | MyProject/MyProject/Supporting Files/version.sh |
27
- | MyProject/MyProjectTests/Supporting Files/MyProjectTests-Info.plist |
28
- | MyProject/MyProjectTests/MyProjectTests.h |
29
- | MyProject/MyProjectTests/MyProjectTests.m |
30
- | MyProject/Resources/Default.png |
31
- | MyProject/Resources/Default@2x.png |
32
- | MyProject/Resources/Default-568h@2x.png |
33
- And I successfully run `xcodebuild -scheme MyProject -workspace MyProject.xcworkspace -sdk iphonesimulator6.0`
34
-
35
- @xcode
36
- Scenario: Fails to create a new project is the project dir is not empty
37
- Given a directory named "MyProject"
38
- When I run `fwt xcode new MyProject AAA`
39
- Then the stderr should contain:
40
- """
41
- Can't create the project. The directory
42
- """
26
+ | MyProject/MyProjectTests/Resources/Info.plist |
27
+ | MyProject/MyProjectTests/AAAMyProjectTests.m |
28
+ And I successfully run `xcodebuild -scheme MyProject -workspace MyProject.xcworkspace -sdk iphonesimulator`
@@ -24,6 +24,8 @@ module FWToolkit
24
24
 
25
25
  register FWToolkit::Bitrise, 'bitrise', 'bitrise SUBCOMMAND ...ARG', 'Create bitrise configuration files'
26
26
  register FWToolkit::Project, 'proj', 'proj SUBCOMMAND ...ARG', 'Create projects and manage settings'
27
+ register FWToolkit::Xcode, 'xcode', 'xcode SUBCOMMAND ...ARG', 'Create Xcode projects'
28
+ register FWToolkit::Git, 'git', 'git SUBCOMMAND ...ARG', 'Git operations'
27
29
  end
28
30
  end
29
31
 
@@ -12,17 +12,37 @@ module FWToolkit
12
12
 
13
13
  source_root_templates!
14
14
 
15
- desc 'genereate [PROJECT NAME]', "Create a new bitrise.yml file for the project, based on a blank file"
16
- def generate(project_name)
15
+ desc 'genereate [PROJECT NAME] [PLATFORM]', "Create a new bitrise.yml file for the project, based on a blank file. Platform needs to be either ios or android. ios is used by default"
16
+ def generate(project_name, platform='ios')
17
17
  destination_root = Dir.pwd
18
18
 
19
- say "Creating bitrise.yml file in: #{File.expand_path destination_root}/bitrise.yml"
19
+ if platform == 'android'
20
+ invoke FWToolkit::Bitrise, 'android', [destination_root, project_name]
21
+ else
22
+ invoke FWToolkit::Bitrise, 'ios', [destination_root, project_name]
23
+ end
24
+ end
25
+
26
+ desc 'android [PROJECT ROOT PATH] [PACKAGE_NAME]', 'Creates a new Android bitrise YML configuration file'
27
+ def android(project_root, package_name)
28
+ say "Creating android bitrise.yml file in: #{File.expand_path project_root}/bitrise.yml"
29
+ destination_root = project_root
30
+ bitrise_file = File.join(project_root, 'bitrise.yml')
31
+
32
+ Projectfile.load_with_config! :project_name => package_name
33
+
34
+ template_config = { :target_platform => Config.target_platform,
35
+ :organization_name => Config.organization_name,
36
+ :project_creator => Config.developer_name,
37
+ :package_name => package_name }
38
+ template_config.merge! Projectfile.config
20
39
 
21
- invoke FWToolkit::Bitrise, 'new', [destination_root, project_name]
40
+ template_directory "templates/bitrise/android", destination_root, template_config
22
41
  end
23
42
 
24
- desc 'new', 'Creates a new bitrise YML configuration file'
25
- def new(project_root, project_name)
43
+ desc 'ios [PROJECT ROOT PATH] [PROJECT NAME]', 'Creates a new iOS bitrise YML configuration file'
44
+ def ios(project_root, project_name)
45
+ say "Creating ios bitrise.yml file in: #{File.expand_path project_root}/bitrise.yml"
26
46
  destination_root = project_root
27
47
  bitrise_file = File.join(project_root, 'bitrise.yml')
28
48
 
@@ -33,7 +53,7 @@ module FWToolkit
33
53
  :project_creator => Config.developer_name }
34
54
  template_config.merge! Projectfile.config
35
55
 
36
- template_directory "templates/bitrise", destination_root, template_config
56
+ template_directory "templates/bitrise/ios", destination_root, template_config
37
57
  end
38
58
 
39
59
  end
@@ -14,7 +14,7 @@ module FWToolkit
14
14
  include FWToolkit::ThorUtils
15
15
  source_root_templates!
16
16
 
17
- desc "proj new [PROJECT NAME]", "Create a new Xcode project with FW's settings. Language is either objc or swift"
17
+ desc "proj create [PROJECT NAME]", "Create a new Xcode project with FW's settings. Language is either objc or swift"
18
18
  def create(project_name)
19
19
  invoke :new, ["swift", project_name, ""]
20
20
  end
@@ -32,15 +32,17 @@ module FWToolkit
32
32
  return
33
33
  end
34
34
 
35
- destination_root = File.join(Dir.pwd, project_name)
35
+ clean_project_name = project_name.gsub("-", "_")
36
+
37
+ destination_root = File.join(Dir.pwd, clean_project_name)
36
38
 
37
39
  say "Creating new project in: #{File.expand_path destination_root}"
38
40
 
39
41
  invoke :conf_gemset, [destination_root]
40
42
 
41
- invoke FWToolkit::Bitrise, 'new', [destination_root, project_name]
43
+ invoke FWToolkit::Bitrise, 'ios', [destination_root, clean_project_name]
42
44
 
43
- invoke FWToolkit::Xcode, 'new', [project_language, project_name, class_prefix.upcase, File.join(Dir.pwd, project_name)]
45
+ invoke FWToolkit::Xcode, 'new', [project_language, clean_project_name, class_prefix.upcase, File.join(Dir.pwd, clean_project_name)]
44
46
  invoke FWToolkit::Cocoapods, 'install', [destination_root]
45
47
 
46
48
  git_repo = GitClient::Repository.new destination_root
@@ -25,7 +25,7 @@ module FWToolkit
25
25
  include FWToolkit::ThorUtils
26
26
  source_root_templates!
27
27
 
28
- desc "new [PROJECT_NAME] [CLASS_PREFIX]", "Create a new Xcode project with FW's settings"
28
+ desc "new [LANGUAGE] [PROJECT_NAME] [CLASS_PREFIX]", "Create a new Xcode project with FW's settings"
29
29
  def new(project_language, project_name, class_prefix, root_dir=File.join(Dir.pwd, project_name))
30
30
  say 'Creating Xcode project'
31
31
  destination_root = root_dir
@@ -5,12 +5,16 @@ module FWToolkit
5
5
  module Config
6
6
  include FWToolkit::ConfigFile
7
7
 
8
+ def self.base_path
9
+ ENV['CONFIG_PATH'] || ENV['HOME']
10
+ end
11
+
8
12
  def self.config_file
9
- File.join(ENV['HOME'], '.fwtoolkitconfig')
13
+ File.join(base_path, '.fwtoolkitconfig')
10
14
  end
11
15
 
12
16
  def self.old_file
13
- File.join(ENV['HOME'], '.fwtoolkit', 'config')
17
+ File.join(base_path, '.fwtoolkit', 'config')
14
18
  end
15
19
 
16
20
  def self.base_file
@@ -42,8 +42,6 @@ module FWToolkit
42
42
  d[:xcode_project] = "#{File.join(conf_hash[:project_name], conf_hash[:project_name])}.xcodeproj"
43
43
  d[:source_root] = File.join conf_hash[:project_name], d[:target_name]
44
44
  d[:tests_source_root] = File.join conf_hash[:project_name], d[:tests_target_name]
45
- d[:frank_root] = File.join conf_hash[:project_name], d[:target_name], 'Frank'
46
- d[:frankified_app] = File.join d[:frank_root], 'frankified_build', 'Frankified.app'
47
45
  d
48
46
  end
49
47
  end
@@ -1,3 +1,3 @@
1
1
  module FWToolkit
2
- VERSION = "2.3.2"
2
+ VERSION = "2.4.0"
3
3
  end
@@ -0,0 +1,168 @@
1
+ ---
2
+ format_version: '8'
3
+ default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
4
+ project_type: android
5
+ trigger_map:
6
+ - push_branch: dev
7
+ workflow: staging
8
+ - push_branch: release/next
9
+ workflow: test_external
10
+ - push_branch: main
11
+ workflow: external
12
+ - pull_request_source_branch: "*"
13
+ workflow: pull_request
14
+ workflows:
15
+ pull_request:
16
+ envs:
17
+ - BUILD_FLAVOUR:
18
+ opts:
19
+ is_expand: true
20
+ - BUILD_TASK: Debug
21
+ opts:
22
+ is_expand: true
23
+ after_run:
24
+ - _preflight
25
+ - _test
26
+ - _commit_status
27
+ staging:
28
+ envs:
29
+ - KEYSTORE_NAME: fw_internal.keystore
30
+ opts:
31
+ is_expand: true
32
+ - KEYSTORE_ALIAS: Allinternal
33
+ opts:
34
+ is_expand: true
35
+ - PACKAGE_NAME: com.futureworkshops.<%= config[:package_name] %>
36
+ - KEYSTORE_PASSWORD: "$INTERNAL_KEYSTORE_PASSWORD"
37
+ - KEYALIAS_PASSWORD: "$INTERNAL_KEYALIAS_PASSWORD"
38
+ after_run:
39
+ - _preflight
40
+ - _build
41
+ - _deploy_bitrise
42
+ external:
43
+ envs:
44
+ - KEYSTORE_NAME:
45
+ opts:
46
+ is_expand: true
47
+ - KEYSTORE_ALIAS:
48
+ opts:
49
+ is_expand: true
50
+ - PACKAGE_NAME: <%= config[:package_name] %>
51
+ - KEYSTORE_PASSWORD:
52
+ - KEYALIAS_PASSWORD:
53
+ after_run:
54
+ - _preflight
55
+ - _build
56
+ - _deploy_bitrise
57
+ - _deploy_google
58
+ test_external:
59
+ envs:
60
+ - KEYSTORE_NAME:
61
+ opts:
62
+ is_expand: true
63
+ - KEYSTORE_ALIAS:
64
+ opts:
65
+ is_expand: true
66
+ - PACKAGE_NAME: com.futureworkshops.<%= config[:package_name] %>
67
+ - KEYSTORE_PASSWORD:
68
+ - KEYALIAS_PASSWORD:
69
+ after_run:
70
+ - _preflight
71
+ - _build
72
+ - _deploy_bitrise
73
+ - _deploy_google
74
+ _build:
75
+ steps:
76
+ - git::https://github.com/FutureWorkshops/bitrise-step-s3-download.git@master:
77
+ title: Download keystore
78
+ inputs:
79
+ - aws_access_key: "$AWS_ACCESS_KEY_ID"
80
+ - aws_secret_access_key: "$AWS_SECRET_ACCESS_KEY"
81
+ - s3_bucket: fw.ci.certificates
82
+ - output_location: "$KEYSTORE_OUTPUT_PATH"
83
+ - s3_filepath: "$KEYSTORE_NAME"
84
+ - gradle-runner@1.9:
85
+ inputs:
86
+ - gradle_file: "$GRADLE_BUILD_FILE_PATH"
87
+ - gradle_task: "-Pproject.buildnumber=$BITRISE_BUILD_NUMBER -Pproject.buildversion=$BUILD_VERSION
88
+ -Pproject.bundleId=$PACKAGE_NAME assemble$BUILD_FLAVOUR$BUILD_TASK"
89
+ - app_file_include_filter: |
90
+ *-universal-*.apk
91
+ *.aab
92
+ - gradlew_path: "$GRADLEW_PATH"
93
+ envs:
94
+ - KEYSTORE_PATH: "$KEYSTORE_OUTPUT_PATH/$KEYSTORE_NAME"
95
+ _deploy_bitrise:
96
+ steps:
97
+ - deploy-to-bitrise-io@1.12: {}
98
+ _deploy_google:
99
+ steps:
100
+ - google-play-deploy@3.1:
101
+ inputs:
102
+ - service_account_json_key_path: "$BITRISEIO_GOOGLE_PLAY_JSON_AUTH_PATH_URL"
103
+ - package_name: "$PACKAGE_NAME"
104
+ - mapping_file: ''
105
+ - track: internal
106
+ - app_path: "$BITRISE_APK_PATH"
107
+ - apk_path: "$BITRISE_SIGNED_APK_PATH"
108
+ _preflight:
109
+ steps:
110
+ - build-number-adjust@1.0.0:
111
+ inputs:
112
+ - change: ''
113
+ - increase: "$FW_BUILD_NUMBER_OFFSET"
114
+ - decrease: ''
115
+ - activate-ssh-key@4.0.5:
116
+ run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
117
+ - git-clone@4.0:
118
+ inputs:
119
+ - manual_merge: 'no'
120
+ - install-missing-android-tools@2.3.8:
121
+ inputs:
122
+ - ndk_revision: $ANDROID_NDK_VERSION
123
+ _test:
124
+ steps:
125
+ - gradle-unit-test@1.0:
126
+ inputs:
127
+ - unit_test_task: "$TEST_COMMAND"
128
+ - unit_test_flags:
129
+ - deploy-to-bitrise-io@1.12:
130
+ inputs:
131
+ - deploy_path: "$TEST_REPORTS_PATH"
132
+ - notify_user_groups: none
133
+ - is_compress: 'true'
134
+ envs:
135
+ - TEST_REPORTS_PATH: "$BITRISE_SOURCE_DIR/app/build/reports/"
136
+ - TEST_COMMAND: check test
137
+ _commit_status:
138
+ steps:
139
+ - github-status@2.3:
140
+ inputs:
141
+ - auth_token: "$FW_GITHUB_STATUS_AUTH_TOKEN"
142
+ app:
143
+ envs:
144
+ - BUILD_FLAVOUR:
145
+ opts:
146
+ is_expand: true
147
+ - BUILD_TASK: Release
148
+ opts:
149
+ is_expand: true
150
+ - GRADLE_BUILD_FILE_PATH: app/build.gradle
151
+ opts:
152
+ is_expand: true
153
+ - GRADLEW_PATH: "./gradlew"
154
+ opts:
155
+ is_expand: true
156
+ - FW_BUILD_NUMBER_OFFSET: '0'
157
+ opts:
158
+ is_expand: true
159
+ - BUILD_VERSION: 1.0.0
160
+ opts:
161
+ is_expand: true
162
+ - ANDROID_NDK_VERSION: '21'
163
+ opts:
164
+ is_expand: true
165
+ - KEYSTORE_OUTPUT_PATH: "$BITRISE_SOURCE_DIR"
166
+ meta:
167
+ bitrise.io:
168
+ machine_type: performance
@@ -6,7 +6,7 @@ trigger_map:
6
6
  workflow: internal
7
7
  - push_branch: release/next
8
8
  workflow: test_external
9
- - push_branch: master
9
+ - push_branch: main
10
10
  workflow: external
11
11
  - pull_request_source_branch: "*"
12
12
  workflow: test
@@ -88,7 +88,7 @@ workflows:
88
88
  - EXPORT_TYPE: app-store
89
89
  opts:
90
90
  is_expand: true
91
- - CODESIGN_IDENTITY: 'iPhone Distribution: Future Workshops Ltd (F94732585Z)'
91
+ - CODESIGN_IDENTITY: 'Apple Distribution: Future Workshops Ltd (F94732585Z)'
92
92
  opts:
93
93
  is_expand: true
94
94
  - KEYCHAIN_NAME: fw_ltd.p12
@@ -124,7 +124,7 @@ workflows:
124
124
  - EXPORT_TYPE: app-store
125
125
  opts:
126
126
  is_expand: true
127
- - CODESIGN_IDENTITY: 'iPhone Distribution: Future Workshops Ltd (F94732585Z)'
127
+ - CODESIGN_IDENTITY: 'Apple Distribution: Future Workshops Ltd (F94732585Z)'
128
128
  opts:
129
129
  is_expand: true
130
130
  - KEYCHAIN_NAME: fw_ltd.p12
@@ -0,0 +1,168 @@
1
+ ---
2
+ format_version: '8'
3
+ default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
4
+ project_type: android
5
+ trigger_map:
6
+ - push_branch: dev
7
+ workflow: staging
8
+ - push_branch: release/next
9
+ workflow: test_external
10
+ - push_branch: main
11
+ workflow: external
12
+ - pull_request_source_branch: "*"
13
+ workflow: pull_request
14
+ workflows:
15
+ pull_request:
16
+ envs:
17
+ - BUILD_FLAVOUR:
18
+ opts:
19
+ is_expand: true
20
+ - BUILD_TASK: Debug
21
+ opts:
22
+ is_expand: true
23
+ after_run:
24
+ - _preflight
25
+ - _test
26
+ - _commit_status
27
+ staging:
28
+ envs:
29
+ - KEYSTORE_NAME: fw_internal.keystore
30
+ opts:
31
+ is_expand: true
32
+ - KEYSTORE_ALIAS: Allinternal
33
+ opts:
34
+ is_expand: true
35
+ - PACKAGE_NAME: com.futureworkshops.<%= config[:package_name] %>
36
+ - KEYSTORE_PASSWORD: "$INTERNAL_KEYSTORE_PASSWORD"
37
+ - KEYALIAS_PASSWORD: "$INTERNAL_KEYALIAS_PASSWORD"
38
+ after_run:
39
+ - _preflight
40
+ - _build
41
+ - _deploy_bitrise
42
+ external:
43
+ envs:
44
+ - KEYSTORE_NAME:
45
+ opts:
46
+ is_expand: true
47
+ - KEYSTORE_ALIAS:
48
+ opts:
49
+ is_expand: true
50
+ - PACKAGE_NAME: <%= config[:package_name] %>
51
+ - KEYSTORE_PASSWORD:
52
+ - KEYALIAS_PASSWORD:
53
+ after_run:
54
+ - _preflight
55
+ - _build
56
+ - _deploy_bitrise
57
+ - _deploy_google
58
+ test_external:
59
+ envs:
60
+ - KEYSTORE_NAME:
61
+ opts:
62
+ is_expand: true
63
+ - KEYSTORE_ALIAS:
64
+ opts:
65
+ is_expand: true
66
+ - PACKAGE_NAME: com.futureworkshops.<%= config[:package_name] %>
67
+ - KEYSTORE_PASSWORD:
68
+ - KEYALIAS_PASSWORD:
69
+ after_run:
70
+ - _preflight
71
+ - _build
72
+ - _deploy_bitrise
73
+ - _deploy_google
74
+ _build:
75
+ steps:
76
+ - git::https://github.com/FutureWorkshops/bitrise-step-s3-download.git@master:
77
+ title: Download keystore
78
+ inputs:
79
+ - aws_access_key: "$AWS_ACCESS_KEY_ID"
80
+ - aws_secret_access_key: "$AWS_SECRET_ACCESS_KEY"
81
+ - s3_bucket: fw.ci.certificates
82
+ - output_location: "$KEYSTORE_OUTPUT_PATH"
83
+ - s3_filepath: "$KEYSTORE_NAME"
84
+ - gradle-runner@1.9:
85
+ inputs:
86
+ - gradle_file: "$GRADLE_BUILD_FILE_PATH"
87
+ - gradle_task: "-Pproject.buildnumber=$BITRISE_BUILD_NUMBER -Pproject.buildversion=$BUILD_VERSION
88
+ -Pproject.bundleId=$PACKAGE_NAME assemble$BUILD_FLAVOUR$BUILD_TASK"
89
+ - app_file_include_filter: |
90
+ *-universal-*.apk
91
+ *.aab
92
+ - gradlew_path: "$GRADLEW_PATH"
93
+ envs:
94
+ - KEYSTORE_PATH: "$KEYSTORE_OUTPUT_PATH/$KEYSTORE_NAME"
95
+ _deploy_bitrise:
96
+ steps:
97
+ - deploy-to-bitrise-io@1.12: {}
98
+ _deploy_google:
99
+ steps:
100
+ - google-play-deploy@3.1:
101
+ inputs:
102
+ - service_account_json_key_path: "$BITRISEIO_GOOGLE_PLAY_JSON_AUTH_PATH_URL"
103
+ - package_name: "$PACKAGE_NAME"
104
+ - mapping_file: ''
105
+ - track: internal
106
+ - app_path: "$BITRISE_APK_PATH"
107
+ - apk_path: "$BITRISE_SIGNED_APK_PATH"
108
+ _preflight:
109
+ steps:
110
+ - build-number-adjust@1.0.0:
111
+ inputs:
112
+ - change: ''
113
+ - increase: "$FW_BUILD_NUMBER_OFFSET"
114
+ - decrease: ''
115
+ - activate-ssh-key@4.0.5:
116
+ run_if: '{{getenv "SSH_RSA_PRIVATE_KEY" | ne ""}}'
117
+ - git-clone@4.0:
118
+ inputs:
119
+ - manual_merge: 'no'
120
+ - install-missing-android-tools@2.3.8:
121
+ inputs:
122
+ - ndk_revision: $ANDROID_NDK_VERSION
123
+ _test:
124
+ steps:
125
+ - gradle-unit-test@1.0:
126
+ inputs:
127
+ - unit_test_task: "$TEST_COMMAND"
128
+ - unit_test_flags:
129
+ - deploy-to-bitrise-io@1.12:
130
+ inputs:
131
+ - deploy_path: "$TEST_REPORTS_PATH"
132
+ - notify_user_groups: none
133
+ - is_compress: 'true'
134
+ envs:
135
+ - TEST_REPORTS_PATH: "$BITRISE_SOURCE_DIR/app/build/reports/"
136
+ - TEST_COMMAND: check test
137
+ _commit_status:
138
+ steps:
139
+ - github-status@2.3:
140
+ inputs:
141
+ - auth_token: "$FW_GITHUB_STATUS_AUTH_TOKEN"
142
+ app:
143
+ envs:
144
+ - BUILD_FLAVOUR:
145
+ opts:
146
+ is_expand: true
147
+ - BUILD_TASK: Release
148
+ opts:
149
+ is_expand: true
150
+ - GRADLE_BUILD_FILE_PATH: app/build.gradle
151
+ opts:
152
+ is_expand: true
153
+ - GRADLEW_PATH: "./gradlew"
154
+ opts:
155
+ is_expand: true
156
+ - FW_BUILD_NUMBER_OFFSET: '0'
157
+ opts:
158
+ is_expand: true
159
+ - BUILD_VERSION: 1.0.0
160
+ opts:
161
+ is_expand: true
162
+ - ANDROID_NDK_VERSION: '21'
163
+ opts:
164
+ is_expand: true
165
+ - KEYSTORE_OUTPUT_PATH: "$BITRISE_SOURCE_DIR"
166
+ meta:
167
+ bitrise.io:
168
+ machine_type: performance
@@ -6,7 +6,7 @@ trigger_map:
6
6
  workflow: internal
7
7
  - push_branch: release/next
8
8
  workflow: test_external
9
- - push_branch: master
9
+ - push_branch: main
10
10
  workflow: external
11
11
  - pull_request_source_branch: "*"
12
12
  workflow: test
@@ -88,7 +88,7 @@ workflows:
88
88
  - EXPORT_TYPE: app-store
89
89
  opts:
90
90
  is_expand: true
91
- - CODESIGN_IDENTITY: 'iPhone Distribution: Future Workshops Ltd (F94732585Z)'
91
+ - CODESIGN_IDENTITY: 'Apple Distribution: Future Workshops Ltd (F94732585Z)'
92
92
  opts:
93
93
  is_expand: true
94
94
  - KEYCHAIN_NAME: fw_ltd.p12
@@ -124,7 +124,7 @@ workflows:
124
124
  - EXPORT_TYPE: app-store
125
125
  opts:
126
126
  is_expand: true
127
- - CODESIGN_IDENTITY: 'iPhone Distribution: Future Workshops Ltd (F94732585Z)'
127
+ - CODESIGN_IDENTITY: 'Apple Distribution: Future Workshops Ltd (F94732585Z)'
128
128
  opts:
129
129
  is_expand: true
130
130
  - KEYCHAIN_NAME: fw_ltd.p12
@@ -1,5 +1,8 @@
1
- [Finishes #<PIVOTAL_TASK_NUMBER>]
2
-
1
+ <!-- You can associate this PR to a Jira task, by adding, for example [SBA-8931] to the description. -->
2
+ <!-- The jira automation will create a link over all this text -->
3
+
4
+ [Jira Task code]
5
+
3
6
  <Task description>
4
7
 
5
8
  **Steps to test:**
@@ -10,4 +13,4 @@
10
13
 
11
14
  **Expected result:**
12
15
 
13
- <A description of the expected results, after, and during the previous steps>
16
+ <A description of the expected results, after, and during the previous steps>
@@ -9,6 +9,7 @@ bitrise.yml
9
9
  .bitrise*
10
10
 
11
11
  #CocoaPods
12
+ Pods/
12
13
  Pods/CocoaPodsKeys
13
14
 
14
15
  # Xcode
@@ -176,7 +176,7 @@
176
176
  isa = PBXProject;
177
177
  attributes = {
178
178
  CLASSPREFIX = "<%= config[:class_prefix] %>";
179
- LastUpgradeCheck = 1020;
179
+ LastUpgradeCheck = 1200;
180
180
  ORGANIZATIONNAME = "Future Workshops";
181
181
  TargetAttributes = {
182
182
  B750287F1C5A3F7A000EB3CF = {
@@ -305,6 +305,7 @@
305
305
  CLANG_WARN_INFINITE_RECURSION = YES;
306
306
  CLANG_WARN_INT_CONVERSION = YES;
307
307
  CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
308
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
308
309
  CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
309
310
  CLANG_WARN_STRICT_PROTOTYPES = YES;
310
311
  CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -357,6 +358,7 @@
357
358
  CLANG_WARN_INFINITE_RECURSION = YES;
358
359
  CLANG_WARN_INT_CONVERSION = YES;
359
360
  CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
361
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
360
362
  CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
361
363
  CLANG_WARN_STRICT_PROTOTYPES = YES;
362
364
  CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <Scheme
3
- LastUpgradeVersion = "1020"
3
+ LastUpgradeVersion = "1200"
4
4
  version = "1.3">
5
5
  <BuildAction
6
6
  parallelizeBuildables = "YES"
@@ -27,6 +27,15 @@
27
27
  selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
28
  selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
29
  shouldUseLaunchSchemeArgsEnv = "YES">
30
+ <MacroExpansion>
31
+ <BuildableReference
32
+ BuildableIdentifier = "primary"
33
+ BlueprintIdentifier = "B750287F1C5A3F7A000EB3CF"
34
+ BuildableName = "<%= config[:project_name] %>.app"
35
+ BlueprintName = "<%= config[:project_name] %>"
36
+ ReferencedContainer = "container:<%= config[:project_name] %>.xcodeproj">
37
+ </BuildableReference>
38
+ </MacroExpansion>
30
39
  <Testables>
31
40
  <TestableReference
32
41
  skipped = "NO">
@@ -39,17 +48,6 @@
39
48
  </BuildableReference>
40
49
  </TestableReference>
41
50
  </Testables>
42
- <MacroExpansion>
43
- <BuildableReference
44
- BuildableIdentifier = "primary"
45
- BlueprintIdentifier = "B750287F1C5A3F7A000EB3CF"
46
- BuildableName = "<%= config[:project_name] %>.app"
47
- BlueprintName = "<%= config[:project_name] %>"
48
- ReferencedContainer = "container:<%= config[:project_name] %>.xcodeproj">
49
- </BuildableReference>
50
- </MacroExpansion>
51
- <AdditionalOptions>
52
- </AdditionalOptions>
53
51
  </TestAction>
54
52
  <LaunchAction
55
53
  buildConfiguration = "Debug"
@@ -71,8 +69,6 @@
71
69
  ReferencedContainer = "container:<%= config[:project_name] %>.xcodeproj">
72
70
  </BuildableReference>
73
71
  </BuildableProductRunnable>
74
- <AdditionalOptions>
75
- </AdditionalOptions>
76
72
  </LaunchAction>
77
73
  <ProfileAction
78
74
  buildConfiguration = "Release"
@@ -169,7 +169,7 @@
169
169
  isa = PBXProject;
170
170
  attributes = {
171
171
  LastSwiftUpdateCheck = 0720;
172
- LastUpgradeCheck = 1020;
172
+ LastUpgradeCheck = 1200;
173
173
  ORGANIZATIONNAME = "Future Workshops";
174
174
  TargetAttributes = {
175
175
  B75028B01C5A3F94000EB3CF = {
@@ -299,6 +299,7 @@
299
299
  CLANG_WARN_INFINITE_RECURSION = YES;
300
300
  CLANG_WARN_INT_CONVERSION = YES;
301
301
  CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
302
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
302
303
  CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
303
304
  CLANG_WARN_STRICT_PROTOTYPES = YES;
304
305
  CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -353,6 +354,7 @@
353
354
  CLANG_WARN_INFINITE_RECURSION = YES;
354
355
  CLANG_WARN_INT_CONVERSION = YES;
355
356
  CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
357
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
356
358
  CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
357
359
  CLANG_WARN_STRICT_PROTOTYPES = YES;
358
360
  CLANG_WARN_SUSPICIOUS_MOVE = YES;
@@ -1,6 +1,6 @@
1
1
  <?xml version="1.0" encoding="UTF-8"?>
2
2
  <Scheme
3
- LastUpgradeVersion = "1020"
3
+ LastUpgradeVersion = "1200"
4
4
  version = "1.3">
5
5
  <BuildAction
6
6
  parallelizeBuildables = "YES"
@@ -27,6 +27,15 @@
27
27
  selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
28
28
  selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
29
29
  shouldUseLaunchSchemeArgsEnv = "YES">
30
+ <MacroExpansion>
31
+ <BuildableReference
32
+ BuildableIdentifier = "primary"
33
+ BlueprintIdentifier = "B75028B01C5A3F94000EB3CF"
34
+ BuildableName = "<%= config[:project_name] %>.app"
35
+ BlueprintName = "<%= config[:project_name] %>"
36
+ ReferencedContainer = "container:<%= config[:project_name] %>.xcodeproj">
37
+ </BuildableReference>
38
+ </MacroExpansion>
30
39
  <Testables>
31
40
  <TestableReference
32
41
  skipped = "NO">
@@ -39,17 +48,6 @@
39
48
  </BuildableReference>
40
49
  </TestableReference>
41
50
  </Testables>
42
- <MacroExpansion>
43
- <BuildableReference
44
- BuildableIdentifier = "primary"
45
- BlueprintIdentifier = "B75028B01C5A3F94000EB3CF"
46
- BuildableName = "<%= config[:project_name] %>.app"
47
- BlueprintName = "<%= config[:project_name] %>"
48
- ReferencedContainer = "container:<%= config[:project_name] %>.xcodeproj">
49
- </BuildableReference>
50
- </MacroExpansion>
51
- <AdditionalOptions>
52
- </AdditionalOptions>
53
51
  </TestAction>
54
52
  <LaunchAction
55
53
  buildConfiguration = "Debug"
@@ -71,8 +69,6 @@
71
69
  ReferencedContainer = "container:<%= config[:project_name] %>.xcodeproj">
72
70
  </BuildableReference>
73
71
  </BuildableProductRunnable>
74
- <AdditionalOptions>
75
- </AdditionalOptions>
76
72
  </LaunchAction>
77
73
  <ProfileAction
78
74
  buildConfiguration = "Release"
metadata CHANGED
@@ -1,233 +1,233 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fwtoolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.2
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Future Workshops
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-01-21 00:00:00.000000000 Z
11
+ date: 2021-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rspec-rails
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: 3.8.2
20
- - - ">="
20
+ - - "~>"
21
21
  - !ruby/object:Gem::Version
22
22
  version: 3.8.2
23
23
  type: :development
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
26
26
  requirements:
27
- - - "~>"
27
+ - - ">="
28
28
  - !ruby/object:Gem::Version
29
29
  version: 3.8.2
30
- - - ">="
30
+ - - "~>"
31
31
  - !ruby/object:Gem::Version
32
32
  version: 3.8.2
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aruba
35
35
  requirement: !ruby/object:Gem::Requirement
36
36
  requirements:
37
- - - "~>"
37
+ - - ">="
38
38
  - !ruby/object:Gem::Version
39
39
  version: 0.14.12
40
- - - ">="
40
+ - - "~>"
41
41
  - !ruby/object:Gem::Version
42
42
  version: 0.14.12
43
43
  type: :development
44
44
  prerelease: false
45
45
  version_requirements: !ruby/object:Gem::Requirement
46
46
  requirements:
47
- - - "~>"
47
+ - - ">="
48
48
  - !ruby/object:Gem::Version
49
49
  version: 0.14.12
50
- - - ">="
50
+ - - "~>"
51
51
  - !ruby/object:Gem::Version
52
52
  version: 0.14.12
53
53
  - !ruby/object:Gem::Dependency
54
54
  name: cucumber
55
55
  requirement: !ruby/object:Gem::Requirement
56
56
  requirements:
57
- - - "~>"
57
+ - - ">="
58
58
  - !ruby/object:Gem::Version
59
59
  version: 3.1.2
60
- - - ">="
60
+ - - "~>"
61
61
  - !ruby/object:Gem::Version
62
62
  version: 3.1.2
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - "~>"
67
+ - - ">="
68
68
  - !ruby/object:Gem::Version
69
69
  version: 3.1.2
70
- - - ">="
70
+ - - "~>"
71
71
  - !ruby/object:Gem::Version
72
72
  version: 3.1.2
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: aruba-doubles
75
75
  requirement: !ruby/object:Gem::Requirement
76
76
  requirements:
77
- - - "~>"
77
+ - - ">="
78
78
  - !ruby/object:Gem::Version
79
79
  version: 1.2.1
80
- - - ">="
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: 1.2.1
83
83
  type: :development
84
84
  prerelease: false
85
85
  version_requirements: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - "~>"
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: 1.2.1
90
- - - ">="
90
+ - - "~>"
91
91
  - !ruby/object:Gem::Version
92
92
  version: 1.2.1
93
93
  - !ruby/object:Gem::Dependency
94
94
  name: thor
95
95
  requirement: !ruby/object:Gem::Requirement
96
96
  requirements:
97
- - - "~>"
97
+ - - ">="
98
98
  - !ruby/object:Gem::Version
99
99
  version: 0.20.3
100
- - - ">="
100
+ - - "~>"
101
101
  - !ruby/object:Gem::Version
102
102
  version: 0.20.3
103
103
  type: :runtime
104
104
  prerelease: false
105
105
  version_requirements: !ruby/object:Gem::Requirement
106
106
  requirements:
107
- - - "~>"
107
+ - - ">="
108
108
  - !ruby/object:Gem::Version
109
109
  version: 0.20.3
110
- - - ">="
110
+ - - "~>"
111
111
  - !ruby/object:Gem::Version
112
112
  version: 0.20.3
113
113
  - !ruby/object:Gem::Dependency
114
114
  name: rake
115
115
  requirement: !ruby/object:Gem::Requirement
116
116
  requirements:
117
- - - "~>"
117
+ - - ">="
118
118
  - !ruby/object:Gem::Version
119
119
  version: 13.0.0
120
- - - ">="
120
+ - - "~>"
121
121
  - !ruby/object:Gem::Version
122
122
  version: 13.0.0
123
123
  type: :runtime
124
124
  prerelease: false
125
125
  version_requirements: !ruby/object:Gem::Requirement
126
126
  requirements:
127
- - - "~>"
127
+ - - ">="
128
128
  - !ruby/object:Gem::Version
129
129
  version: 13.0.0
130
- - - ">="
130
+ - - "~>"
131
131
  - !ruby/object:Gem::Version
132
132
  version: 13.0.0
133
133
  - !ruby/object:Gem::Dependency
134
134
  name: bundler
135
135
  requirement: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - "~>"
137
+ - - ">="
138
138
  - !ruby/object:Gem::Version
139
139
  version: 2.1.4
140
- - - ">="
140
+ - - "~>"
141
141
  - !ruby/object:Gem::Version
142
142
  version: 2.1.4
143
143
  type: :runtime
144
144
  prerelease: false
145
145
  version_requirements: !ruby/object:Gem::Requirement
146
146
  requirements:
147
- - - "~>"
147
+ - - ">="
148
148
  - !ruby/object:Gem::Version
149
149
  version: 2.1.4
150
- - - ">="
150
+ - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: 2.1.4
153
153
  - !ruby/object:Gem::Dependency
154
154
  name: multi_json
155
155
  requirement: !ruby/object:Gem::Requirement
156
156
  requirements:
157
- - - "~>"
157
+ - - ">="
158
158
  - !ruby/object:Gem::Version
159
159
  version: 1.13.1
160
- - - ">="
160
+ - - "~>"
161
161
  - !ruby/object:Gem::Version
162
162
  version: 1.13.1
163
163
  type: :runtime
164
164
  prerelease: false
165
165
  version_requirements: !ruby/object:Gem::Requirement
166
166
  requirements:
167
- - - "~>"
167
+ - - ">="
168
168
  - !ruby/object:Gem::Version
169
169
  version: 1.13.1
170
- - - ">="
170
+ - - "~>"
171
171
  - !ruby/object:Gem::Version
172
172
  version: 1.13.1
173
173
  - !ruby/object:Gem::Dependency
174
174
  name: xcodeproj
175
175
  requirement: !ruby/object:Gem::Requirement
176
176
  requirements:
177
- - - "~>"
177
+ - - ">="
178
178
  - !ruby/object:Gem::Version
179
179
  version: 1.12.0
180
- - - ">="
180
+ - - "~>"
181
181
  - !ruby/object:Gem::Version
182
182
  version: 1.12.0
183
183
  type: :runtime
184
184
  prerelease: false
185
185
  version_requirements: !ruby/object:Gem::Requirement
186
186
  requirements:
187
- - - "~>"
187
+ - - ">="
188
188
  - !ruby/object:Gem::Version
189
189
  version: 1.12.0
190
- - - ">="
190
+ - - "~>"
191
191
  - !ruby/object:Gem::Version
192
192
  version: 1.12.0
193
193
  - !ruby/object:Gem::Dependency
194
194
  name: xcodebuild-rb
195
195
  requirement: !ruby/object:Gem::Requirement
196
196
  requirements:
197
- - - "~>"
197
+ - - ">="
198
198
  - !ruby/object:Gem::Version
199
199
  version: 0.3.0
200
- - - ">="
200
+ - - "~>"
201
201
  - !ruby/object:Gem::Version
202
202
  version: 0.3.0
203
203
  type: :runtime
204
204
  prerelease: false
205
205
  version_requirements: !ruby/object:Gem::Requirement
206
206
  requirements:
207
- - - "~>"
207
+ - - ">="
208
208
  - !ruby/object:Gem::Version
209
209
  version: 0.3.0
210
- - - ">="
210
+ - - "~>"
211
211
  - !ruby/object:Gem::Version
212
212
  version: 0.3.0
213
213
  - !ruby/object:Gem::Dependency
214
214
  name: rubyzip
215
215
  requirement: !ruby/object:Gem::Requirement
216
216
  requirements:
217
- - - "~>"
217
+ - - ">="
218
218
  - !ruby/object:Gem::Version
219
219
  version: 2.0.0
220
- - - ">="
220
+ - - "~>"
221
221
  - !ruby/object:Gem::Version
222
222
  version: 2.0.0
223
223
  type: :runtime
224
224
  prerelease: false
225
225
  version_requirements: !ruby/object:Gem::Requirement
226
226
  requirements:
227
- - - "~>"
227
+ - - ">="
228
228
  - !ruby/object:Gem::Version
229
229
  version: 2.0.0
230
- - - ">="
230
+ - - "~>"
231
231
  - !ruby/object:Gem::Version
232
232
  version: 2.0.0
233
233
  description: A collection of iOS development tools used by Future Workshops
@@ -239,9 +239,6 @@ extensions: []
239
239
  extra_rdoc_files: []
240
240
  files:
241
241
  - bin/fwt
242
- - features/cocoapods/setup.feature
243
- - features/frank/model.feature
244
- - features/frank/setup.feature
245
242
  - features/git/create.feature
246
243
  - features/project/create.feature
247
244
  - features/step_definitions/aruba_steps.rb
@@ -293,14 +290,14 @@ files:
293
290
  - spec/support/ctx_rake.rb
294
291
  - spec/support/double_helper.rb
295
292
  - spec/support/project_generator.rb
296
- - templates/bitrise/bitrise.yml.tt
297
- - templates/default_project/bitrise/bitrise.yml.tt
293
+ - templates/bitrise/android/bitrise.yml.tt
294
+ - templates/bitrise/ios/bitrise.yml.tt
295
+ - templates/default_project/bitrise/android/bitrise.yml.tt
296
+ - templates/default_project/bitrise/ios/bitrise.yml.tt
298
297
  - templates/default_project/gemset/Gemfile
299
298
  - templates/default_project/git/.github/PULL_REQUEST_TEMPLATE.md
300
299
  - templates/default_project/git/.gitignore
301
300
  - templates/objc_project/xcode/%project_name%.xcworkspace/contents.xcworkspacedata.tt
302
- - templates/objc_project/xcode/%project_name%.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
303
- - templates/objc_project/xcode/%project_name%/%project_name%.entitlements
304
301
  - templates/objc_project/xcode/%project_name%/%project_name%.xcodeproj/project.pbxproj.tt
305
302
  - templates/objc_project/xcode/%project_name%/%project_name%.xcodeproj/project.xcworkspace/contents.xcworkspacedata.tt
306
303
  - templates/objc_project/xcode/%project_name%/%project_name%.xcodeproj/xcshareddata/xcschemes/%project_name%.xcscheme.tt
@@ -342,7 +339,6 @@ files:
342
339
  - templates/objc_project/xcode/Rakefile.tt
343
340
  - templates/swift_project/xcode/%project_name%.xcworkspace/contents.xcworkspacedata.tt
344
341
  - templates/swift_project/xcode/%project_name%.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
345
- - templates/swift_project/xcode/%project_name%/%project_name%.entitlements
346
342
  - templates/swift_project/xcode/%project_name%/%project_name%.xcodeproj/project.pbxproj.tt
347
343
  - templates/swift_project/xcode/%project_name%/%project_name%.xcodeproj/project.xcworkspace/contents.xcworkspacedata.tt
348
344
  - templates/swift_project/xcode/%project_name%/%project_name%.xcodeproj/xcshareddata/xcschemes/%project_name%.xcscheme.tt
@@ -383,7 +379,7 @@ homepage: https://github.com/FutureWorkshops/FWToolkit
383
379
  licenses:
384
380
  - MIT
385
381
  metadata: {}
386
- post_install_message:
382
+ post_install_message:
387
383
  rdoc_options: []
388
384
  require_paths:
389
385
  - lib
@@ -398,14 +394,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
398
394
  - !ruby/object:Gem::Version
399
395
  version: '0'
400
396
  requirements: []
401
- rubygems_version: 3.1.2
402
- signing_key:
397
+ rubygems_version: 3.0.9
398
+ signing_key:
403
399
  specification_version: 4
404
400
  summary: Future Workshops project tools
405
401
  test_files:
406
- - features/cocoapods/setup.feature
407
- - features/frank/model.feature
408
- - features/frank/setup.feature
409
402
  - features/git/create.feature
410
403
  - features/project/create.feature
411
404
  - features/step_definitions/aruba_steps.rb
@@ -1,60 +0,0 @@
1
- Feature: Installing cocoapods
2
- As a lead developer
3
- In order to work with cocoapods in my project
4
- I want my system to be configured correctly
5
-
6
- @slow @pods
7
- Scenario: Install and configure cocoapods for a user without cocoapods installed
8
- Given I'm using a clean gemset "fwtoolkit_test" containing fwtoolkit.gem
9
- And I'm using a clean home directory
10
- And I force aruba-double path-hijacking
11
- And I double `pod`
12
- And I double `sudo`
13
- And I double `git`
14
- When I successfully run `fwt pods setup`
15
- Then the double `sudo gem install cocoapods` should have been run
16
- And a directory named "homedir/.cocoapods/fw" should exist
17
-
18
- @slow @pods
19
- Scenario: Configure fw's cocoapods for a user that has cocoapods already installed
20
- Given I'm using a clean gemset "fwtoolkit_test" containing fwtoolkit.gem
21
- And I'm using a clean home directory
22
- And I force aruba-double path-hijacking
23
- And I double the gem "cocoapods"
24
- And I double `pod`
25
- And I double `sudo`
26
- When I successfully run `fwt pods setup`
27
- Then the stdout should contain:
28
- """
29
- Cocoapods is already installed
30
- """
31
- And a directory named "homedir/.cocoapods/fw" should exist
32
-
33
- @slow @pods
34
- Scenario: Configure fw's cocoapods for a user that has messed up his/her installation
35
- Given I'm using a clean gemset "fwtoolkit_test" containing fwtoolkit.gem
36
- And I'm using a clean home directory
37
- And a directory named ".cocoapods/fw" inside the home directory
38
- And I force aruba-double path-hijacking
39
- And I double `gem`
40
- And I double `sudo`
41
- When I successfully run `fwt pods setup`
42
- Then the double `sudo gem install cocoapods` should have been run
43
- And the stdout should contain:
44
- """
45
- FW's podspec repository already installed
46
- """
47
-
48
- @slow @pods
49
- Scenario: Configure a project with Cocoapods
50
- Given a directory named "MyProject"
51
- And I double `bundle`
52
- And I cd to "MyProject"
53
- And an empty file named "Gemfile"
54
- And I cd to ".."
55
- When I successfully run `fwt pods install MyProject`
56
- Then the file "MyProject/Gemfile" should contain:
57
- """
58
- gem "Cocoapods"
59
- """
60
- And the double `bundle exec pod install` should have been run
@@ -1,20 +0,0 @@
1
- Feature: Create frank model from core data
2
- As a lead developer working on a project
3
- I want to generate ruby classes that mirror my CoreData model
4
- So I can refer to core data entities from my Frank tests
5
-
6
- Background:
7
- Given a configured installation of FWToolkit for "Tom the Dev" working for "Awesome Company"
8
-
9
- @frank
10
- Scenario: generate ruby model from CoreData
11
- Given an initialized FW iOS project named "MyProject"
12
- And the project "MyProject" contains a valid CoreData model
13
- When I run `fwt test model MyProject`
14
- Then I cd to "MyProject"
15
- And the following files should exist:
16
- | MyProject/Frank/features/support/views/my_objects_json.erb |
17
- | MyProject/Frank/features/support/views/my_objects_xml.erb |
18
- | MyProject/Frank/features/support/models/factories.rb |
19
- | MyProject/Frank/features/support/models/Ent1.rb |
20
- | MyProject/Frank/features/support/models/Ent2.rb |
@@ -1,28 +0,0 @@
1
- Feature: Frankifie a project
2
- As a lead developer working on a project
3
- I want a quick way to set up my project with frank
4
- So I can add BDD tests to it
5
-
6
- Background:
7
- Given a configured installation of FWToolkit for "Tom the Dev" working for "Awesome Company"
8
-
9
- @frank @no-clobber @test @announce
10
- Scenario: setup an existing project
11
- Given an initialized FW iOS project named "MyProject"
12
- When I successfully run `fwt test setup MyProject`
13
- Then I cd to "MyProject"
14
- And the following files should exist:
15
- | MyProject/MyProject/AAAAppDelegate+Frank.h |
16
- | MyProject/MyProject/AAAAppDelegate+Frank.m |
17
- | MyProject/Frank/Features/step_definitions/launch_steps.rb |
18
- | MyProject/Frank/Features/support/env.rb |
19
- | MyProject/Frank/Features/support/mimic.rb |
20
-
21
-
22
- @frank @slom
23
- Scenario: try to setup a project that already has frank
24
- Given an initialized FW iOS project named "MyProject"
25
- And I successfully run `fwt test setup MyProject`
26
- When I run `fwt test setup MyProject`
27
- Then the output should contain "Frank is already set up for the project"
28
-
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>IDEDidComputeMac32BitWarning</key>
6
- <true/>
7
- </dict>
8
- </plist>
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>com.apple.developer.default-data-protection</key>
6
- <string>NSFileProtectionComplete</string>
7
- </dict>
8
- </plist>
@@ -1,8 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
3
- <plist version="1.0">
4
- <dict>
5
- <key>com.apple.developer.default-data-protection</key>
6
- <string>NSFileProtectionComplete</string>
7
- </dict>
8
- </plist>