fwtoolkit 2.3.2 → 2.4.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.
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>