fastlane-plugin-firebase_test_lab 1.0.0 → 1.0.1
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
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a94d09a3da15a19b9bbef5ab63df267e07b813981be32c76743f7b5c9db68b51
|
4
|
+
data.tar.gz: 2b3f3e6d23b125d39fd4a532dbf38e0af34e7b6b03f2797b89ed6472528c26e1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 30a62e9d815248e5e5f91d3d557a8b108b2b5137fc03314e35f9447cbfc24d7fcc42a16f10f45651917601ff4e74f1a2d42d8bf3a20ac7971282fd3abac2534f
|
7
|
+
data.tar.gz: 5c44f93b44dbc5e326e8ab596e07036c490c614c209fbd06fbb45beffc58f93cd56892c072f1e99cefe3a491b14e83abf9f18e16e5be9acfe0ba6879a4cdb155
|
data/README.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
<p align="center">
|
2
|
+
<img src="./testlab.png" width="400" />
|
3
|
+
</p>
|
4
|
+
|
1
5
|
# `Firebase Test Lab` plugin for _fastlane_
|
2
6
|
|
3
7
|
This project is a [fastlane](https://fastlane.tools) plugin. You can add it to your _fastlane_ project by running
|
@@ -12,46 +16,51 @@ fastlane add_plugin firebase_test_lab
|
|
12
16
|
|
13
17
|
## About Firebase Test Lab plugin
|
14
18
|
|
15
|
-
[Firebase Test Lab](https://firebase.google.com/docs/test-lab/) let you easily test your iOS app (Android support forthcoming) on a variety of real or virtual devices and configurations. This plugin allows you to submit your app to Firebase Test Lab by adding an action into Fastfile
|
19
|
+
[Firebase Test Lab](https://firebase.google.com/docs/test-lab/) let you easily test your iOS app (Android support forthcoming) on a variety of real or virtual devices and configurations. This plugin allows you to submit your app to Firebase Test Lab by adding an action into your `Fastfile`.
|
16
20
|
|
17
21
|
## Getting started
|
18
22
|
|
19
23
|
### If you are not current user of Firebase
|
24
|
+
|
20
25
|
You need to set up Firebase first. These only needs to be done once for an organization.
|
21
26
|
|
22
27
|
- If you have not used Google Cloud before, you need to [create a new Google Cloud project](https://cloud.google.com/resource-manager/docs/creating-managing-projects#Creating%20a%20Project) first.
|
23
|
-
- Go to the [Firebase Console](https://console.firebase.google.com/). Add Firebase into your Google Cloud project by clicking on "Add project" and then choose your just-created project
|
28
|
+
- Go to the [Firebase Console](https://console.firebase.google.com/). Add Firebase into your Google Cloud project by clicking on "Add project" and then choose your just-created project.
|
24
29
|
|
25
30
|
### Configure Google credentials through service accounts
|
31
|
+
|
26
32
|
To authenticate, Google Cloud credentials will need to be set for any machine where _fastlane_ and this plugin runs on.
|
27
33
|
|
28
34
|
If you are running this plugin on Google Cloud [Compute Engine](https://cloud.google.com/compute), [Kubernetes Engine](https://cloud.google.com/kubernetes-engine) or [App Engine flexible environment](https://cloud.google.com/appengine/docs/flexible/), a default service account is automatically provisioned. You will not need to create a service account. See [this](https://cloud.google.com/compute/docs/access/service-accounts#compute_engine_default_service_account) for more details.
|
29
35
|
|
30
|
-
In all other cases, you
|
36
|
+
In all other cases, you need to configure the service account manually. You can follow [this guide](https://cloud.google.com/docs/authentication/getting-started) on how to create a new service account and create a key for it. You will need to set the `GOOGLE_APPLICATION_CREDENTIALS` environment variable pointing to the service account key file according to the document.
|
31
37
|
|
32
|
-
No matter you are a using an automatically provisioned service account or a manually created one, the service account must be configured to have project editor role.
|
38
|
+
No matter if you are a using an automatically provisioned service account or a manually created one, the service account must be configured to have the project editor role.
|
33
39
|
|
34
40
|
### Enable relevant Google APIs
|
35
|
-
|
41
|
+
|
42
|
+
- You need to enable the following APIs on your [Google Cloud API library](https://console.cloud.google.com/apis/library) (see [this](https://support.google.com/cloud/answer/6158841) for instructions how):
|
36
43
|
1. Cloud Testing API
|
37
44
|
2. Cloud Tool Results API
|
38
45
|
|
39
|
-
### Find
|
46
|
+
### Find the devices you want to test on
|
47
|
+
|
40
48
|
If you have [gcloud tool](https://cloud.google.com/sdk/gcloud/), you can run
|
41
49
|
|
42
50
|
```no-highlight
|
43
51
|
gcloud beta firebase test ios models list
|
44
52
|
```
|
45
|
-
This will return a list of supported devices and their identifiers.
|
46
53
|
|
47
|
-
|
54
|
+
to get a list of supported devices and their identifiers.
|
48
55
|
|
56
|
+
Alternatively all available devices can also be seen [here](https://firebase.google.com/docs/test-lab/ios/available-testing-devices).
|
49
57
|
|
50
58
|
## Actions
|
51
59
|
|
52
60
|
### `firebase_test_lab_ios_xctest`
|
53
61
|
|
54
62
|
Submit your iOS app to Firebase Test Lab and run XCTest. Refer to [this document](https://firebase.google.com/docs/test-lab/ios/command-line) for more details about Firebase Test Lab specific arguments.
|
63
|
+
|
55
64
|
```ruby
|
56
65
|
scan(
|
57
66
|
scheme: 'YourApp', # XCTest scheme
|
@@ -76,13 +85,13 @@ firebase_test_lab_ios_xctest(
|
|
76
85
|
|
77
86
|
**Available parameters:**
|
78
87
|
|
79
|
-
- `app_path
|
80
|
-
- `gcp_project
|
81
|
-
- `oauth_key_file_path
|
82
|
-
- `devices
|
83
|
-
- `async
|
84
|
-
- `timeout_sec
|
85
|
-
- `result_storage
|
88
|
+
- `app_path`: You may provide a different path in the local filesystem (e.g: `/path/to/app-bundle.zip`) or on Google Cloud Storage (`gs://your-bucket/path/to/app-bundle.zip`) that points to an app bundle as specified [here](https://firebase.google.com/docs/test-lab/ios/command-line#build_xctests_for_your_app). If a Google Cloud Storage path is used, the service account must have read access to such file.
|
89
|
+
- `gcp_project`: The Google Cloud project name for Firebase Test Lab to run on.
|
90
|
+
- `oauth_key_file_path`: The path to the Google Cloud service account key. If not set, the Google application default credential will be used.
|
91
|
+
- `devices`: An array of devices for your app to be tested on. Each device is represented as a ruby hash, with `ios_model_id`, `ios_version_id`, `locale` and `orientation` properties, the first two of which are required. If not set, it will default to iPhone X on iOS 11.2. This array cannot be empty.
|
92
|
+
- `async`: If set to true, the action will not wait for the test results but exit immediately.
|
93
|
+
- `timeout_sec`: After how long will the test be abandoned by Firebase Test Lab. Duration should be given in seconds.
|
94
|
+
- `result_storage`: Designate which location on Google Cloud Storage to store the test results. This should be a directory (e.g: `gs://your-bucket/tests/`)
|
86
95
|
|
87
96
|
## Issues and Feedback
|
88
97
|
|
@@ -14,8 +14,12 @@ module Fastlane
|
|
14
14
|
end
|
15
15
|
|
16
16
|
conf = Plist.parse_xml(xctestrun_files.first.get_input_stream)
|
17
|
-
|
18
|
-
|
17
|
+
size = conf.size
|
18
|
+
if conf['__xctestrun_metadata__']
|
19
|
+
size -= 1
|
20
|
+
end
|
21
|
+
unless size == 1
|
22
|
+
UI.user_error!("The app bundle may contain only one scheme, #{size} found")
|
19
23
|
end
|
20
24
|
_, scheme_conf = conf.first
|
21
25
|
unless scheme_conf["IsUITestBundle"]
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fastlane-plugin-firebase_test_lab
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Shihua Zheng
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-
|
11
|
+
date: 2018-11-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|