Skip to content

Commit ea56fce

Browse files
authored
feat(predictions): add predictions v2 (#2902)
1 parent 660c7b0 commit ea56fce

File tree

343 files changed

+11603
-12694
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

343 files changed

+11603
-12694
lines changed

.circleci/config.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ deploy_requires: &deploy_requires
263263
- ios_unit_test_internal_pinpoint
264264
- ios_unit_test_push_notifications
265265
- ios_unit_test_storage
266+
- ios_unit_test_predictions
266267
- macos_unit_test_amplify
267268
- macos_unit_test_awspluginscore
268269
- macos_unit_test_analytics
@@ -273,6 +274,7 @@ deploy_requires: &deploy_requires
273274
- macos_unit_test_internal_pinpoint
274275
- macos_unit_test_push_notifications
275276
- macos_unit_test_storage
277+
- macos_unit_test_predictions
276278
- fortify_scan
277279

278280
workflows:
@@ -360,6 +362,13 @@ workflows:
360362
destination: << pipeline.parameters.ios-destination >>
361363
requires:
362364
- build_amplify_ios_spm
365+
- unit_test:
366+
name: ios_unit_test_predictions
367+
scheme: AWSPredictionsPlugin
368+
sdk: iphonesimulator
369+
destination: << pipeline.parameters.ios-destination >>
370+
requires:
371+
- build_amplify_ios_spm
363372
- unit_test:
364373
name: macos_unit_test_amplify
365374
scheme: Amplify
@@ -430,6 +439,13 @@ workflows:
430439
destination: << pipeline.parameters.macos-destination >>
431440
requires:
432441
- build_amplify_macos_spm
442+
- unit_test:
443+
name: macos_unit_test_predictions
444+
scheme: AWSPredictionsPlugin
445+
sdk: macosx
446+
destination: << pipeline.parameters.macos-destination >>
447+
requires:
448+
- build_amplify_macos_spm
433449
- deploy:
434450
name: deploy unstable
435451
<<: *deploy_requires

.github/workflows/integ_test.yml

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,36 @@ jobs:
9494
project_path: ./AmplifyPlugins/Notifications/Push/Tests/PushNotificationHostApp
9595
scheme: PushNotificationHostApp
9696

97+
predictions-integration-test:
98+
continue-on-error: true
99+
needs: prepare-for-test
100+
runs-on: macos-12
101+
environment: IntegrationTest
102+
steps:
103+
- uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
104+
with:
105+
persist-credentials: false
106+
107+
- name: Make directory
108+
run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
109+
110+
- name: Copy integration test resouces
111+
uses: ./.github/composite_actions/download_test_configuration
112+
with:
113+
resource_subfolder: predictions
114+
aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
115+
aws_region: ${{ secrets.AWS_REGION }}
116+
aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
117+
118+
- name: List the copied configurations
119+
run: ls ~/.aws-amplify/amplify-ios/testconfiguration/
120+
121+
- name: Run Integration test
122+
uses: ./.github/composite_actions/run_xcodebuild_test
123+
with:
124+
project_path: ./AmplifyPlugins/Predictions/Tests/PredictionsHostApp
125+
scheme: AWSPredictionsPluginIntegrationTests
126+
97127
auth-integration-test:
98128
needs: prepare-for-test
99129
runs-on: macos-12
Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<Scheme
3+
LastUpgradeVersion = "1420"
4+
version = "1.3">
5+
<BuildAction
6+
parallelizeBuildables = "YES"
7+
buildImplicitDependencies = "YES">
8+
<BuildActionEntries>
9+
<BuildActionEntry
10+
buildForTesting = "YES"
11+
buildForRunning = "YES"
12+
buildForProfiling = "YES"
13+
buildForArchiving = "YES"
14+
buildForAnalyzing = "YES">
15+
<BuildableReference
16+
BuildableIdentifier = "primary"
17+
BlueprintIdentifier = "AWSPredictionsPlugin"
18+
BuildableName = "AWSPredictionsPlugin"
19+
BlueprintName = "AWSPredictionsPlugin"
20+
ReferencedContainer = "container:">
21+
</BuildableReference>
22+
</BuildActionEntry>
23+
<BuildActionEntry
24+
buildForTesting = "YES"
25+
buildForRunning = "NO"
26+
buildForProfiling = "NO"
27+
buildForArchiving = "NO"
28+
buildForAnalyzing = "NO">
29+
<BuildableReference
30+
BuildableIdentifier = "primary"
31+
BlueprintIdentifier = "AWSPredictionsPluginUnitTests"
32+
BuildableName = "AWSPredictionsPluginUnitTests"
33+
BlueprintName = "AWSPredictionsPluginUnitTests"
34+
ReferencedContainer = "container:">
35+
</BuildableReference>
36+
</BuildActionEntry>
37+
</BuildActionEntries>
38+
</BuildAction>
39+
<TestAction
40+
buildConfiguration = "Debug"
41+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
42+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
43+
shouldUseLaunchSchemeArgsEnv = "YES">
44+
<Testables>
45+
<TestableReference
46+
skipped = "NO">
47+
<BuildableReference
48+
BuildableIdentifier = "primary"
49+
BlueprintIdentifier = "AWSPredictionsPluginUnitTests"
50+
BuildableName = "AWSPredictionsPluginUnitTests"
51+
BlueprintName = "AWSPredictionsPluginUnitTests"
52+
ReferencedContainer = "container:">
53+
</BuildableReference>
54+
</TestableReference>
55+
</Testables>
56+
</TestAction>
57+
<LaunchAction
58+
buildConfiguration = "Debug"
59+
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
60+
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
61+
launchStyle = "0"
62+
useCustomWorkingDirectory = "NO"
63+
ignoresPersistentStateOnLaunch = "NO"
64+
debugDocumentVersioning = "YES"
65+
debugServiceExtension = "internal"
66+
allowLocationSimulation = "YES">
67+
</LaunchAction>
68+
<ProfileAction
69+
buildConfiguration = "Release"
70+
shouldUseLaunchSchemeArgsEnv = "YES"
71+
savedToolIdentifier = ""
72+
useCustomWorkingDirectory = "NO"
73+
debugDocumentVersioning = "YES">
74+
<MacroExpansion>
75+
<BuildableReference
76+
BuildableIdentifier = "primary"
77+
BlueprintIdentifier = "AWSPredictionsPlugin"
78+
BuildableName = "AWSPredictionsPlugin"
79+
BlueprintName = "AWSPredictionsPlugin"
80+
ReferencedContainer = "container:">
81+
</BuildableReference>
82+
</MacroExpansion>
83+
</ProfileAction>
84+
<AnalyzeAction
85+
buildConfiguration = "Debug">
86+
</AnalyzeAction>
87+
<ArchiveAction
88+
buildConfiguration = "Release"
89+
revealArchiveInOrganizer = "YES">
90+
</ArchiveAction>
91+
</Scheme>

.swiftpm/xcode/xcshareddata/xcschemes/Amplify-Package.xcscheme

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,48 @@
356356
ReferencedContainer = "container:">
357357
</BuildableReference>
358358
</BuildActionEntry>
359+
<BuildActionEntry
360+
buildForTesting = "YES"
361+
buildForRunning = "YES"
362+
buildForProfiling = "YES"
363+
buildForArchiving = "YES"
364+
buildForAnalyzing = "YES">
365+
<BuildableReference
366+
BuildableIdentifier = "primary"
367+
BlueprintIdentifier = "CoreMLPredictionsPlugin"
368+
BuildableName = "CoreMLPredictionsPlugin"
369+
BlueprintName = "CoreMLPredictionsPlugin"
370+
ReferencedContainer = "container:">
371+
</BuildableReference>
372+
</BuildActionEntry>
373+
<BuildActionEntry
374+
buildForTesting = "YES"
375+
buildForRunning = "YES"
376+
buildForProfiling = "YES"
377+
buildForArchiving = "YES"
378+
buildForAnalyzing = "YES">
379+
<BuildableReference
380+
BuildableIdentifier = "primary"
381+
BlueprintIdentifier = "Amplify_AWSPredictionsPluginUnitTests"
382+
BuildableName = "Amplify_AWSPredictionsPluginUnitTests"
383+
BlueprintName = "Amplify_AWSPredictionsPluginUnitTests"
384+
ReferencedContainer = "container:">
385+
</BuildableReference>
386+
</BuildActionEntry>
387+
<BuildActionEntry
388+
buildForTesting = "YES"
389+
buildForRunning = "YES"
390+
buildForProfiling = "YES"
391+
buildForArchiving = "YES"
392+
buildForAnalyzing = "YES">
393+
<BuildableReference
394+
BuildableIdentifier = "primary"
395+
BlueprintIdentifier = "Amplify_AWSCognitoAuthPluginUnitTests"
396+
BuildableName = "Amplify_AWSCognitoAuthPluginUnitTests"
397+
BlueprintName = "Amplify_AWSCognitoAuthPluginUnitTests"
398+
ReferencedContainer = "container:">
399+
</BuildableReference>
400+
</BuildActionEntry>
359401
</BuildActionEntries>
360402
</BuildAction>
361403
<TestAction
@@ -519,6 +561,24 @@
519561
ReferencedContainer = "container:">
520562
</BuildableReference>
521563
</TestableReference>
564+
<TestableReference
565+
skipped = "NO">
566+
<BuildableReference
567+
BuildableIdentifier = "primary"
568+
BlueprintIdentifier = "CoreMLPredictionsPluginUnitTests"
569+
BuildableName = "CoreMLPredictionsPluginUnitTests"
570+
BlueprintName = "CoreMLPredictionsPluginUnitTests"
571+
ReferencedContainer = "container:">
572+
</BuildableReference>
573+
<SkippedTests>
574+
<Test
575+
Identifier = "CoreMLVisionAdapterTests/testDetectEntities()">
576+
</Test>
577+
<Test
578+
Identifier = "CoreMLVisionAdapterTests/testDetectLabels()">
579+
</Test>
580+
</SkippedTests>
581+
</TestableReference>
522582
</Testables>
523583
</TestAction>
524584
<LaunchAction
Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
//
2+
// Copyright Amazon.com Inc. or its affiliates.
3+
// All Rights Reserved.
4+
//
5+
// SPDX-License-Identifier: Apache-2.0
6+
//
7+
8+
import Foundation
9+
10+
extension PredictionsError {
11+
public struct ClientError: Equatable {
12+
public static func == (lhs: PredictionsError.ClientError, rhs: PredictionsError.ClientError) -> Bool {
13+
lhs.description == rhs.description
14+
&& lhs.recoverySuggestion == rhs.recoverySuggestion
15+
}
16+
17+
public let description: ErrorDescription
18+
public let recoverySuggestion: RecoverySuggestion
19+
public let underlyingError: Error?
20+
21+
public init(
22+
description: ErrorDescription,
23+
recoverySuggestion: RecoverySuggestion,
24+
underlyingError: Error? = nil
25+
) {
26+
self.description = description
27+
self.recoverySuggestion = recoverySuggestion
28+
self.underlyingError = underlyingError
29+
}
30+
}
31+
}
32+
33+
extension PredictionsError.ClientError {
34+
public static let imageNotFound = Self(
35+
description: "Something was wrong with the image file, make sure it exists.",
36+
recoverySuggestion: "Try choosing an image and sending it again."
37+
)
38+
39+
public static let invalidRegion = Self(
40+
description: "Invalid region",
41+
recoverySuggestion: "Ensure that you provide a valid region in your configuration"
42+
)
43+
44+
public static let missingSourceLanguage = Self(
45+
description: "Source language is not provided",
46+
recoverySuggestion: "Provide a supported source language"
47+
)
48+
49+
public static let missingTargetLanguage = Self(
50+
description: "Target language is not provided",
51+
recoverySuggestion: "Provide a supported target language"
52+
)
53+
54+
public static let onlineIdentityServiceUnavailable = Self(
55+
description: "Online identify service is not available",
56+
recoverySuggestion: "Please check if the values are proprely initialized"
57+
)
58+
59+
public static let offlineIdentityServiceUnavailable = Self(
60+
description: "Offline identify service is not available",
61+
recoverySuggestion: "Please check if the values are proprely initialized"
62+
)
63+
64+
public static let onlineInterpretServiceUnavailable = Self(
65+
description: "Online interpret service is not available",
66+
recoverySuggestion: "Please check if the values are proprely initialized"
67+
)
68+
69+
public static let offlineInterpretServiceUnavailable = Self(
70+
description: "Offline interpret service is not available",
71+
recoverySuggestion: "Please check if the values are proprely initialized"
72+
)
73+
74+
public static let unableToInterpretText = Self(
75+
description: "No result found for the text",
76+
recoverySuggestion: "Interpret text did not produce any result"
77+
)
78+
}

0 commit comments

Comments
 (0)