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.
- checksums.yaml +4 -4
- data/features/git/create.feature +0 -8
- data/features/step_definitions/project_steps.rb +4 -2
- data/features/xcode/create.feature +9 -23
- data/lib/fwtoolkit/cli.rb +2 -0
- data/lib/fwtoolkit/cli/bitrise.rb +27 -7
- data/lib/fwtoolkit/cli/project.rb +6 -4
- data/lib/fwtoolkit/cli/xcode.rb +1 -1
- data/lib/fwtoolkit/config.rb +6 -2
- data/lib/fwtoolkit/projectfile.rb +0 -2
- data/lib/fwtoolkit/version.rb +1 -1
- data/templates/bitrise/android/bitrise.yml.tt +168 -0
- data/templates/{default_project/bitrise → bitrise/ios}/bitrise.yml.tt +3 -3
- data/templates/default_project/bitrise/android/bitrise.yml.tt +168 -0
- data/templates/{bitrise → default_project/bitrise/ios}/bitrise.yml.tt +3 -3
- data/templates/default_project/git/.github/PULL_REQUEST_TEMPLATE.md +6 -3
- data/templates/default_project/git/.gitignore +1 -0
- data/templates/objc_project/xcode/%project_name%/%project_name%.xcodeproj/project.pbxproj.tt +3 -1
- data/templates/objc_project/xcode/%project_name%/%project_name%.xcodeproj/xcshareddata/xcschemes/%project_name%.xcscheme.tt +10 -14
- data/templates/swift_project/xcode/%project_name%/%project_name%.xcodeproj/project.pbxproj.tt +3 -1
- data/templates/swift_project/xcode/%project_name%/%project_name%.xcodeproj/xcshareddata/xcschemes/%project_name%.xcscheme.tt +10 -14
- metadata +54 -61
- data/features/cocoapods/setup.feature +0 -60
- data/features/frank/model.feature +0 -20
- data/features/frank/setup.feature +0 -28
- data/templates/objc_project/xcode/%project_name%.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
- data/templates/objc_project/xcode/%project_name%/%project_name%.entitlements +0 -8
- 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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b34e55fe508458da4b6083e4bfef84b774fdd0ccf5f49f9f52db3fa0a7901efa
|
4
|
+
data.tar.gz: 446f45b663fbf34383fbd5f16d45c492cc57a9d606b4488d941394227c5f9e5b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1ba5fa746bf3e1c8c1abf85d593882e4959b7c55e14aaf6432305a4129167e49ad4923da299f91fd3e61e19f7c522af9f9ff990253fee6f5382ce70390fac9f
|
7
|
+
data.tar.gz: ab359414f786c9b03a797bcf94223f60b4ed9a9e0e3f1206dfb60d5ae9cfeda9dc2220377a5cdd8d6e6eb52667833da1bae9bbade39b5780a6cf3c1fc545b13a
|
data/features/git/create.feature
CHANGED
@@ -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
|
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/
|
17
|
-
| MyProject/
|
18
|
-
| MyProject/
|
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
|
23
|
-
| MyProject/MyProject/Supporting Files/
|
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/
|
27
|
-
| MyProject/MyProjectTests/
|
28
|
-
|
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`
|
data/lib/fwtoolkit/cli.rb
CHANGED
@@ -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
|
-
|
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
|
-
|
40
|
+
template_directory "templates/bitrise/android", destination_root, template_config
|
22
41
|
end
|
23
42
|
|
24
|
-
desc '
|
25
|
-
def
|
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
|
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
|
-
|
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, '
|
43
|
+
invoke FWToolkit::Bitrise, 'ios', [destination_root, clean_project_name]
|
42
44
|
|
43
|
-
invoke FWToolkit::Xcode, 'new', [project_language,
|
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
|
data/lib/fwtoolkit/cli/xcode.rb
CHANGED
@@ -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
|
data/lib/fwtoolkit/config.rb
CHANGED
@@ -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(
|
13
|
+
File.join(base_path, '.fwtoolkitconfig')
|
10
14
|
end
|
11
15
|
|
12
16
|
def self.old_file
|
13
|
-
File.join(
|
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
|
data/lib/fwtoolkit/version.rb
CHANGED
@@ -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:
|
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: '
|
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: '
|
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:
|
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: '
|
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: '
|
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
|
-
[
|
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>
|
data/templates/objc_project/xcode/%project_name%/%project_name%.xcodeproj/project.pbxproj.tt
CHANGED
@@ -176,7 +176,7 @@
|
|
176
176
|
isa = PBXProject;
|
177
177
|
attributes = {
|
178
178
|
CLASSPREFIX = "<%= config[:class_prefix] %>";
|
179
|
-
LastUpgradeCheck =
|
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 = "
|
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"
|
data/templates/swift_project/xcode/%project_name%/%project_name%.xcodeproj/project.pbxproj.tt
CHANGED
@@ -169,7 +169,7 @@
|
|
169
169
|
isa = PBXProject;
|
170
170
|
attributes = {
|
171
171
|
LastSwiftUpdateCheck = 0720;
|
172
|
-
LastUpgradeCheck =
|
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 = "
|
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.
|
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:
|
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/
|
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.
|
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>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>
|