From 2604241a75bf96fe1185e0abb4f7cf905a697d42 Mon Sep 17 00:00:00 2001
From: Sebastian Villena <97059974+ruisebas@users.noreply.github.com>
Date: Thu, 2 Nov 2023 14:42:37 -0400
Subject: [PATCH 1/3] chore: Adding caching and retries to Integration Tests
workflows (#3339)
---
.../get_platform_parameters/action.yml | 60 +++++++
.github/workflows/integ_test.yml | 36 +----
.github/workflows/integ_test_analytics.yml | 105 +++---------
.github/workflows/integ_test_api.yml | 34 ++--
.../workflows/integ_test_api_functional.yml | 105 +++---------
.../integ_test_api_graphql_auth_directive.yml | 75 +++------
.../workflows/integ_test_api_graphql_iam.yml | 75 +++------
.../integ_test_api_graphql_lambda_auth.yml | 105 +++---------
.../integ_test_api_graphql_lazy_load.yml | 75 +++------
.../integ_test_api_graphql_user_pool.yml | 75 +++------
.github/workflows/integ_test_api_rest_iam.yml | 105 +++---------
.../integ_test_api_rest_user_pool.yml | 75 +++------
.github/workflows/integ_test_auth.yml | 140 ++++------------
.github/workflows/integ_test_datastore.yml | 32 +---
.../integ_test_datastore_auth_cognito.yml | 111 +++----------
.../integ_test_datastore_auth_iam.yml | 111 +++----------
.../workflows/integ_test_datastore_base.yml | 111 +++----------
.../workflows/integ_test_datastore_cpk.yml | 111 +++----------
.../integ_test_datastore_lazy_load.yml | 111 +++----------
.../integ_test_datastore_multi_auth.yml | 111 +++----------
.github/workflows/integ_test_datastore_v2.yml | 111 +++----------
.github/workflows/integ_test_geo.yml | 107 +++---------
.github/workflows/integ_test_logging.yml | 105 +++---------
.github/workflows/integ_test_predictions.yml | 120 +++-----------
.../integ_test_push_notifications.yml | 153 ++++++++----------
.github/workflows/integ_test_storage.yml | 105 +++---------
.github/workflows/run_integration_tests.yml | 122 ++++++++++++++
.gitignore | 6 -
.../contents.xcworkspacedata | 7 -
.../xcshareddata/IDEWorkspaceChecks.plist | 8 -
.../xcshareddata/swiftpm/Package.resolved | 113 -------------
.../contents.xcworkspacedata | 7 -
.../xcshareddata/IDEWorkspaceChecks.plist | 8 -
.../xcshareddata/swiftpm/Package.resolved | 113 -------------
.../contents.xcworkspacedata | 7 -
.../xcshareddata/IDEWorkspaceChecks.plist | 8 -
.../xcshareddata/swiftpm/Package.resolved | 113 -------------
.../contents.xcworkspacedata | 7 -
.../xcshareddata/IDEWorkspaceChecks.plist | 8 -
.../xcshareddata/swiftpm/Package.resolved | 113 -------------
.../contents.xcworkspacedata | 7 -
.../xcshareddata/IDEWorkspaceChecks.plist | 8 -
.../xcshareddata/swiftpm/Package.resolved | 113 -------------
.../contents.xcworkspacedata | 7 -
.../xcshareddata/IDEWorkspaceChecks.plist | 8 -
.../xcshareddata/swiftpm/Package.resolved | 113 -------------
46 files changed, 697 insertions(+), 2663 deletions(-)
create mode 100644 .github/composite_actions/get_platform_parameters/action.yml
create mode 100644 .github/workflows/run_integration_tests.yml
delete mode 100644 AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
delete mode 100644 AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
delete mode 100644 AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
delete mode 100644 AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
delete mode 100644 AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
delete mode 100644 AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
delete mode 100644 AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
delete mode 100644 AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
delete mode 100644 AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
delete mode 100644 AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
delete mode 100644 AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
delete mode 100644 AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
delete mode 100644 AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
delete mode 100644 AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
delete mode 100644 AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
delete mode 100644 AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
delete mode 100644 AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
delete mode 100644 AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
diff --git a/.github/composite_actions/get_platform_parameters/action.yml b/.github/composite_actions/get_platform_parameters/action.yml
new file mode 100644
index 0000000000..d007eca053
--- /dev/null
+++ b/.github/composite_actions/get_platform_parameters/action.yml
@@ -0,0 +1,60 @@
+name: 'Get the build parameters for a given platform'
+inputs:
+ platform:
+ description: 'The name of the platform. Valid values are iOS, tvOS, watchOS and macOS'
+ required: true
+ type: string
+ xcode_version:
+ description: 'The version of Xcode. Valid values are 14.3 and 15.0'
+ required: true
+ type: string
+outputs:
+ destination:
+ description: "The destination associated with the given platform and Xcode version"
+ value: ${{ steps.platform.outputs.destination }}
+ sdk:
+ description: "The SDK associated with the given platform"
+ value: ${{ steps.platform.outputs.sdk }}
+runs:
+ using: "composite"
+ steps:
+ - id: platform
+ run: |
+ PLATFORM=${{ inputs.platform }}
+ case $PLATFORM in
+ iOS|tvOS|watchOS|macOS) ;;
+ *) echo "Unsupported platform: $PLATFORM"; exit 1 ;;
+ esac
+
+ XCODE_VERSION=${{ inputs.xcode_version }}
+ case $XCODE_VERSION in
+ 14.3|15.0) ;;
+ *) echo "Unsupported Xcode version: $XCODE_VERSION"; exit 1 ;;
+ esac
+
+ DESTINATION_MAPPING='{
+ "14.3": {
+ "iOS": "platform=iOS Simulator,name=iPhone 14,OS=16.4",
+ "tvOS": "platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=16.4",
+ "watchOS": "platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=9.4",
+ "macOS": "platform=macOS,arch=x86_64"
+ },
+ "15.0": {
+ "iOS": "platform=iOS Simulator,name=iPhone 15,OS=latest",
+ "tvOS": "platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest",
+ "watchOS": "platform=watchOS Simulator,name=Apple Watch Series 9 (45mm),OS=latest",
+ "macOS": "platform=macOS,arch=x86_64"
+ }
+ }'
+
+ SDK_MAPPING='{
+ "iOS": "iphonesimulator",
+ "tvOS": "appletvsimulator",
+ "watchOS": "watchsimulator",
+ "macOS": "macosx"
+ }'
+
+ echo "destination=$(echo $DESTINATION_MAPPING | jq -r ."\"$XCODE_VERSION\"".$PLATFORM)" >> $GITHUB_OUTPUT
+ echo "sdk=$(echo $SDK_MAPPING | jq -r .$PLATFORM)" >> $GITHUB_OUTPUT
+ shell: bash
+
diff --git a/.github/workflows/integ_test.yml b/.github/workflows/integ_test.yml
index e1e08c6b41..fb89cceacb 100644
--- a/.github/workflows/integ_test.yml
+++ b/.github/workflows/integ_test.yml
@@ -1,12 +1,6 @@
name: Integration Tests
on:
workflow_dispatch:
- workflow_call:
- inputs:
- identifier:
- required: true
- type: string
-
push:
branches: [main]
@@ -19,53 +13,37 @@ concurrency:
cancel-in-progress: ${{ github.ref_name != 'main'}}
jobs:
- prepare-for-test:
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Verify copy resources
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: NA
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
analytics-test:
- needs: prepare-for-test
+ name: Analytics Integration Tests
uses: ./.github/workflows/integ_test_analytics.yml
secrets: inherit
push-notifications-test:
- needs: prepare-for-test
+ name: Push Notifications Integration Tests
uses: ./.github/workflows/integ_test_push_notifications.yml
secrets: inherit
predictions-test:
- needs: prepare-for-test
+ name: Predictions Integration Tests
uses: ./.github/workflows/integ_test_predictions.yml
secrets: inherit
auth-test:
- needs: prepare-for-test
+ name: Auth Integration Tests
uses: ./.github/workflows/integ_test_auth.yml
secrets: inherit
geo-test:
- needs: prepare-for-test
+ name: Geo Integration Tests
uses: ./.github/workflows/integ_test_geo.yml
secrets: inherit
storage-test:
- needs: prepare-for-test
+ name: Storage Integration Tests
uses: ./.github/workflows/integ_test_storage.yml
secrets: inherit
logging-test:
- needs: prepare-for-test
+ name: Logging Integration Tests
uses: ./.github/workflows/integ_test_logging.yml
secrets: inherit
diff --git a/.github/workflows/integ_test_analytics.yml b/.github/workflows/integ_test_analytics.yml
index 8dccaee2d8..f88d59e0ce 100644
--- a/.github/workflows/integ_test_analytics.yml
+++ b/.github/workflows/integ_test_analytics.yml
@@ -24,88 +24,23 @@ permissions:
contents: read
jobs:
- analytics-integration-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: analytics
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Analytics/Tests/AnalyticsHostApp
- scheme: AWSPinpointAnalyticsPluginIntegrationTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=latest'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- analytics-integration-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: analytics
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Analytics/Tests/AnalyticsHostApp
- scheme: AWSPinpointAnalyticsPluginIntegrationTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
-
- analytics-integration-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: analytics
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Analytics/Tests/AnalyticsHostApp
- scheme: AWSPinpointAnalyticsPluginIntegrationTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
+ analytics-integration-tests:
+ name: Analytics Integration Tests
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSPinpointAnalyticsPluginIntegrationTestsWatch' || 'AWSPinpointAnalyticsPluginIntegrationTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSPinpointAnalyticsPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/Analytics/Tests/AnalyticsHostApp
+ xcode_version: '14.3'
+ resource_subfolder: analytics
+ timeout-minutes: 30
+ secrets: inherit
diff --git a/.github/workflows/integ_test_api.yml b/.github/workflows/integ_test_api.yml
index f4966eeccd..eee3d88d0a 100644
--- a/.github/workflows/integ_test_api.yml
+++ b/.github/workflows/integ_test_api.yml
@@ -10,66 +10,50 @@ permissions:
concurrency:
group: ${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
+ cancel-in-progress: ${{ github.ref_name != 'main'}}
jobs:
- prepare-for-test:
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Verify copy resources
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: NA
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
functional-test:
- needs: prepare-for-test
+ name: Functional Tests
uses: ./.github/workflows/integ_test_api_functional.yml
secrets: inherit
graphql-user-pool-test:
if: ${{ false }}
- needs: prepare-for-test
+ name: GraphQL | User Pool Tests
uses: ./.github/workflows/integ_test_api_graphql_user_pool.yml
secrets: inherit
graphql-auth-directive-test:
if: ${{ false }}
- needs: prepare-for-test
+ name: GraphQL | Auth Directive Tests
uses: ./.github/workflows/integ_test_api_graphql_auth_directive.yml
secrets: inherit
graphql-iam-test:
if: ${{ false }}
- needs: prepare-for-test
+ name: GraphQL | IAM Tests
uses: ./.github/workflows/integ_test_api_graphql_iam.yml
secrets: inherit
graphql-lambda-auth-test:
- needs: prepare-for-test
+ name: GraphQL | Lambda Tests
uses: ./.github/workflows/integ_test_api_graphql_lambda_auth.yml
secrets: inherit
graphql-lazy-load-test:
if: ${{ false }}
- needs: prepare-for-test
+ name: GraphQL | Lazy Load Tests
uses: ./.github/workflows/integ_test_api_graphql_lazy_load.yml
secrets: inherit
rest-user-pool-test:
if: ${{ false }}
- needs: prepare-for-test
+ name: REST | User Pool Tests
uses: ./.github/workflows/integ_test_api_rest_user_pool.yml
secrets: inherit
rest-iam-test:
- needs: prepare-for-test
+ name: REST | IAM Tests
uses: ./.github/workflows/integ_test_api_rest_iam.yml
secrets: inherit
diff --git a/.github/workflows/integ_test_api_functional.yml b/.github/workflows/integ_test_api_functional.yml
index ac1db905ed..c8874243fe 100644
--- a/.github/workflows/integ_test_api_functional.yml
+++ b/.github/workflows/integ_test_api_functional.yml
@@ -24,88 +24,23 @@ permissions:
contents: read
jobs:
- api-functional-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginFunctionalTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- api-functional-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginFunctionalTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
-
- api-functional-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginFunctionalTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
+ api-functional-tests:
+ name: API Integration Tests | Functional
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSAPIPluginFunctionalTestsWatch' || 'AWSAPIPluginFunctionalTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSAPIPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/API/Tests/APIHostApp
+ xcode_version: '14.3'
+ resource_subfolder: api
+ timeout-minutes: 45
+ secrets: inherit
diff --git a/.github/workflows/integ_test_api_graphql_auth_directive.yml b/.github/workflows/integ_test_api_graphql_auth_directive.yml
index 22f1fc95be..46ff30d925 100644
--- a/.github/workflows/integ_test_api_graphql_auth_directive.yml
+++ b/.github/workflows/integ_test_api_graphql_auth_directive.yml
@@ -19,59 +19,22 @@ permissions:
contents: read
jobs:
- api-graphql-auth-directive-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginGraphQLAuthDirectiveTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- api-graphql-auth-directive-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginGraphQLAuthDirectiveTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
\ No newline at end of file
+ api-graphql-auth-directive-tests:
+ name: API Integration Tests | GraphQL Auth Directive
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: AWSAPIPluginGraphQLAuthDirectiveTests
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSAPIPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/API/Tests/APIHostApp
+ xcode_version: '14.3'
+ resource_subfolder: api
+ timeout-minutes: 45
+ secrets: inherit
diff --git a/.github/workflows/integ_test_api_graphql_iam.yml b/.github/workflows/integ_test_api_graphql_iam.yml
index c5cdfa6082..94dccec965 100644
--- a/.github/workflows/integ_test_api_graphql_iam.yml
+++ b/.github/workflows/integ_test_api_graphql_iam.yml
@@ -19,59 +19,22 @@ permissions:
contents: read
jobs:
- api-graphql-iam-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginGraphQLIAMTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- api-graphql-iam-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginGraphQLIAMTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
+ api-graphql-iam-tests:
+ name: API Integration Tests | GraphQL IAM
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: AWSAPIPluginGraphQLIAMTests
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSAPIPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/API/Tests/APIHostApp
+ xcode_version: '14.3'
+ resource_subfolder: api
+ timeout-minutes: 45
+ secrets: inherit
diff --git a/.github/workflows/integ_test_api_graphql_lambda_auth.yml b/.github/workflows/integ_test_api_graphql_lambda_auth.yml
index 5ed3b0cda9..f1f699f851 100644
--- a/.github/workflows/integ_test_api_graphql_lambda_auth.yml
+++ b/.github/workflows/integ_test_api_graphql_lambda_auth.yml
@@ -24,88 +24,23 @@ permissions:
contents: read
jobs:
- api-graphql-lambda-auth-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginGraphQLLambdaAuthTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- api-graphql-lambda-auth-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginGraphQLLambdaAuthTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
-
- api-graphql-lambda-auth-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginGraphQLLambdaAuthTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
+ api-graphql-lambda-auth-tests:
+ name: API Integration Tests | GraphQL Lambda
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSAPIPluginGraphQLLambdaAuthTestsWatch' || 'AWSAPIPluginGraphQLLambdaAuthTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSAPIPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/API/Tests/APIHostApp
+ xcode_version: '14.3'
+ resource_subfolder: api
+ timeout-minutes: 45
+ secrets: inherit
diff --git a/.github/workflows/integ_test_api_graphql_lazy_load.yml b/.github/workflows/integ_test_api_graphql_lazy_load.yml
index e731ebe3f0..332e71eec5 100644
--- a/.github/workflows/integ_test_api_graphql_lazy_load.yml
+++ b/.github/workflows/integ_test_api_graphql_lazy_load.yml
@@ -19,59 +19,22 @@ permissions:
contents: read
jobs:
- api-lazy-load-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginLazyLoadTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- api-lazy-load-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginLazyLoadTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
+ api-lazy-load-tests:
+ name: API Integration Tests | GraphQL Lazy Load
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: AWSAPIPluginLazyLoadTests
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSAPIPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/API/Tests/APIHostApp
+ xcode_version: '14.3'
+ resource_subfolder: api
+ timeout-minutes: 45
+ secrets: inherit
diff --git a/.github/workflows/integ_test_api_graphql_user_pool.yml b/.github/workflows/integ_test_api_graphql_user_pool.yml
index 75944dc9ca..e3f10fd1eb 100644
--- a/.github/workflows/integ_test_api_graphql_user_pool.yml
+++ b/.github/workflows/integ_test_api_graphql_user_pool.yml
@@ -19,59 +19,22 @@ permissions:
contents: read
jobs:
- api-graphql-user-pool-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginGraphQLUserPoolTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- api-graphql-user-pool-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginGraphQLUserPoolTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
+ api-graphql-user-pool-tests:
+ name: API Integration Tests | GraphQL User Pool
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: AWSAPIPluginGraphQLUserPoolTests
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSAPIPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/API/Tests/APIHostApp
+ xcode_version: '14.3'
+ resource_subfolder: api
+ timeout-minutes: 45
+ secrets: inherit
\ No newline at end of file
diff --git a/.github/workflows/integ_test_api_rest_iam.yml b/.github/workflows/integ_test_api_rest_iam.yml
index 125c884f2c..aa3b203b3f 100644
--- a/.github/workflows/integ_test_api_rest_iam.yml
+++ b/.github/workflows/integ_test_api_rest_iam.yml
@@ -24,88 +24,23 @@ permissions:
contents: read
jobs:
- api-rest-iam-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginRESTIAMTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- api-rest-iam-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginRESTIAMTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
-
- api-rest-iam-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginRESTIAMTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
+ api-rest-iam-tests:
+ name: API Integration Tests | REST IAM
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSAPIPluginRESTIAMTestsWatch' || 'AWSAPIPluginRESTIAMTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSAPIPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/API/Tests/APIHostApp
+ xcode_version: '14.3'
+ resource_subfolder: api
+ timeout-minutes: 45
+ secrets: inherit
diff --git a/.github/workflows/integ_test_api_rest_user_pool.yml b/.github/workflows/integ_test_api_rest_user_pool.yml
index 186c457baa..c88f87099b 100644
--- a/.github/workflows/integ_test_api_rest_user_pool.yml
+++ b/.github/workflows/integ_test_api_rest_user_pool.yml
@@ -19,59 +19,22 @@ permissions:
contents: read
jobs:
- api-rest-user-pool-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginRESTUserPoolTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- api-rest-user-pool-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: api
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/API/Tests/APIHostApp
- scheme: AWSAPIPluginRESTUserPoolTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
\ No newline at end of file
+ api-rest-user-pool-tests:
+ name: API Integration Tests | REST User Pool
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: AWSAPIPluginRESTUserPoolTests
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSAPIPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/API/Tests/APIHostApp
+ xcode_version: '14.3'
+ resource_subfolder: api
+ timeout-minutes: 45
+ secrets: inherit
diff --git a/.github/workflows/integ_test_auth.yml b/.github/workflows/integ_test_auth.yml
index 277335edca..fef7e2c13a 100644
--- a/.github/workflows/integ_test_auth.yml
+++ b/.github/workflows/integ_test_auth.yml
@@ -29,114 +29,36 @@ permissions:
contents: read
jobs:
- auth-integration-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: auth
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Auth/Tests/AuthHostApp/
- scheme: AuthIntegrationTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- auth-integration-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: auth
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Auth/Tests/AuthHostApp/
- scheme: AuthIntegrationTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
-
- auth-integration-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: auth
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Auth/Tests/AuthHostApp/
- scheme: AuthIntegrationTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
+ auth-integration-tests:
+ name: Auth Integration Tests
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AuthIntegrationTestsWatch' || 'AuthIntegrationTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSCognitoAuthPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/Auth/Tests/AuthHostApp/
+ xcode_version: '14.3'
+ resource_subfolder: auth
+ timeout-minutes: 30
+ secrets: inherit
auth-ui-integration-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.hostedui-ios }}
- runs-on: macos-12
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: auth
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Auth/Tests/AuthHostedUIApp/
- scheme: AuthHostedUIApp
+ if: ${{ inputs.hostedui-ios != 'false' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: AuthHostedUIApp
+ platform: iOS
+ build_cache_key: AWSCognitoAuthPlugin-iOS-latest-build-main
+ project_path: ./AmplifyPlugins/Auth/Tests/AuthHostedUIApp/
+ xcode_version: '14.3'
+ resource_subfolder: auth
+ timeout-minutes: 30
+ secrets: inherit
diff --git a/.github/workflows/integ_test_datastore.yml b/.github/workflows/integ_test_datastore.yml
index 462f28e700..1cd2063062 100644
--- a/.github/workflows/integ_test_datastore.yml
+++ b/.github/workflows/integ_test_datastore.yml
@@ -10,56 +10,40 @@ permissions:
concurrency:
group: ${{ github.head_ref || github.run_id }}
- cancel-in-progress: true
+ cancel-in-progress: ${{ github.ref_name != 'main'}}
jobs:
- prepare-for-test:
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Verify copy resources
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: NA
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
datastore-base-test:
- needs: prepare-for-test
+ name: Base Tests
uses: ./.github/workflows/integ_test_datastore_base.yml
secrets: inherit
datastore-auth-iam-test:
- needs: prepare-for-test
+ name: Auth IAM Tests
uses: ./.github/workflows/integ_test_datastore_auth_iam.yml
secrets: inherit
datastore-cpk-test:
- needs: prepare-for-test
+ name: CPK Tests
uses: ./.github/workflows/integ_test_datastore_cpk.yml
secrets: inherit
datastore-lazy-load-test:
- needs: prepare-for-test
+ name: Lazy Load Tests
uses: ./.github/workflows/integ_test_datastore_lazy_load.yml
secrets: inherit
datastore-multi-auth-test:
- needs: prepare-for-test
+ name: Multi Auth Tests
uses: ./.github/workflows/integ_test_datastore_multi_auth.yml
secrets: inherit
datastore-transformer-v2-test:
- needs: prepare-for-test
+ name: Transformer V2 Tests
uses: ./.github/workflows/integ_test_datastore_v2.yml
secrets: inherit
datastore-auth-cognito-test:
- needs: prepare-for-test
+ name: Auth Cognito Tests
uses: ./.github/workflows/integ_test_datastore_auth_cognito.yml
secrets: inherit
diff --git a/.github/workflows/integ_test_datastore_auth_cognito.yml b/.github/workflows/integ_test_datastore_auth_cognito.yml
index 8da62dc393..7ed891f883 100644
--- a/.github/workflows/integ_test_datastore_auth_cognito.yml
+++ b/.github/workflows/integ_test_datastore_auth_cognito.yml
@@ -24,94 +24,23 @@ permissions:
contents: read
jobs:
- datastore-integration-auth-cognito-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginAuthCognitoTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-auth-cognito-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginAuthCognitoTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-auth-cognito-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginAuthCognitoTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
+ datastore-integration-auth-cognito-tests:
+ name: DataStore Integration Tests | Auth Cognito
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSDataStorePluginAuthCognitoTestsWatch' || 'AWSDataStorePluginAuthCognitoTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSDataStorePlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
+ xcode_version: '14.3'
+ resource_subfolder: datastore
+ timeout-minutes: 120
+ secrets: inherit
diff --git a/.github/workflows/integ_test_datastore_auth_iam.yml b/.github/workflows/integ_test_datastore_auth_iam.yml
index 568834765e..3b2f4af585 100644
--- a/.github/workflows/integ_test_datastore_auth_iam.yml
+++ b/.github/workflows/integ_test_datastore_auth_iam.yml
@@ -24,94 +24,23 @@ permissions:
contents: read
jobs:
- datastore-integration-auth-iam-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginAuthIAMTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-auth-iam-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginAuthIAMTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-auth-iam-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginAuthIAMTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
+ datastore-integration-auth-iam-tests:
+ name: DataStore Integration Tests | Auth IAM
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSDataStorePluginAuthIAMTestsWatch' || 'AWSDataStorePluginAuthIAMTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSDataStorePlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
+ xcode_version: '14.3'
+ resource_subfolder: datastore
+ timeout-minutes: 120
+ secrets: inherit
diff --git a/.github/workflows/integ_test_datastore_base.yml b/.github/workflows/integ_test_datastore_base.yml
index ba45454837..06c51f8785 100644
--- a/.github/workflows/integ_test_datastore_base.yml
+++ b/.github/workflows/integ_test_datastore_base.yml
@@ -24,94 +24,23 @@ permissions:
contents: read
jobs:
- datastore-integration-test-base-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginIntegrationTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-test-base-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginIntegrationTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-test-base-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginIntegrationTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
+ datastore-integration-tests:
+ name: DataStore Integration Tests | Base
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSDataStorePluginIntegrationTestsWatch' || 'AWSDataStorePluginIntegrationTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSDataStorePlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
+ xcode_version: '14.3'
+ resource_subfolder: datastore
+ timeout-minutes: 120
+ secrets: inherit
diff --git a/.github/workflows/integ_test_datastore_cpk.yml b/.github/workflows/integ_test_datastore_cpk.yml
index 1f48780ee7..8e97bb1e07 100644
--- a/.github/workflows/integ_test_datastore_cpk.yml
+++ b/.github/workflows/integ_test_datastore_cpk.yml
@@ -24,94 +24,23 @@ permissions:
contents: read
jobs:
- datastore-integration-cpk-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginCPKTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-cpk-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginCPKTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-cpk-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginCPKTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
\ No newline at end of file
+ datastore-integration-cpk-tests:
+ name: DataStore Integration Tests | CPK
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSDataStorePluginCPKTestsWatch' || 'AWSDataStorePluginCPKTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSDataStorePlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
+ xcode_version: '14.3'
+ resource_subfolder: datastore
+ timeout-minutes: 120
+ secrets: inherit
diff --git a/.github/workflows/integ_test_datastore_lazy_load.yml b/.github/workflows/integ_test_datastore_lazy_load.yml
index ab0e5f8cff..388d28f1d2 100644
--- a/.github/workflows/integ_test_datastore_lazy_load.yml
+++ b/.github/workflows/integ_test_datastore_lazy_load.yml
@@ -24,94 +24,23 @@ permissions:
contents: read
jobs:
- datastore-integration-lazy-load-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginLazyLoadTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-lazy-load-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginLazyLoadTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-lazy-load-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginLazyLoadTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
+ datastore-integration-lazy-load-tests:
+ name: DataStore Integration Tests | Lazy Load
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSDataStorePluginLazyLoadTestsWatch' || 'AWSDataStorePluginLazyLoadTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSDataStorePlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
+ xcode_version: '14.3'
+ resource_subfolder: datastore
+ timeout-minutes: 120
+ secrets: inherit
diff --git a/.github/workflows/integ_test_datastore_multi_auth.yml b/.github/workflows/integ_test_datastore_multi_auth.yml
index 93fc522563..e8900c4f24 100644
--- a/.github/workflows/integ_test_datastore_multi_auth.yml
+++ b/.github/workflows/integ_test_datastore_multi_auth.yml
@@ -24,94 +24,23 @@ permissions:
contents: read
jobs:
- datastore-integration-multi-auth-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginMultiAuthTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-multi-auth-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginMultiAuthTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-multi-auth-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginMultiAuthTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
+ datastore-integration-multi-auth-tests:
+ name: DataStore Integration Tests | Multi Auth
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSDataStorePluginMultiAuthTestsWatch' || 'AWSDataStorePluginMultiAuthTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSDataStorePlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
+ xcode_version: '14.3'
+ resource_subfolder: datastore
+ timeout-minutes: 120
+ secrets: inherit
diff --git a/.github/workflows/integ_test_datastore_v2.yml b/.github/workflows/integ_test_datastore_v2.yml
index 262a8a6aaa..f842b38c13 100644
--- a/.github/workflows/integ_test_datastore_v2.yml
+++ b/.github/workflows/integ_test_datastore_v2.yml
@@ -24,94 +24,23 @@ permissions:
contents: read
jobs:
- datastore-integration-v2-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginV2Tests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-v2-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginV2Tests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
-
- datastore-integration-v2-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- timeout-minutes: 60
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: datastore
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
- scheme: AWSDataStorePluginV2TestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
- other_flags: '-test-iterations 3 -retry-tests-on-failure'
+ datastore-integration-v2-tests:
+ name: DataStore Integration Tests | Transformer V2
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSDataStorePluginV2TestsWatch' || 'AWSDataStorePluginV2Tests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSDataStorePlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/DataStore/Tests/DataStoreHostApp
+ xcode_version: '14.3'
+ resource_subfolder: datastore
+ timeout-minutes: 120
+ secrets: inherit
diff --git a/.github/workflows/integ_test_geo.yml b/.github/workflows/integ_test_geo.yml
index 4ba3bcf0e6..7effa17ab9 100644
--- a/.github/workflows/integ_test_geo.yml
+++ b/.github/workflows/integ_test_geo.yml
@@ -1,4 +1,4 @@
-name: Integration Test | Geo
+name: Integration Tests | Geo
on:
workflow_dispatch:
inputs:
@@ -24,88 +24,23 @@ permissions:
contents: read
jobs:
- geo-integration-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: geo
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Geo/Tests/GeoHostApp/
- scheme: AWSLocationGeoPluginIntegrationTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- geo-integration-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: geo
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Geo/Tests/GeoHostApp/
- scheme: AWSLocationGeoPluginIntegrationTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
-
- geo-integration-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: geo
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Geo/Tests/GeoHostApp/
- scheme: AWSLocationGeoPluginIntegrationTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
+ geo-integration-tests:
+ name: Geo Integration Tests
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSLocationGeoPluginIntegrationTestsWatch' || 'AWSLocationGeoPluginIntegrationTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSLocationGeoPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/Geo/Tests/GeoHostApp/
+ xcode_version: '14.3'
+ resource_subfolder: geo
+ timeout-minutes: 30
+ secrets: inherit
diff --git a/.github/workflows/integ_test_logging.yml b/.github/workflows/integ_test_logging.yml
index 738a5bcf75..770b87a2fb 100644
--- a/.github/workflows/integ_test_logging.yml
+++ b/.github/workflows/integ_test_logging.yml
@@ -24,88 +24,23 @@ permissions:
contents: read
jobs:
- logging-integration-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: logging
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Logging/Tests/AWSCloudWatchLoggingPluginHostApp
- scheme: AWSCloudWatchLoggingPluginIntegrationTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- logging-integration-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: logging
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Logging/Tests/AWSCloudWatchLoggingPluginHostApp
- scheme: AWSCloudWatchLoggingPluginIntegrationTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
-
- logging-integration-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: logging
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Logging/Tests/AWSCloudWatchLoggingPluginHostApp
- scheme: AWSCloudWatchLoggingPluginIntegrationTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 9 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_15.0.app'
+ logging-integration-tests:
+ name: Logging Integration Tests
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSCloudWatchLoggingPluginIntegrationTestsWatch' || 'AWSCloudWatchLoggingPluginIntegrationTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSCloudWatchLoggingPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/Logging/Tests/AWSCloudWatchLoggingPluginHostApp
+ xcode_version: ${{ matrix.platform == 'watchOS' && '15.0' || '14.3' }}
+ resource_subfolder: logging
+ timeout-minutes: 45
+ secrets: inherit
diff --git a/.github/workflows/integ_test_predictions.yml b/.github/workflows/integ_test_predictions.yml
index b661a77541..a555d2d43b 100644
--- a/.github/workflows/integ_test_predictions.yml
+++ b/.github/workflows/integ_test_predictions.yml
@@ -24,103 +24,23 @@ permissions:
contents: read
jobs:
- predictions-integration-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- continue-on-error: true
- timeout-minutes: 30
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: predictions
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: List the copied configurations
- run: ls ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Predictions/Tests/PredictionsHostApp
- scheme: AWSPredictionsPluginIntegrationTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- predictions-integration-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- continue-on-error: true
- timeout-minutes: 30
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: predictions
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: List the copied configurations
- run: ls ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Predictions/Tests/PredictionsHostApp
- scheme: AWSPredictionsPluginIntegrationTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
-
- predictions-integration-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- continue-on-error: true
- timeout-minutes: 30
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: predictions
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG }}
-
- - name: List the copied configurations
- run: ls ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Predictions/Tests/PredictionsHostApp
- scheme: AWSPredictionsPluginIntegrationTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
+ predictions-integration-tests:
+ name: Predictions Integration Tests
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSPredictionsPluginIntegrationTestsWatch' || 'AWSPredictionsPluginIntegrationTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSPredictionsPlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/Predictions/Tests/PredictionsHostApp
+ xcode_version: '14.3'
+ resource_subfolder: predictions
+ timeout-minutes: 30
+ secrets: inherit
diff --git a/.github/workflows/integ_test_push_notifications.yml b/.github/workflows/integ_test_push_notifications.yml
index 242b28667c..0cbc663f54 100644
--- a/.github/workflows/integ_test_push_notifications.yml
+++ b/.github/workflows/integ_test_push_notifications.yml
@@ -24,72 +24,68 @@ permissions:
contents: read
jobs:
- push-notification-integration-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
+ push-notification-integration-tests:
+ name: ${{ matrix.platform }} Tests | PushNotificationHostApp
runs-on: macos-13
- timeout-minutes: 45
+ timeout-minutes: 30
environment: IntegrationTest
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
+ - name: Checkout repository
+ uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 #v3.5.3
with:
persist-credentials: false
-
- - name: Make directory
+
+ - name: Get build parameters for ${{ matrix.platform}}
+ id: platform
+ uses: ./.github/composite_actions/get_platform_parameters
+ with:
+ platform: ${{ matrix.platform }}
+ xcode_version: '14.3'
+
+ - name: Create the test configuration directory
run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
- - name: Copy integration test resouces
+ - name: Download the Integration Test configurations
uses: ./.github/composite_actions/download_test_configuration
with:
resource_subfolder: push-notification
aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
aws_region: ${{ secrets.AWS_REGION }}
aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
+ destination: ~/.aws-amplify/amplify-ios/testconfiguration/
- name: Set up node
uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c
with:
node-version: 16.x
- - name: Run Local Server
- run: |
- cd ./AmplifyPlugins/Notifications/Push/Tests/PushNotificationHostApp/LocalServer
- npm install
- npm start &
- shell: bash
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
+ - name: Attempt to use the dependencies cache
+ id: dependencies-cache
+ timeout-minutes: 4
+ continue-on-error: true
+ uses: actions/cache/restore@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
with:
- project_path: ./AmplifyPlugins/Notifications/Push/Tests/PushNotificationHostApp
- scheme: PushNotificationHostApp
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- push-notification-integration-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- timeout-minutes: 30
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
+ path: ~/Library/Developer/Xcode/DerivedData/Amplify
+ key: amplify-packages-${{ hashFiles('Package.resolved') }}
+ restore-keys: |
+ amplify-packages-
+
+ - name: Attempt to use the provided build cache
+ id: build-cache
+ timeout-minutes: 4
+ continue-on-error: true
+ uses: actions/cache/restore@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: push-notification
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Set up node
- uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c
- with:
- node-version: 16.x
+ path: ${{ github.workspace }}/Build
+ key: AWSPinpointPushNotificationsPlugin-${{ matrix.platform }}-latest-build-main
- name: Run Local Server
run: |
@@ -98,53 +94,32 @@ jobs:
npm start &
shell: bash
- - name: Run Integration test
+ - name: Run ${{ matrix.platform }} Integration Tests
+ id: run-tests
+ continue-on-error: true
uses: ./.github/composite_actions/run_xcodebuild_test
with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'PushNotificationWatchTests' || 'PushNotificationHostApp' }}
+ destination: ${{ steps.platform.outputs.destination }}
+ sdk: ${{ steps.platform.outputs.sdk }}
+ xcode_path: /Applications/Xcode_14.3.app
project_path: ./AmplifyPlugins/Notifications/Push/Tests/PushNotificationHostApp
- scheme: PushNotificationHostApp
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=16.4
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
-
- push-notification-integration-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- runs-on: macos-13
- timeout-minutes: 30
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: push-notification
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Set up node
- uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c
- with:
- node-version: 16.x
-
- - name: Run Local Server
- run: |
- cd ./AmplifyPlugins/Notifications/Push/Tests/PushNotificationHostApp/LocalServer
- npm install
- npm start &
- shell: bash
-
- - name: Run Integration test
+ generate_coverage: false
+ cloned_source_packages_path: ~/Library/Developer/Xcode/DerivedData/Amplify
+ derived_data_path: ${{ github.workspace }}/Build
+ disable_package_resolution: ${{ steps.dependencies-cache.outputs.cache-hit }}
+
+ - name: Retry ${{ matrix.platform }} Integration Tests
+ if: steps.run-tests.outcome=='failure'
+ id: retry-tests
uses: ./.github/composite_actions/run_xcodebuild_test
with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'PushNotificationWatchTests' || 'PushNotificationHostApp' }}
+ destination: ${{ steps.platform.outputs.destination }}
+ sdk: ${{ steps.platform.outputs.sdk }}
+ xcode_path: /Applications/Xcode_14.3.app
project_path: ./AmplifyPlugins/Notifications/Push/Tests/PushNotificationHostApp
- scheme: PushNotificationWatchTests
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=9.4
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
+ generate_coverage: false
+ cloned_source_packages_path: ~/Library/Developer/Xcode/DerivedData/Amplify
+ derived_data_path: ${{ github.workspace }}/Build
+ disable_package_resolution: true
\ No newline at end of file
diff --git a/.github/workflows/integ_test_storage.yml b/.github/workflows/integ_test_storage.yml
index 7e00e05529..af7e50b00f 100644
--- a/.github/workflows/integ_test_storage.yml
+++ b/.github/workflows/integ_test_storage.yml
@@ -24,88 +24,23 @@ permissions:
contents: read
jobs:
- storage-integration-test-iOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.ios }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: storage
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Storage/Tests/StorageHostApp/
- scheme: AWSS3StoragePluginIntegrationTests
- destination: 'platform=iOS Simulator,name=iPhone 14,OS=16.4'
- xcode_path: '/Applications/Xcode_14.3.app'
-
- storage-integration-test-tvOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.tvos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: storage
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Storage/Tests/StorageHostApp/
- scheme: AWSS3StoragePluginIntegrationTests
- destination: platform=tvOS Simulator,name=Apple TV 4K (3rd generation),OS=latest
- sdk: appletvsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
-
- storage-integration-test-watchOS:
- if: ${{ github.event_name != 'workflow_dispatch' || inputs.watchos }}
- runs-on: macos-13
- environment: IntegrationTest
- steps:
- - uses: actions/checkout@2541b1294d2704b0964813337f33b291d3f8596b
- with:
- persist-credentials: false
-
- - name: Make directory
- run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
-
- - name: Copy integration test resouces
- uses: ./.github/composite_actions/download_test_configuration
- with:
- resource_subfolder: storage
- aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
- aws_region: ${{ secrets.AWS_REGION }}
- aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
-
- - name: Run Integration test
- uses: ./.github/composite_actions/run_xcodebuild_test
- with:
- project_path: ./AmplifyPlugins/Storage/Tests/StorageHostApp/
- scheme: AWSS3StoragePluginIntegrationTestsWatch
- destination: platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=latest
- sdk: watchsimulator
- xcode_path: '/Applications/Xcode_14.3.app'
+ storage-integration-tests:
+ name: Storage Integration Tests
+ strategy:
+ fail-fast: false
+ matrix:
+ platform: [iOS, tvOS, watchOS]
+ exclude:
+ - platform: ${{ github.event.inputs.ios == 'false' && 'iOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.tvos == 'false' && 'tvOS' || 'Dummy' }}
+ - platform: ${{ github.event.inputs.watchos == 'false' && 'watchOS' || 'Dummy' }}
+ uses: ./.github/workflows/run_integration_tests.yml
+ with:
+ scheme: ${{ matrix.platform == 'watchOS' && 'AWSS3StoragePluginIntegrationTestsWatch' || 'AWSS3StoragePluginIntegrationTests' }}
+ platform: ${{ matrix.platform }}
+ build_cache_key: AWSS3StoragePlugin-${{ matrix.platform }}-latest-build-main
+ project_path: ./AmplifyPlugins/Storage/Tests/StorageHostApp/
+ xcode_version: '14.3'
+ resource_subfolder: storage
+ timeout-minutes: 30
+ secrets: inherit
diff --git a/.github/workflows/run_integration_tests.yml b/.github/workflows/run_integration_tests.yml
new file mode 100644
index 0000000000..a96200bc3b
--- /dev/null
+++ b/.github/workflows/run_integration_tests.yml
@@ -0,0 +1,122 @@
+name: Run tests for the given parameters
+on:
+ workflow_call:
+ inputs:
+ scheme:
+ description: 'The scheme to run the tests'
+ required: true
+ type: string
+ platform:
+ description: 'The platform in which to run these tests'
+ required: true
+ type: string
+ project_path:
+ required: false
+ type: string
+ xcode_version:
+ description: 'The verion of Xcode used to run these tests'
+ required: true
+ type: string
+ resource_subfolder:
+ required: true
+ type: string
+ timeout-minutes:
+ description: 'The timeout for each execution'
+ required: false
+ type: number
+ default: 30
+ build_cache_key:
+ description: 'The key used to retrieve the build cache'
+ required: true
+ type: string
+
+permissions:
+ id-token: write
+ contents: read
+
+jobs:
+ integration-tests:
+ name: ${{ inputs.platform }} Tests | ${{ inputs.scheme }}
+ runs-on: macos-13
+ if: inputs.platform != 'macOS' # macOS is not supported for Integration Tests
+ timeout-minutes: ${{ inputs.timeout-minutes }}
+ environment: IntegrationTest
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 #v3.5.3
+ with:
+ persist-credentials: false
+
+ - name: Get build parameters for ${{ inputs.platform}}
+ id: platform
+ uses: ./.github/composite_actions/get_platform_parameters
+ with:
+ platform: ${{ inputs.platform }}
+ xcode_version: ${{ inputs.xcode_version }}
+
+ - name: Create the test configuration directory
+ run: mkdir -p ~/.aws-amplify/amplify-ios/testconfiguration/
+
+ - name: Download the Integration Test configurations
+ uses: ./.github/composite_actions/download_test_configuration
+ with:
+ resource_subfolder: ${{ inputs.resource_subfolder }}
+ aws_role_to_assume: ${{ secrets.AWS_ROLE_TO_ASSUME }}
+ aws_region: ${{ secrets.AWS_REGION }}
+ aws_s3_bucket: ${{ secrets.AWS_S3_BUCKET_INTEG_V2 }}
+ destination: ~/.aws-amplify/amplify-ios/testconfiguration/
+
+ - name: Attempt to use the dependencies cache
+ id: dependencies-cache
+ timeout-minutes: 4
+ continue-on-error: true
+ uses: actions/cache/restore@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
+ with:
+ path: ~/Library/Developer/Xcode/DerivedData/Amplify
+ key: amplify-packages-${{ hashFiles('Package.resolved') }}
+ restore-keys: |
+ amplify-packages-
+
+ - name: Attempt to use the provided build cache
+ id: build-cache
+ timeout-minutes: 4
+ continue-on-error: true
+ uses: actions/cache/restore@88522ab9f39a2ea568f7027eddc7d8d8bc9d59c8 # v3.3.1
+ with:
+ path: ${{ github.workspace }}/Build
+ key: ${{ inputs.build_cache_key }}
+
+ - name: Run ${{ inputs.platform }} Integration Tests
+ id: run-tests
+ continue-on-error: true
+ uses: ./.github/composite_actions/run_xcodebuild_test
+ with:
+ scheme: ${{ inputs.scheme }}
+ destination: ${{ steps.platform.outputs.destination }}
+ sdk: ${{ steps.platform.outputs.sdk }}
+ xcode_path: /Applications/Xcode_${{ inputs.xcode_version }}.app
+ project_path: ${{ inputs.project_path }}
+ generate_coverage: false
+ cloned_source_packages_path: ~/Library/Developer/Xcode/DerivedData/Amplify
+ derived_data_path: ${{ github.workspace }}/Build
+ disable_package_resolution: ${{ steps.dependencies-cache.outputs.cache-hit }}
+ test_without_building: false
+ other_flags: -test-iterations 3 -retry-tests-on-failure
+
+ - name: Retry ${{ inputs.platform }} Integration Tests
+ if: steps.run-tests.outcome=='failure'
+ id: retry-tests
+ uses: ./.github/composite_actions/run_xcodebuild_test
+ with:
+ scheme: ${{ inputs.scheme }}
+ destination: ${{ steps.platform.outputs.destination }}
+ sdk: ${{ steps.platform.outputs.sdk }}
+ xcode_path: /Applications/Xcode_${{ inputs.xcode_version }}.app
+ project_path: ${{ inputs.project_path }}
+ generate_coverage: false
+ cloned_source_packages_path: ~/Library/Developer/Xcode/DerivedData/Amplify
+ derived_data_path: ${{ github.workspace }}/Build
+ disable_package_resolution: true
+ # Only attempt to test without building when we are not using any cache.
+ test_without_building: ${{ !steps.build-cache.outputs.cache-hit }}
+ other_flags: -test-iterations 3 -retry-tests-on-failure
diff --git a/.gitignore b/.gitignore
index ee2ee74060..3eb2a64f4c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,12 +16,6 @@ Thumbs.db
*.xcworkspace/
!.swiftpm/xcode/package.xcworkspace
-!AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace
-!AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace
-!AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace
-!AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace
-!AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace
-!AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace
Amplify.xcodeproj/xcuserdata
Amplify.xcworkspace/xcuserdata
xcuserdata
diff --git a/AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 919434a625..0000000000
--- a/AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d981003d..0000000000
--- a/AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
deleted file mode 100644
index 681d2bacf7..0000000000
--- a/AmplifyPlugins/API/Tests/APIHostApp/APIHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "pins" : [
- {
- "identity" : "amplify-swift-utils-notifications",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/aws-amplify/amplify-swift-utils-notifications.git",
- "state" : {
- "revision" : "f970384ad1035732f99259255cd2f97564807e41",
- "version" : "1.1.0"
- }
- },
- {
- "identity" : "aws-appsync-realtime-client-ios",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/aws-amplify/aws-appsync-realtime-client-ios.git",
- "state" : {
- "revision" : "c7ec93dcbbcd8abc90c74203937f207a7fcaa611",
- "version" : "3.1.1"
- }
- },
- {
- "identity" : "aws-crt-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/aws-crt-swift",
- "state" : {
- "revision" : "6feec6c3787877807aa9a00fad09591b96752376",
- "version" : "0.6.1"
- }
- },
- {
- "identity" : "aws-sdk-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/aws-sdk-swift.git",
- "state" : {
- "revision" : "24bae88a2391fe75da8a940a544d1ef6441f5321",
- "version" : "0.13.0"
- }
- },
- {
- "identity" : "cwlcatchexception",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/mattgallagher/CwlCatchException.git",
- "state" : {
- "revision" : "3b123999de19bf04905bc1dfdb76f817b0f2cc00",
- "version" : "2.1.2"
- }
- },
- {
- "identity" : "cwlpreconditiontesting",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git",
- "state" : {
- "revision" : "a23ded2c91df9156628a6996ab4f347526f17b6b",
- "version" : "2.1.2"
- }
- },
- {
- "identity" : "smithy-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/smithy-swift",
- "state" : {
- "revision" : "7b28da158d92cd06a3549140d43b8fbcf64a94a6",
- "version" : "0.15.0"
- }
- },
- {
- "identity" : "sqlite.swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/stephencelis/SQLite.swift.git",
- "state" : {
- "revision" : "5f5ad81ac0d0a0f3e56e39e646e8423c617df523",
- "version" : "0.13.2"
- }
- },
- {
- "identity" : "starscream",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/daltoniam/Starscream",
- "state" : {
- "revision" : "df8d82047f6654d8e4b655d1b1525c64e1059d21",
- "version" : "4.0.4"
- }
- },
- {
- "identity" : "swift-collections",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-collections",
- "state" : {
- "revision" : "937e904258d22af6e447a0b72c0bc67583ef64a2",
- "version" : "1.0.4"
- }
- },
- {
- "identity" : "swift-log",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-log.git",
- "state" : {
- "revision" : "532d8b529501fb73a2455b179e0bbb6d49b652ed",
- "version" : "1.5.3"
- }
- },
- {
- "identity" : "xmlcoder",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/MaxDesiatov/XMLCoder.git",
- "state" : {
- "revision" : "b1e944cbd0ef33787b13f639a5418d55b3bed501",
- "version" : "0.17.1"
- }
- }
- ],
- "version" : 2
-}
diff --git a/AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 919434a625..0000000000
--- a/AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d981003d..0000000000
--- a/AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
deleted file mode 100644
index 6203f7a6b6..0000000000
--- a/AmplifyPlugins/Analytics/Tests/AnalyticsHostApp/AnalyticsHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "pins" : [
- {
- "identity" : "amplify-swift-utils-notifications",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/aws-amplify/amplify-swift-utils-notifications.git",
- "state" : {
- "revision" : "f970384ad1035732f99259255cd2f97564807e41",
- "version" : "1.1.0"
- }
- },
- {
- "identity" : "aws-appsync-realtime-client-ios",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/aws-amplify/aws-appsync-realtime-client-ios.git",
- "state" : {
- "revision" : "b036e83716789c13a3480eeb292b70caa54114f2",
- "version" : "3.1.0"
- }
- },
- {
- "identity" : "aws-crt-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/aws-crt-swift",
- "state" : {
- "revision" : "997904873945e074aaf5c51ea968d9a84684525a",
- "version" : "0.13.0"
- }
- },
- {
- "identity" : "aws-sdk-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/aws-sdk-swift.git",
- "state" : {
- "revision" : "ace826dbfe96e7e3103fe7f45f815b8a590bcf21",
- "version" : "0.26.0"
- }
- },
- {
- "identity" : "cwlcatchexception",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/mattgallagher/CwlCatchException.git",
- "state" : {
- "revision" : "3b123999de19bf04905bc1dfdb76f817b0f2cc00",
- "version" : "2.1.2"
- }
- },
- {
- "identity" : "cwlpreconditiontesting",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git",
- "state" : {
- "revision" : "a23ded2c91df9156628a6996ab4f347526f17b6b",
- "version" : "2.1.2"
- }
- },
- {
- "identity" : "smithy-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/smithy-lang/smithy-swift",
- "state" : {
- "revision" : "eed3f3d8e5aa704fcd60bb227b0fc89bf3328c42",
- "version" : "0.30.0"
- }
- },
- {
- "identity" : "sqlite.swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/stephencelis/SQLite.swift.git",
- "state" : {
- "revision" : "5f5ad81ac0d0a0f3e56e39e646e8423c617df523",
- "version" : "0.13.2"
- }
- },
- {
- "identity" : "starscream",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/daltoniam/Starscream",
- "state" : {
- "revision" : "df8d82047f6654d8e4b655d1b1525c64e1059d21",
- "version" : "4.0.4"
- }
- },
- {
- "identity" : "swift-collections",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-collections",
- "state" : {
- "revision" : "937e904258d22af6e447a0b72c0bc67583ef64a2",
- "version" : "1.0.4"
- }
- },
- {
- "identity" : "swift-log",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-log.git",
- "state" : {
- "revision" : "32e8d724467f8fe623624570367e3d50c5638e46",
- "version" : "1.5.2"
- }
- },
- {
- "identity" : "xmlcoder",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/MaxDesiatov/XMLCoder.git",
- "state" : {
- "revision" : "80b4a1646399b8e4e0ce80711653476a85bd5e37",
- "version" : "0.17.0"
- }
- }
- ],
- "version" : 2
-}
diff --git a/AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 919434a625..0000000000
--- a/AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d981003d..0000000000
--- a/AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
deleted file mode 100644
index 574dbfb6b0..0000000000
--- a/AmplifyPlugins/Auth/Tests/AuthHostApp/AuthHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "pins" : [
- {
- "identity" : "amplify-swift-utils-notifications",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/aws-amplify/amplify-swift-utils-notifications.git",
- "state" : {
- "revision" : "f970384ad1035732f99259255cd2f97564807e41",
- "version" : "1.1.0"
- }
- },
- {
- "identity" : "aws-appsync-realtime-client-ios",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/aws-amplify/aws-appsync-realtime-client-ios.git",
- "state" : {
- "revision" : "3de274c68a3cb60c8aec18b5bc0a8c07860219cd",
- "version" : "3.0.0"
- }
- },
- {
- "identity" : "aws-crt-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/aws-crt-swift.git",
- "state" : {
- "revision" : "997904873945e074aaf5c51ea968d9a84684525a",
- "version" : "0.13.0"
- }
- },
- {
- "identity" : "aws-sdk-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/aws-sdk-swift.git",
- "state" : {
- "revision" : "ace826dbfe96e7e3103fe7f45f815b8a590bcf21",
- "version" : "0.26.0"
- }
- },
- {
- "identity" : "cwlcatchexception",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/mattgallagher/CwlCatchException.git",
- "state" : {
- "revision" : "35f9e770f54ce62dd8526470f14c6e137cef3eea",
- "version" : "2.1.1"
- }
- },
- {
- "identity" : "cwlpreconditiontesting",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git",
- "state" : {
- "revision" : "c21f7bab5ca8eee0a9998bbd17ca1d0eb45d4688",
- "version" : "2.1.0"
- }
- },
- {
- "identity" : "smithy-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/smithy-lang/smithy-swift",
- "state" : {
- "revision" : "eed3f3d8e5aa704fcd60bb227b0fc89bf3328c42",
- "version" : "0.30.0"
- }
- },
- {
- "identity" : "sqlite.swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/stephencelis/SQLite.swift.git",
- "state" : {
- "revision" : "5f5ad81ac0d0a0f3e56e39e646e8423c617df523",
- "version" : "0.13.2"
- }
- },
- {
- "identity" : "starscream",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/daltoniam/Starscream",
- "state" : {
- "revision" : "df8d82047f6654d8e4b655d1b1525c64e1059d21",
- "version" : "4.0.4"
- }
- },
- {
- "identity" : "swift-collections",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-collections",
- "state" : {
- "revision" : "f504716c27d2e5d4144fa4794b12129301d17729",
- "version" : "1.0.3"
- }
- },
- {
- "identity" : "swift-log",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-log.git",
- "state" : {
- "revision" : "6fe203dc33195667ce1759bf0182975e4653ba1c",
- "version" : "1.4.4"
- }
- },
- {
- "identity" : "xmlcoder",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/MaxDesiatov/XMLCoder.git",
- "state" : {
- "revision" : "80b4a1646399b8e4e0ce80711653476a85bd5e37",
- "version" : "0.17.0"
- }
- }
- ],
- "version" : 2
-}
diff --git a/AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 919434a625..0000000000
--- a/AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d981003d..0000000000
--- a/AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
deleted file mode 100644
index f284cdc5c9..0000000000
--- a/AmplifyPlugins/DataStore/Tests/DataStoreHostApp/DataStoreHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "pins" : [
- {
- "identity" : "amplify-swift-utils-notifications",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/aws-amplify/amplify-swift-utils-notifications.git",
- "state" : {
- "revision" : "f970384ad1035732f99259255cd2f97564807e41",
- "version" : "1.1.0"
- }
- },
- {
- "identity" : "aws-appsync-realtime-client-ios",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/aws-amplify/aws-appsync-realtime-client-ios.git",
- "state" : {
- "revision" : "b036e83716789c13a3480eeb292b70caa54114f2",
- "version" : "3.1.0"
- }
- },
- {
- "identity" : "aws-crt-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/aws-crt-swift.git",
- "state" : {
- "revision" : "6feec6c3787877807aa9a00fad09591b96752376",
- "version" : "0.6.1"
- }
- },
- {
- "identity" : "aws-sdk-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/aws-sdk-swift.git",
- "state" : {
- "revision" : "24bae88a2391fe75da8a940a544d1ef6441f5321",
- "version" : "0.13.0"
- }
- },
- {
- "identity" : "cwlcatchexception",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/mattgallagher/CwlCatchException.git",
- "state" : {
- "revision" : "3b123999de19bf04905bc1dfdb76f817b0f2cc00",
- "version" : "2.1.2"
- }
- },
- {
- "identity" : "cwlpreconditiontesting",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git",
- "state" : {
- "revision" : "a23ded2c91df9156628a6996ab4f347526f17b6b",
- "version" : "2.1.2"
- }
- },
- {
- "identity" : "smithy-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/smithy-swift.git",
- "state" : {
- "revision" : "7b28da158d92cd06a3549140d43b8fbcf64a94a6",
- "version" : "0.15.0"
- }
- },
- {
- "identity" : "sqlite.swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/stephencelis/SQLite.swift.git",
- "state" : {
- "revision" : "5f5ad81ac0d0a0f3e56e39e646e8423c617df523",
- "version" : "0.13.2"
- }
- },
- {
- "identity" : "starscream",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/daltoniam/Starscream",
- "state" : {
- "revision" : "df8d82047f6654d8e4b655d1b1525c64e1059d21",
- "version" : "4.0.4"
- }
- },
- {
- "identity" : "swift-collections",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-collections",
- "state" : {
- "revision" : "937e904258d22af6e447a0b72c0bc67583ef64a2",
- "version" : "1.0.4"
- }
- },
- {
- "identity" : "swift-log",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-log.git",
- "state" : {
- "revision" : "32e8d724467f8fe623624570367e3d50c5638e46",
- "version" : "1.5.2"
- }
- },
- {
- "identity" : "xmlcoder",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/MaxDesiatov/XMLCoder.git",
- "state" : {
- "revision" : "b1e944cbd0ef33787b13f639a5418d55b3bed501",
- "version" : "0.17.1"
- }
- }
- ],
- "version" : 2
-}
diff --git a/AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 919434a625..0000000000
--- a/AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d981003d..0000000000
--- a/AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
deleted file mode 100644
index b5ef45f2f1..0000000000
--- a/AmplifyPlugins/Geo/Tests/GeoHostApp/GeoHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "pins" : [
- {
- "identity" : "amplify-swift-utils-notifications",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/aws-amplify/amplify-swift-utils-notifications.git",
- "state" : {
- "revision" : "f970384ad1035732f99259255cd2f97564807e41",
- "version" : "1.1.0"
- }
- },
- {
- "identity" : "aws-appsync-realtime-client-ios",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/aws-amplify/aws-appsync-realtime-client-ios.git",
- "state" : {
- "revision" : "b036e83716789c13a3480eeb292b70caa54114f2",
- "version" : "3.1.0"
- }
- },
- {
- "identity" : "aws-crt-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/aws-crt-swift.git",
- "state" : {
- "revision" : "6feec6c3787877807aa9a00fad09591b96752376",
- "version" : "0.6.1"
- }
- },
- {
- "identity" : "aws-sdk-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/aws-sdk-swift.git",
- "state" : {
- "revision" : "24bae88a2391fe75da8a940a544d1ef6441f5321",
- "version" : "0.13.0"
- }
- },
- {
- "identity" : "cwlcatchexception",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/mattgallagher/CwlCatchException.git",
- "state" : {
- "revision" : "35f9e770f54ce62dd8526470f14c6e137cef3eea",
- "version" : "2.1.1"
- }
- },
- {
- "identity" : "cwlpreconditiontesting",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git",
- "state" : {
- "revision" : "c21f7bab5ca8eee0a9998bbd17ca1d0eb45d4688",
- "version" : "2.1.0"
- }
- },
- {
- "identity" : "smithy-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/smithy-swift.git",
- "state" : {
- "revision" : "7b28da158d92cd06a3549140d43b8fbcf64a94a6",
- "version" : "0.15.0"
- }
- },
- {
- "identity" : "sqlite.swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/stephencelis/SQLite.swift.git",
- "state" : {
- "revision" : "5f5ad81ac0d0a0f3e56e39e646e8423c617df523",
- "version" : "0.13.2"
- }
- },
- {
- "identity" : "starscream",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/daltoniam/Starscream",
- "state" : {
- "revision" : "df8d82047f6654d8e4b655d1b1525c64e1059d21",
- "version" : "4.0.4"
- }
- },
- {
- "identity" : "swift-collections",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-collections",
- "state" : {
- "revision" : "937e904258d22af6e447a0b72c0bc67583ef64a2",
- "version" : "1.0.4"
- }
- },
- {
- "identity" : "swift-log",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-log.git",
- "state" : {
- "revision" : "32e8d724467f8fe623624570367e3d50c5638e46",
- "version" : "1.5.2"
- }
- },
- {
- "identity" : "xmlcoder",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/MaxDesiatov/XMLCoder.git",
- "state" : {
- "revision" : "b1e944cbd0ef33787b13f639a5418d55b3bed501",
- "version" : "0.17.1"
- }
- }
- ],
- "version" : 2
-}
diff --git a/AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100644
index 919434a625..0000000000
--- a/AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
deleted file mode 100644
index 18d981003d..0000000000
--- a/AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
- IDEDidComputeMac32BitWarning
-
-
-
diff --git a/AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
deleted file mode 100644
index 603f949096..0000000000
--- a/AmplifyPlugins/Storage/Tests/StorageHostApp/StorageHostApp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved
+++ /dev/null
@@ -1,113 +0,0 @@
-{
- "pins" : [
- {
- "identity" : "amplify-swift-utils-notifications",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/aws-amplify/amplify-swift-utils-notifications.git",
- "state" : {
- "revision" : "f970384ad1035732f99259255cd2f97564807e41",
- "version" : "1.1.0"
- }
- },
- {
- "identity" : "aws-appsync-realtime-client-ios",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/aws-amplify/aws-appsync-realtime-client-ios.git",
- "state" : {
- "revision" : "b036e83716789c13a3480eeb292b70caa54114f2",
- "version" : "3.1.0"
- }
- },
- {
- "identity" : "aws-crt-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/aws-crt-swift.git",
- "state" : {
- "revision" : "997904873945e074aaf5c51ea968d9a84684525a",
- "version" : "0.13.0"
- }
- },
- {
- "identity" : "aws-sdk-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/awslabs/aws-sdk-swift.git",
- "state" : {
- "revision" : "ace826dbfe96e7e3103fe7f45f815b8a590bcf21",
- "version" : "0.26.0"
- }
- },
- {
- "identity" : "cwlcatchexception",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/mattgallagher/CwlCatchException.git",
- "state" : {
- "revision" : "3b123999de19bf04905bc1dfdb76f817b0f2cc00",
- "version" : "2.1.2"
- }
- },
- {
- "identity" : "cwlpreconditiontesting",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/mattgallagher/CwlPreconditionTesting.git",
- "state" : {
- "revision" : "a23ded2c91df9156628a6996ab4f347526f17b6b",
- "version" : "2.1.2"
- }
- },
- {
- "identity" : "smithy-swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/smithy-lang/smithy-swift",
- "state" : {
- "revision" : "eed3f3d8e5aa704fcd60bb227b0fc89bf3328c42",
- "version" : "0.30.0"
- }
- },
- {
- "identity" : "sqlite.swift",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/stephencelis/SQLite.swift.git",
- "state" : {
- "revision" : "5f5ad81ac0d0a0f3e56e39e646e8423c617df523",
- "version" : "0.13.2"
- }
- },
- {
- "identity" : "starscream",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/daltoniam/Starscream",
- "state" : {
- "revision" : "df8d82047f6654d8e4b655d1b1525c64e1059d21",
- "version" : "4.0.4"
- }
- },
- {
- "identity" : "swift-collections",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-collections",
- "state" : {
- "revision" : "937e904258d22af6e447a0b72c0bc67583ef64a2",
- "version" : "1.0.4"
- }
- },
- {
- "identity" : "swift-log",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/apple/swift-log.git",
- "state" : {
- "revision" : "32e8d724467f8fe623624570367e3d50c5638e46",
- "version" : "1.5.2"
- }
- },
- {
- "identity" : "xmlcoder",
- "kind" : "remoteSourceControl",
- "location" : "https://github.com/MaxDesiatov/XMLCoder.git",
- "state" : {
- "revision" : "80b4a1646399b8e4e0ce80711653476a85bd5e37",
- "version" : "0.17.0"
- }
- }
- ],
- "version" : 2
-}
From d4b957d5bf268096117b2aece892ffb4fd88b0f0 Mon Sep 17 00:00:00 2001
From: Abhash Kumar Singh
Date: Fri, 3 Nov 2023 13:34:49 -0700
Subject: [PATCH 2/3] fix(datastore): multi auth rule for read subscription
(#3316)
* fix(datastore): multi auth rule for read subscription
* Address review comments
---
.../Model/Internal/Schema/AuthRule.swift | 4 +++
.../Auth/AWSAuthModeStrategy.swift | 33 ++++++++++++++++---
.../Auth/AuthModeStrategyTests.swift | 31 ++++++++++++++---
...omingAsyncSubscriptionEventPublisher.swift | 6 ++--
4 files changed, 62 insertions(+), 12 deletions(-)
diff --git a/Amplify/Categories/DataStore/Model/Internal/Schema/AuthRule.swift b/Amplify/Categories/DataStore/Model/Internal/Schema/AuthRule.swift
index 5c5027aff2..8a5c6b4aeb 100644
--- a/Amplify/Categories/DataStore/Model/Internal/Schema/AuthRule.swift
+++ b/Amplify/Categories/DataStore/Model/Internal/Schema/AuthRule.swift
@@ -68,3 +68,7 @@ public struct AuthRule {
self.operations = operations
}
}
+
+extension AuthRule: Hashable {
+
+}
diff --git a/AmplifyPlugins/Core/AWSPluginsCore/Auth/AWSAuthModeStrategy.swift b/AmplifyPlugins/Core/AWSPluginsCore/Auth/AWSAuthModeStrategy.swift
index a1355ced5a..1f3edd8786 100644
--- a/AmplifyPlugins/Core/AWSPluginsCore/Auth/AWSAuthModeStrategy.swift
+++ b/AmplifyPlugins/Core/AWSPluginsCore/Auth/AWSAuthModeStrategy.swift
@@ -42,6 +42,8 @@ public protocol AuthModeStrategy: AnyObject {
init()
func authTypesFor(schema: ModelSchema, operation: ModelOperation) async -> AWSAuthorizationTypeIterator
+
+ func authTypesFor(schema: ModelSchema, operations: [ModelOperation]) async -> AWSAuthorizationTypeIterator
}
/// AuthorizationType iterator with an extra `count` property used
@@ -93,6 +95,11 @@ public class AWSDefaultAuthModeStrategy: AuthModeStrategy {
operation: ModelOperation) -> AWSAuthorizationTypeIterator {
return AWSAuthorizationTypeIterator(withValues: [])
}
+
+ public func authTypesFor(schema: ModelSchema,
+ operations: [ModelOperation]) -> AWSAuthorizationTypeIterator {
+ return AWSAuthorizationTypeIterator(withValues: [])
+ }
}
// MARK: - AWSMultiAuthModeStrategy
@@ -188,19 +195,35 @@ public class AWSMultiAuthModeStrategy: AuthModeStrategy {
/// - Returns: an iterator for the applicable auth rules
public func authTypesFor(schema: ModelSchema,
operation: ModelOperation) async -> AWSAuthorizationTypeIterator {
- var applicableAuthRules = schema.authRules
- .filter(modelOperation: operation)
+ return await authTypesFor(schema: schema, operations: [operation])
+ }
+
+ /// Returns the union of authorization types for the provided schema for the given list of operations
+ /// - Parameters:
+ /// - schema: model schema
+ /// - operations: model operations
+ /// - Returns: an iterator for the applicable auth rules
+ public func authTypesFor(schema: ModelSchema,
+ operations: [ModelOperation]) async -> AWSAuthorizationTypeIterator {
+ var sortedRules = operations
+ .flatMap { schema.authRules.filter(modelOperation: $0) }
+ .reduce(into: [AuthRule](), { array, rule in
+ if !array.contains(rule) {
+ array.append(rule)
+ }
+ })
.sorted(by: AWSMultiAuthModeStrategy.comparator)
-
+
// if there isn't a user signed in, returns only public or custom rules
if let authDelegate = authDelegate, await !authDelegate.isUserLoggedIn() {
- applicableAuthRules = applicableAuthRules.filter { rule in
+ sortedRules = sortedRules.filter { rule in
return rule.allow == .public || rule.allow == .custom
}
}
- let applicableAuthTypes = applicableAuthRules.map {
+ let applicableAuthTypes = sortedRules.map {
AWSMultiAuthModeStrategy.authTypeFor(authRule: $0)
}
return AWSAuthorizationTypeIterator(withValues: applicableAuthTypes)
}
+
}
diff --git a/AmplifyPlugins/Core/AWSPluginsCoreTests/Auth/AuthModeStrategyTests.swift b/AmplifyPlugins/Core/AWSPluginsCoreTests/Auth/AuthModeStrategyTests.swift
index 12ecb27a6d..304aac6add 100644
--- a/AmplifyPlugins/Core/AWSPluginsCoreTests/Auth/AuthModeStrategyTests.swift
+++ b/AmplifyPlugins/Core/AWSPluginsCoreTests/Auth/AuthModeStrategyTests.swift
@@ -88,9 +88,9 @@ class AuthModeStrategyTests: XCTestCase {
let authMode = AWSMultiAuthModeStrategy()
let delegate = UnauthenticatedUserDelegate()
authMode.authDelegate = delegate
-
+
var authTypesIterator = await authMode.authTypesFor(schema: ModelWithOwnerAndPublicAuth.schema,
- operation: .create)
+ operation: .create)
XCTAssertEqual(authTypesIterator.count, 1)
XCTAssertEqual(authTypesIterator.next(), .apiKey)
}
@@ -101,7 +101,7 @@ class AuthModeStrategyTests: XCTestCase {
func testMultiAuthPriorityWithCustomStrategy() async {
let authMode = AWSMultiAuthModeStrategy()
var authTypesIterator = await authMode.authTypesFor(schema: ModelWithCustomStrategy.schema,
- operation: .create)
+ operation: .create)
XCTAssertEqual(authTypesIterator.count, 3)
XCTAssertEqual(authTypesIterator.next(), .function)
XCTAssertEqual(authTypesIterator.next(), .amazonCognitoUserPools)
@@ -117,12 +117,35 @@ class AuthModeStrategyTests: XCTestCase {
authMode.authDelegate = delegate
var authTypesIterator = await authMode.authTypesFor(schema: ModelWithCustomStrategy.schema,
- operation: .create)
+ operation: .create)
XCTAssertEqual(authTypesIterator.count, 2)
XCTAssertEqual(authTypesIterator.next(), .function)
XCTAssertEqual(authTypesIterator.next(), .awsIAM)
}
+ // Given: multi-auth strategy and a model schema without auth provider
+ // When: auth types are requested with multiple operation
+ // Then: default values based on the auth strategy should be returned
+ func testMultiAuthShouldReturnDefaultAuthTypesForMultipleOperation() async {
+ let authMode = AWSMultiAuthModeStrategy()
+ var authTypesIterator = await authMode.authTypesFor(schema: ModelNoProvider.schema, operations: [.read, .create])
+ XCTAssertEqual(authTypesIterator.count, 2)
+ XCTAssertEqual(authTypesIterator.next(), .amazonCognitoUserPools)
+ XCTAssertEqual(authTypesIterator.next(), .apiKey)
+ }
+
+ // Given: multi-auth strategy and a model schema with auth provider
+ // When: auth types are requested with multiple operation
+ // Then: auth rule for public access should be returned
+ func testMultiAuthReturnDefaultAuthTypesForMultipleOperationWithProvider() async {
+ let authMode = AWSMultiAuthModeStrategy()
+ let delegate = UnauthenticatedUserDelegate()
+ authMode.authDelegate = delegate
+ var authTypesIterator = await authMode.authTypesFor(schema: ModelNoProvider.schema, operations: [.read, .create])
+ XCTAssertEqual(authTypesIterator.count, 1)
+ XCTAssertEqual(authTypesIterator.next(), .apiKey)
+ }
+
}
// MARK: - Test models
diff --git a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/SubscriptionSync/IncomingAsyncSubscriptionEventPublisher.swift b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/SubscriptionSync/IncomingAsyncSubscriptionEventPublisher.swift
index 301e5534b8..c45ba79650 100644
--- a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/SubscriptionSync/IncomingAsyncSubscriptionEventPublisher.swift
+++ b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Sync/SubscriptionSync/IncomingAsyncSubscriptionEventPublisher.swift
@@ -73,7 +73,7 @@ final class IncomingAsyncSubscriptionEventPublisher: AmplifyCancellable {
// onCreate operation
let onCreateValueListener = onCreateValueListenerHandler(event:)
let onCreateAuthTypeProvider = await authModeStrategy.authTypesFor(schema: modelSchema,
- operation: .create)
+ operations: [.create, .read])
self.onCreateValueListener = onCreateValueListener
self.onCreateOperation = RetryableGraphQLSubscriptionOperation(
requestFactory: IncomingAsyncSubscriptionEventPublisher.apiRequestFactoryFor(
@@ -94,7 +94,7 @@ final class IncomingAsyncSubscriptionEventPublisher: AmplifyCancellable {
// onUpdate operation
let onUpdateValueListener = onUpdateValueListenerHandler(event:)
let onUpdateAuthTypeProvider = await authModeStrategy.authTypesFor(schema: modelSchema,
- operation: .update)
+ operations: [.update, .read])
self.onUpdateValueListener = onUpdateValueListener
self.onUpdateOperation = RetryableGraphQLSubscriptionOperation(
requestFactory: IncomingAsyncSubscriptionEventPublisher.apiRequestFactoryFor(
@@ -115,7 +115,7 @@ final class IncomingAsyncSubscriptionEventPublisher: AmplifyCancellable {
// onDelete operation
let onDeleteValueListener = onDeleteValueListenerHandler(event:)
let onDeleteAuthTypeProvider = await authModeStrategy.authTypesFor(schema: modelSchema,
- operation: .delete)
+ operations: [.delete, .read])
self.onDeleteValueListener = onDeleteValueListener
self.onDeleteOperation = RetryableGraphQLSubscriptionOperation(
requestFactory: IncomingAsyncSubscriptionEventPublisher.apiRequestFactoryFor(
From 46b65635ccec472784cc7b94cea1e428c16ac498 Mon Sep 17 00:00:00 2001
From: Harsh <6162866+harsh62@users.noreply.github.com>
Date: Tue, 7 Nov 2023 12:02:18 -0500
Subject: [PATCH 3/3] chore: Adding xcprivacy file to all targets (#3343)
* adding privacy info
* update privacy info for individual targets
* updating README.md to describe the usage of required reason API's
* updating read me
* Update README.md
Co-authored-by: Sebastian Villena <97059974+ruisebas@users.noreply.github.com>
* Update README.md
Co-authored-by: Sebastian Villena <97059974+ruisebas@users.noreply.github.com>
* Update README.md
---------
Co-authored-by: Sebastian Villena <97059974+ruisebas@users.noreply.github.com>
---
Amplify/Resources/PrivacyInfo.xcprivacy | 8 +++
.../Resources/PrivacyInfo.xcprivacy | 8 +++
.../Resources/PrivacyInfo.xcprivacy | 8 +++
.../Resources/PrivacyInfo.xcprivacy | 17 +++++++
.../Resources/PrivacyInfo.xcprivacy | 8 +++
.../Resources/PrivacyInfo.xcprivacy | 17 +++++++
.../Resources/PrivacyInfo.xcprivacy | 8 +++
.../Resources/PrivacyInfo.xcprivacy | 17 +++++++
.../Resources/PrivacyInfo.xcprivacy | 17 +++++++
.../Resources/PrivacyInfo.xcprivacy | 8 +++
.../Resources/PrivacyInfo.xcprivacy | 8 +++
.../Resources/PrivacyInfo.xcprivacy | 8 +++
.../Resources/PrivacyInfo.xcprivacy | 8 +++
Package.swift | 51 ++++++++++++++++---
README.md | 12 +++++
15 files changed, 197 insertions(+), 6 deletions(-)
create mode 100644 Amplify/Resources/PrivacyInfo.xcprivacy
create mode 100644 AmplifyPlugins/API/Sources/AWSAPIPlugin/Resources/PrivacyInfo.xcprivacy
create mode 100644 AmplifyPlugins/Analytics/Sources/AWSPinpointAnalyticsPlugin/Resources/PrivacyInfo.xcprivacy
create mode 100644 AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Resources/PrivacyInfo.xcprivacy
create mode 100644 AmplifyPlugins/Core/AWSPluginsCore/Resources/PrivacyInfo.xcprivacy
create mode 100644 AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Resources/PrivacyInfo.xcprivacy
create mode 100644 AmplifyPlugins/Geo/Sources/AWSLocationGeoPlugin/Resources/PrivacyInfo.xcprivacy
create mode 100644 AmplifyPlugins/Internal/Sources/InternalAWSPinpoint/Resources/PrivacyInfo.xcprivacy
create mode 100644 AmplifyPlugins/Logging/Sources/AWSCloudWatchLoggingPlugin/Resources/PrivacyInfo.xcprivacy
create mode 100644 AmplifyPlugins/Notifications/Push/Sources/AWSPinpointPushNotificationsPlugin/Resources/PrivacyInfo.xcprivacy
create mode 100644 AmplifyPlugins/Predictions/AWSPredictionsPlugin/Resources/PrivacyInfo.xcprivacy
create mode 100644 AmplifyPlugins/Predictions/CoreMLPredictionsPlugin/Resources/PrivacyInfo.xcprivacy
create mode 100644 AmplifyPlugins/Storage/Sources/AWSS3StoragePlugin/Resources/PrivacyInfo.xcprivacy
diff --git a/Amplify/Resources/PrivacyInfo.xcprivacy b/Amplify/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..74f8af8564
--- /dev/null
+++ b/Amplify/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,8 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+
diff --git a/AmplifyPlugins/API/Sources/AWSAPIPlugin/Resources/PrivacyInfo.xcprivacy b/AmplifyPlugins/API/Sources/AWSAPIPlugin/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..74f8af8564
--- /dev/null
+++ b/AmplifyPlugins/API/Sources/AWSAPIPlugin/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,8 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+
diff --git a/AmplifyPlugins/Analytics/Sources/AWSPinpointAnalyticsPlugin/Resources/PrivacyInfo.xcprivacy b/AmplifyPlugins/Analytics/Sources/AWSPinpointAnalyticsPlugin/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..74f8af8564
--- /dev/null
+++ b/AmplifyPlugins/Analytics/Sources/AWSPinpointAnalyticsPlugin/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,8 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+
diff --git a/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Resources/PrivacyInfo.xcprivacy b/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..0c69ba3b3a
--- /dev/null
+++ b/AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,17 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+
+
+
+
+
diff --git a/AmplifyPlugins/Core/AWSPluginsCore/Resources/PrivacyInfo.xcprivacy b/AmplifyPlugins/Core/AWSPluginsCore/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..74f8af8564
--- /dev/null
+++ b/AmplifyPlugins/Core/AWSPluginsCore/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,8 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+
diff --git a/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Resources/PrivacyInfo.xcprivacy b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..0c69ba3b3a
--- /dev/null
+++ b/AmplifyPlugins/DataStore/Sources/AWSDataStorePlugin/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,17 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+
+
+
+
+
diff --git a/AmplifyPlugins/Geo/Sources/AWSLocationGeoPlugin/Resources/PrivacyInfo.xcprivacy b/AmplifyPlugins/Geo/Sources/AWSLocationGeoPlugin/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..74f8af8564
--- /dev/null
+++ b/AmplifyPlugins/Geo/Sources/AWSLocationGeoPlugin/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,8 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+
diff --git a/AmplifyPlugins/Internal/Sources/InternalAWSPinpoint/Resources/PrivacyInfo.xcprivacy b/AmplifyPlugins/Internal/Sources/InternalAWSPinpoint/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..0c69ba3b3a
--- /dev/null
+++ b/AmplifyPlugins/Internal/Sources/InternalAWSPinpoint/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,17 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+
+
+
+
+
diff --git a/AmplifyPlugins/Logging/Sources/AWSCloudWatchLoggingPlugin/Resources/PrivacyInfo.xcprivacy b/AmplifyPlugins/Logging/Sources/AWSCloudWatchLoggingPlugin/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..0c69ba3b3a
--- /dev/null
+++ b/AmplifyPlugins/Logging/Sources/AWSCloudWatchLoggingPlugin/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,17 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+ NSPrivacyAccessedAPIType
+ NSPrivacyAccessedAPICategoryUserDefaults
+ NSPrivacyAccessedAPITypeReasons
+
+ CA92.1
+
+
+
+
+
diff --git a/AmplifyPlugins/Notifications/Push/Sources/AWSPinpointPushNotificationsPlugin/Resources/PrivacyInfo.xcprivacy b/AmplifyPlugins/Notifications/Push/Sources/AWSPinpointPushNotificationsPlugin/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..74f8af8564
--- /dev/null
+++ b/AmplifyPlugins/Notifications/Push/Sources/AWSPinpointPushNotificationsPlugin/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,8 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+
diff --git a/AmplifyPlugins/Predictions/AWSPredictionsPlugin/Resources/PrivacyInfo.xcprivacy b/AmplifyPlugins/Predictions/AWSPredictionsPlugin/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..74f8af8564
--- /dev/null
+++ b/AmplifyPlugins/Predictions/AWSPredictionsPlugin/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,8 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+
diff --git a/AmplifyPlugins/Predictions/CoreMLPredictionsPlugin/Resources/PrivacyInfo.xcprivacy b/AmplifyPlugins/Predictions/CoreMLPredictionsPlugin/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..74f8af8564
--- /dev/null
+++ b/AmplifyPlugins/Predictions/CoreMLPredictionsPlugin/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,8 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+
diff --git a/AmplifyPlugins/Storage/Sources/AWSS3StoragePlugin/Resources/PrivacyInfo.xcprivacy b/AmplifyPlugins/Storage/Sources/AWSS3StoragePlugin/Resources/PrivacyInfo.xcprivacy
new file mode 100644
index 0000000000..74f8af8564
--- /dev/null
+++ b/AmplifyPlugins/Storage/Sources/AWSS3StoragePlugin/Resources/PrivacyInfo.xcprivacy
@@ -0,0 +1,8 @@
+
+
+
+
+ NSPrivacyAccessedAPITypes
+
+
+
diff --git a/Package.swift b/Package.swift
index e03c21866e..2fa9b9a4e8 100644
--- a/Package.swift
+++ b/Package.swift
@@ -23,6 +23,9 @@ let amplifyTargets: [Target] = [
exclude: [
"Info.plist",
"Categories/DataStore/Model/Temporal/README.md"
+ ],
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
]
),
.target(
@@ -34,6 +37,9 @@ let amplifyTargets: [Target] = [
path: "AmplifyPlugins/Core/AWSPluginsCore",
exclude: [
"Info.plist"
+ ],
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
]
),
.target(
@@ -116,6 +122,9 @@ let apiTargets: [Target] = [
exclude: [
"Info.plist",
"AWSAPIPlugin.md"
+ ],
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
]
),
.testTarget(
@@ -157,7 +166,10 @@ let authTargets: [Target] = [
.product(name: "AWSCognitoIdentityProvider", package: "aws-sdk-swift"),
.product(name: "AWSCognitoIdentity", package: "aws-sdk-swift")
],
- path: "AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin"
+ path: "AmplifyPlugins/Auth/Sources/AWSCognitoAuthPlugin",
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
+ ]
),
.target(
name: "libtommathAmplify",
@@ -198,6 +210,9 @@ let dataStoreTargets: [Target] = [
exclude: [
"Info.plist",
"Sync/MutationSync/OutgoingMutationQueue/SyncMutationToCloudOperation.mmd"
+ ],
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
]
),
.testTarget(
@@ -224,6 +239,9 @@ let storageTargets: [Target] = [
path: "AmplifyPlugins/Storage/Sources/AWSS3StoragePlugin",
exclude: [
"Resources/Info.plist"
+ ],
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
]
),
.testTarget(
@@ -251,6 +269,9 @@ let geoTargets: [Target] = [
path: "AmplifyPlugins/Geo/Sources/AWSLocationGeoPlugin",
exclude: [
"Resources/Info.plist"
+ ],
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
]
),
.testTarget(
@@ -279,7 +300,10 @@ let internalPinpointTargets: [Target] = [
.product(name: "AWSPinpoint", package: "aws-sdk-swift"),
.product(name: "AmplifyUtilsNotifications", package: "amplify-swift-utils-notifications")
],
- path: "AmplifyPlugins/Internal/Sources/InternalAWSPinpoint"
+ path: "AmplifyPlugins/Internal/Sources/InternalAWSPinpoint",
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
+ ]
),
.testTarget(
name: "InternalAWSPinpointUnitTests",
@@ -298,7 +322,10 @@ let analyticsTargets: [Target] = [
dependencies: [
.target(name: "InternalAWSPinpoint")
],
- path: "AmplifyPlugins/Analytics/Sources/AWSPinpointAnalyticsPlugin"
+ path: "AmplifyPlugins/Analytics/Sources/AWSPinpointAnalyticsPlugin",
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
+ ]
),
.testTarget(
name: "AWSPinpointAnalyticsPluginUnitTests",
@@ -316,7 +343,10 @@ let pushNotificationsTargets: [Target] = [
dependencies: [
.target(name: "InternalAWSPinpoint")
],
- path: "AmplifyPlugins/Notifications/Push/Sources/AWSPinpointPushNotificationsPlugin"
+ path: "AmplifyPlugins/Notifications/Push/Sources/AWSPinpointPushNotificationsPlugin",
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
+ ]
),
.testTarget(
name: "AWSPinpointPushNotificationsPluginUnitTests",
@@ -343,7 +373,10 @@ let predictionsTargets: [Target] = [
.product(name: "AWSTranslate", package: "aws-sdk-swift")
],
path: "AmplifyPlugins/Predictions/AWSPredictionsPlugin",
- exclude: []
+ exclude: [],
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
+ ]
),
.testTarget(
name: "AWSPredictionsPluginUnitTests",
@@ -359,6 +392,9 @@ let predictionsTargets: [Target] = [
path: "AmplifyPlugins/Predictions/CoreMLPredictionsPlugin",
exclude: [
"Resources/Info.plist"
+ ],
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
]
),
.testTarget(
@@ -380,7 +416,10 @@ let loggingTargets: [Target] = [
.target(name: "AWSPluginsCore"),
.product(name: "AWSCloudWatchLogs", package: "aws-sdk-swift"),
],
- path: "AmplifyPlugins/Logging/Sources/AWSCloudWatchLoggingPlugin"
+ path: "AmplifyPlugins/Logging/Sources/AWSCloudWatchLoggingPlugin",
+ resources: [
+ .copy("Resources/PrivacyInfo.xcprivacy")
+ ]
),
.testTarget(
name: "AWSCloudWatchLoggingPluginTests",
diff --git a/README.md b/README.md
index 1111369176..68e101a6ce 100644
--- a/README.md
+++ b/README.md
@@ -152,6 +152,18 @@ do {
}
```
+## Describing use of required reason API
+
+As required by the Apple App Store, we provide the new `PrivacyInfo.xcprivacy` file for describing use of required reason API, see [Describing use of required reason API
+](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api). You can also export the privacy report after archiving your App in Xcode, see [Create your app’s privacy report](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_data_use_in_privacy_manifests#4239187).
+
+The following Amplify targets have been identified to be using the [User defaults APIs](https://developer.apple.com/documentation/bundleresources/privacy_manifest_files/describing_use_of_required_reason_api#4278401):
+
+* `AWSCognitoAuthPlugin`
+* `AWSDataStorePlugin`
+* `AWSCloudWatchLoggingPlugin`
+* `InternalAWSPinpoint`
+
## Reporting Bugs/Feature Requests
[![Open Bugs](https://img.shields.io/github/issues/aws-amplify/amplify-swift/bug?color=d73a4a&label=bugs)](https://github.com/aws-amplify/amplify-swift/issues?q=is%3Aissue+is%3Aopen+label%3Abug)