From ad4442e538446ae5bd004071a6c2f48d7197ca37 Mon Sep 17 00:00:00 2001 From: David Yaffe Date: Tue, 7 Jan 2025 14:45:24 -0500 Subject: [PATCH 01/11] add trace logger --- README.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/README.md b/README.md index 785cab54b6c..3aa226a3c83 100644 --- a/README.md +++ b/README.md @@ -5,6 +5,8 @@ [apache-badge]: https://img.shields.io/badge/License-Apache%202.0-blue.svg [apache-url]: LICENSE +added trace logging + ## Getting Started - [SDK Product Page](https://aws.amazon.com/sdk-for-swift/) From e851be636c5abfa61e45cc01d20117c91167e2cc Mon Sep 17 00:00:00 2001 From: David Yaffe Date: Thu, 9 Jan 2025 15:31:48 -0500 Subject: [PATCH 02/11] try adding logger --- .../AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift b/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift index 6233b76e683..5714cecce6a 100644 --- a/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift +++ b/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift @@ -9,6 +9,7 @@ import struct Foundation.TimeInterval import enum AwsCommonRuntimeKit.CommonRunTimeError import protocol SmithyRetriesAPI.RetryErrorInfoProvider import enum ClientRuntime.DefaultRetryErrorInfoProvider +import struct Smithy.SwiftLogger import struct SmithyRetriesAPI.RetryErrorInfo import protocol ClientRuntime.ServiceError import protocol ClientRuntime.HTTPError @@ -68,6 +69,8 @@ public enum AWSRetryErrorInfoProvider: RetryErrorInfoProvider { // Handle certain CRT errors as transient errors if case CommonRunTimeError.crtError(let crtError) = error { if transientCRTErrorCodes.contains(crtError.code) { + let logger = SwiftLogger(label: "RetryLogger") + logger.debug("RETRYING CRT ERROR CODE: \(crtError.code)") return RetryErrorInfo(errorType: .transient, retryAfterHint: nil, isTimeout: isTimeout) } } From 982f344fccdbff554c95ff88d0954dd78014db1d Mon Sep 17 00:00:00 2001 From: David Yaffe Date: Fri, 10 Jan 2025 13:14:53 -0500 Subject: [PATCH 03/11] try running integration tests 30x only on linux --- .github/workflows/integration-test.yml | 121 +------------------------ 1 file changed, 1 insertion(+), 120 deletions(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index ec7ce42a0df..40a37e3ac50 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -15,126 +15,6 @@ permissions: actions: read jobs: - apple: - if: github.repository == 'awslabs/aws-sdk-swift' || github.event_name == 'pull_request' - runs-on: ${{ matrix.runner }} - strategy: - fail-fast: false - matrix: - # This matrix runs tests on iOS sim & Mac, on oldest & newest supported Xcodes - runner: - - macos-14 - - macos-15 - xcode: - - Xcode_15.2 - - Xcode_16.1 - destination: - - 'platform=iOS Simulator,OS=17.2,name=iPhone 15' - - 'platform=iOS Simulator,OS=18.1,name=iPhone 16' - - 'platform=tvOS Simulator,OS=17.2,name=Apple TV 4K (3rd generation) (at 1080p)' - - 'platform=tvOS Simulator,OS=18.1,name=Apple TV 4K (3rd generation) (at 1080p)' - - 'platform=visionOS Simulator,OS=1.0,name=Apple Vision Pro' - - 'platform=visionOS Simulator,OS=2.1,name=Apple Vision Pro' - - 'platform=macOS' - exclude: - # Don't run old macOS with new Xcode - - runner: macos-14 - xcode: Xcode_16.1 - # Don't run new macOS with old Xcode - - runner: macos-15 - xcode: Xcode_15.2 - # Don't run old simulators with new Xcode - - destination: 'platform=tvOS Simulator,OS=17.2,name=Apple TV 4K (3rd generation) (at 1080p)' - xcode: Xcode_16.1 - - destination: 'platform=iOS Simulator,OS=17.2,name=iPhone 15' - xcode: Xcode_16.1 - - destination: 'platform=visionOS Simulator,OS=1.0,name=Apple Vision Pro' - xcode: Xcode_16.1 - # Don't run new simulators with old Xcode - - destination: 'platform=tvOS Simulator,OS=18.1,name=Apple TV 4K (3rd generation) (at 1080p)' - xcode: Xcode_15.2 - - destination: 'platform=iOS Simulator,OS=18.1,name=iPhone 16' - xcode: Xcode_15.2 - - destination: 'platform=visionOS Simulator,OS=2.1,name=Apple Vision Pro' - xcode: Xcode_15.2 - steps: - - name: Configure Xcode - run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app - - name: Install visionOS sim if needed - if: ${{ contains(matrix.destination, 'platform=visionOS') }} - run: | - sudo xcodebuild -runFirstLaunch - sudo xcrun simctl list - sudo xcodebuild -downloadPlatform visionOS - sudo xcodebuild -runFirstLaunch - - name: Configure AWS Credentials for Integration Tests - uses: aws-actions/configure-aws-credentials@v4 - with: - role-to-assume: ${{ secrets.INTEGRATION_TEST_ROLE_ARN }} - aws-region: us-west-2 - - name: Checkout aws-sdk-swift - uses: actions/checkout@v4 - with: - path: aws-sdk-swift - - name: Checkout smithy-swift with composite action - uses: ./aws-sdk-swift/.github/actions/checkout-smithy-swift-composite-action - with: - AUTOMATION_USER_SSH_PRIVATE_KEY: ${{ secrets.AUTOMATION_USER_SSH_PRIVATE_KEY }} - STAGING_PARTNER_REPO: ${{ secrets.STAGING_PARTNER_REPO }} - - name: Cache Gradle - uses: actions/cache@v4 - with: - path: | - ~/.gradle/caches - ~/.gradle/wrapper - key: 2-${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts', 'gradle/wrapper/gradle-wrapper.properties') }} - restore-keys: | - 2-${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts', 'gradle/wrapper/gradle-wrapper.properties') }} - 2-${{ runner.os }}-gradle- - - name: Cache Swift - uses: actions/cache@v4 - with: - path: | - ~/Library/Caches/org.swift.swiftpm - ~/.cache/org.swift.swiftpm - key: 1-${{ runner.os }}-${{ matrix.xcode }}-${{ hashFiles('Package.swift', 'AWSSDKSwiftCLI/Package.swift') }} - restore-keys: | - 1-${{ runner.os }}-${{ matrix.xcode }}-${{ hashFiles('Package.swift', 'AWSSDKSwiftCLI/Package.swift') }} - 1-${{ runner.os }}-${{ matrix.xcode }}- - - name: Setup Java - uses: actions/setup-java@v4 - with: - distribution: corretto - java-version: 17 - - name: Tools Versions - run: ./aws-sdk-swift/scripts/ci_steps/log_tool_versions.sh - - name: Add Credentials to Test Plan - run: | - cd aws-sdk-swift - # JSON-escape the credentials. They are also surrounded with double quotes. - AKID_ESCAPED=`echo -n "$AWS_ACCESS_KEY_ID" | jq -Rsa .` - SECRET_ESCAPED=`echo -n "$AWS_SECRET_ACCESS_KEY" | jq -Rsa .` - REGION_ESCAPED=`echo -n "$AWS_DEFAULT_REGION" | jq -Rsa .` - TOKEN_ESCAPED=`echo -n "$AWS_SESSION_TOKEN" | jq -Rsa .` - # Insert the credentials into the .xctestplan file, write the modified JSON - # to a temp file, then move the temp over the original. - jq ".defaultOptions.environmentVariableEntries += [{\"key\": \"AWS_ACCESS_KEY_ID\", \"value\": $AKID_ESCAPED}, {\"key\": \"AWS_SECRET_ACCESS_KEY\", \"value\": $SECRET_ESCAPED}, {\"key\": \"AWS_DEFAULT_REGION\", \"value\": $REGION_ESCAPED}, {\"key\": \"AWS_SESSION_TOKEN\", \"value\": $TOKEN_ESCAPED}]" IntegrationTests/XCTestPlans/AWSIntegrationTestsOnCI.xctestplan > testplan.tmp - mv testplan.tmp IntegrationTests/XCTestPlans/AWSIntegrationTestsOnCI.xctestplan - - name: Prepare Integration Tests - run: | - cd aws-sdk-swift - ./scripts/ci_steps/prepare_integration_tests.sh - - name: Run Integration Tests - run: | - cd aws-sdk-swift/IntegrationTests - set -o pipefail && \ - NSUnbufferedIO=YES xcodebuild \ - -scheme AWSIntegrationTestsOnCI \ - -testPlan AWSIntegrationTestsOnCI \ - -destination '${{ matrix.destination }}' \ - test 2>&1 \ - | xcbeautify - linux: # Details on why AL2 isn't included: https://github.com/awslabs/aws-sdk-swift/pull/1833 if: github.repository == 'awslabs/aws-sdk-swift' || github.event_name == 'pull_request' @@ -148,6 +28,7 @@ jobs: version: - "5.9" - "6.0" + iteration: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30] env: ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true steps: From 18030e99709302f7bd1c7af291d62ea954b01125 Mon Sep 17 00:00:00 2001 From: David Yaffe Date: Fri, 10 Jan 2025 15:11:20 -0500 Subject: [PATCH 04/11] add more logging --- .../AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift b/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift index 5714cecce6a..bc3b7e2a0b9 100644 --- a/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift +++ b/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift @@ -56,6 +56,8 @@ public enum AWSRetryErrorInfoProvider: RetryErrorInfoProvider { private static let timeoutStatusCodes = [408, 504] public static func errorInfo(for error: Error) -> RetryErrorInfo? { + let logger = SwiftLogger(label: "RetryLogger") + logger.debug("(RETRYING) got errorInfo for \(error)") // Determine based on properties if this error is a timeout error. var isTimeout = false @@ -69,7 +71,6 @@ public enum AWSRetryErrorInfoProvider: RetryErrorInfoProvider { // Handle certain CRT errors as transient errors if case CommonRunTimeError.crtError(let crtError) = error { if transientCRTErrorCodes.contains(crtError.code) { - let logger = SwiftLogger(label: "RetryLogger") logger.debug("RETRYING CRT ERROR CODE: \(crtError.code)") return RetryErrorInfo(errorType: .transient, retryAfterHint: nil, isTimeout: isTimeout) } From b5ccaa9c9afcd1650d2575611325310d9443c3cf Mon Sep 17 00:00:00 2001 From: David Yaffe Date: Tue, 14 Jan 2025 16:24:22 -0500 Subject: [PATCH 05/11] change debug to info --- .../AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift b/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift index bc3b7e2a0b9..a8590b0ceae 100644 --- a/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift +++ b/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift @@ -57,7 +57,7 @@ public enum AWSRetryErrorInfoProvider: RetryErrorInfoProvider { public static func errorInfo(for error: Error) -> RetryErrorInfo? { let logger = SwiftLogger(label: "RetryLogger") - logger.debug("(RETRYING) got errorInfo for \(error)") + logger.info("(RETRYING) got errorInfo for \(error)") // Determine based on properties if this error is a timeout error. var isTimeout = false From 56b0efddd07c063cf1c1acb77d1715e5a97eaad6 Mon Sep 17 00:00:00 2001 From: David Yaffe Date: Tue, 14 Jan 2025 16:54:23 -0500 Subject: [PATCH 06/11] more logs --- .../AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift b/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift index a8590b0ceae..7635c81e67b 100644 --- a/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift +++ b/Sources/Core/AWSClientRuntime/Sources/AWSClientRuntime/Retry/AWSRetryErrorInfoProvider.swift @@ -71,7 +71,7 @@ public enum AWSRetryErrorInfoProvider: RetryErrorInfoProvider { // Handle certain CRT errors as transient errors if case CommonRunTimeError.crtError(let crtError) = error { if transientCRTErrorCodes.contains(crtError.code) { - logger.debug("RETRYING CRT ERROR CODE: \(crtError.code)") + logger.info("RETRYING CRT ERROR CODE: \(crtError.code)") return RetryErrorInfo(errorType: .transient, retryAfterHint: nil, isTimeout: isTimeout) } } From 57489365b27ef83264184565256589f02ac8cdb9 Mon Sep 17 00:00:00 2001 From: David Yaffe Date: Thu, 16 Jan 2025 14:36:23 -0500 Subject: [PATCH 07/11] run only 15x per llinux version --- .github/workflows/integration-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 40a37e3ac50..d1deb011220 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -28,7 +28,7 @@ jobs: version: - "5.9" - "6.0" - iteration: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30] + iteration: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] env: ACTIONS_ALLOW_USE_UNSECURE_NODE_VERSION: true steps: From 89abf6e4350db03f96b23a1079527039e48fa225 Mon Sep 17 00:00:00 2001 From: David Yaffe Date: Tue, 21 Jan 2025 13:11:37 -0500 Subject: [PATCH 08/11] enhance logging on assert in transcribe --- .../TranscribeStreamingTests.swift | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/IntegrationTests/Services/AWSTranscribeStreamingIntegrationTests/TranscribeStreamingTests.swift b/IntegrationTests/Services/AWSTranscribeStreamingIntegrationTests/TranscribeStreamingTests.swift index b294cd8e11e..cc13dfbfbc5 100644 --- a/IntegrationTests/Services/AWSTranscribeStreamingIntegrationTests/TranscribeStreamingTests.swift +++ b/IntegrationTests/Services/AWSTranscribeStreamingIntegrationTests/TranscribeStreamingTests.swift @@ -101,7 +101,10 @@ final class TranscribeStreamingTests: XCTestCase { "Hello transcribed streaming from swift sdk.", "Hello transcribes streaming from Swift SDK.", ] - XCTAssertTrue(candidates.contains(where: { $0.lowercased() == fullMessage.lowercased() })) + XCTAssertTrue( + candidates.contains { $0.lowercased() == fullMessage.lowercased() }, + "The transcription \"\(fullMessage)\" does not match any of the expected forms: [\(candidates.map { "\"\($0)\"" }.joined(separator: ", "))]" + ) } // Performs the stream transcription, with retry for selected errors associated with From beac28cb16ad09042ce0b1fb43573b7b9aa487c8 Mon Sep 17 00:00:00 2001 From: David Yaffe Date: Thu, 23 Jan 2025 18:44:37 -0500 Subject: [PATCH 09/11] run mac 15 times --- .github/workflows/integration-test.yml | 121 +++++++++++++++++++++++++ 1 file changed, 121 insertions(+) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index d1deb011220..55da6c714e3 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -15,6 +15,127 @@ permissions: actions: read jobs: + apple: + if: github.repository == 'awslabs/aws-sdk-swift' || github.event_name == 'pull_request' + runs-on: ${{ matrix.runner }} + strategy: + fail-fast: false + matrix: + # This matrix runs tests on iOS sim & Mac, on oldest & newest supported Xcodes + runner: + - macos-14 + - macos-15 + xcode: + - Xcode_15.2 + - Xcode_16.1 + destination: + - 'platform=iOS Simulator,OS=17.2,name=iPhone 15' + - 'platform=iOS Simulator,OS=18.1,name=iPhone 16' + - 'platform=tvOS Simulator,OS=17.2,name=Apple TV 4K (3rd generation) (at 1080p)' + - 'platform=tvOS Simulator,OS=18.1,name=Apple TV 4K (3rd generation) (at 1080p)' + - 'platform=visionOS Simulator,OS=1.0,name=Apple Vision Pro' + - 'platform=visionOS Simulator,OS=2.1,name=Apple Vision Pro' + - 'platform=macOS' + exclude: + # Don't run old macOS with new Xcode + - runner: macos-14 + xcode: Xcode_16.1 + # Don't run new macOS with old Xcode + - runner: macos-15 + xcode: Xcode_15.2 + # Don't run old simulators with new Xcode + - destination: 'platform=tvOS Simulator,OS=17.2,name=Apple TV 4K (3rd generation) (at 1080p)' + xcode: Xcode_16.1 + - destination: 'platform=iOS Simulator,OS=17.2,name=iPhone 15' + xcode: Xcode_16.1 + - destination: 'platform=visionOS Simulator,OS=1.0,name=Apple Vision Pro' + xcode: Xcode_16.1 + # Don't run new simulators with old Xcode + - destination: 'platform=tvOS Simulator,OS=18.1,name=Apple TV 4K (3rd generation) (at 1080p)' + xcode: Xcode_15.2 + - destination: 'platform=iOS Simulator,OS=18.1,name=iPhone 16' + xcode: Xcode_15.2 + - destination: 'platform=visionOS Simulator,OS=2.1,name=Apple Vision Pro' + xcode: Xcode_15.2 + iteration: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + + steps: + - name: Configure Xcode + run: sudo xcode-select -s /Applications/${{ matrix.xcode }}.app + - name: Install visionOS sim if needed + if: ${{ contains(matrix.destination, 'platform=visionOS') }} + run: | + sudo xcodebuild -runFirstLaunch + sudo xcrun simctl list + sudo xcodebuild -downloadPlatform visionOS + sudo xcodebuild -runFirstLaunch + - name: Configure AWS Credentials for Integration Tests + uses: aws-actions/configure-aws-credentials@v4 + with: + role-to-assume: ${{ secrets.INTEGRATION_TEST_ROLE_ARN }} + aws-region: us-west-2 + - name: Checkout aws-sdk-swift + uses: actions/checkout@v4 + with: + path: aws-sdk-swift + - name: Checkout smithy-swift with composite action + uses: ./aws-sdk-swift/.github/actions/checkout-smithy-swift-composite-action + with: + AUTOMATION_USER_SSH_PRIVATE_KEY: ${{ secrets.AUTOMATION_USER_SSH_PRIVATE_KEY }} + STAGING_PARTNER_REPO: ${{ secrets.STAGING_PARTNER_REPO }} + - name: Cache Gradle + uses: actions/cache@v4 + with: + path: | + ~/.gradle/caches + ~/.gradle/wrapper + key: 2-${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts', 'gradle/wrapper/gradle-wrapper.properties') }} + restore-keys: | + 2-${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts', 'gradle/wrapper/gradle-wrapper.properties') }} + 2-${{ runner.os }}-gradle- + - name: Cache Swift + uses: actions/cache@v4 + with: + path: | + ~/Library/Caches/org.swift.swiftpm + ~/.cache/org.swift.swiftpm + key: 1-${{ runner.os }}-${{ matrix.xcode }}-${{ hashFiles('Package.swift', 'AWSSDKSwiftCLI/Package.swift') }} + restore-keys: | + 1-${{ runner.os }}-${{ matrix.xcode }}-${{ hashFiles('Package.swift', 'AWSSDKSwiftCLI/Package.swift') }} + 1-${{ runner.os }}-${{ matrix.xcode }}- + - name: Setup Java + uses: actions/setup-java@v4 + with: + distribution: corretto + java-version: 17 + - name: Tools Versions + run: ./aws-sdk-swift/scripts/ci_steps/log_tool_versions.sh + - name: Add Credentials to Test Plan + run: | + cd aws-sdk-swift + # JSON-escape the credentials. They are also surrounded with double quotes. + AKID_ESCAPED=`echo -n "$AWS_ACCESS_KEY_ID" | jq -Rsa .` + SECRET_ESCAPED=`echo -n "$AWS_SECRET_ACCESS_KEY" | jq -Rsa .` + REGION_ESCAPED=`echo -n "$AWS_DEFAULT_REGION" | jq -Rsa .` + TOKEN_ESCAPED=`echo -n "$AWS_SESSION_TOKEN" | jq -Rsa .` + # Insert the credentials into the .xctestplan file, write the modified JSON + # to a temp file, then move the temp over the original. + jq ".defaultOptions.environmentVariableEntries += [{\"key\": \"AWS_ACCESS_KEY_ID\", \"value\": $AKID_ESCAPED}, {\"key\": \"AWS_SECRET_ACCESS_KEY\", \"value\": $SECRET_ESCAPED}, {\"key\": \"AWS_DEFAULT_REGION\", \"value\": $REGION_ESCAPED}, {\"key\": \"AWS_SESSION_TOKEN\", \"value\": $TOKEN_ESCAPED}]" IntegrationTests/XCTestPlans/AWSIntegrationTestsOnCI.xctestplan > testplan.tmp + mv testplan.tmp IntegrationTests/XCTestPlans/AWSIntegrationTestsOnCI.xctestplan + - name: Prepare Integration Tests + run: | + cd aws-sdk-swift + ./scripts/ci_steps/prepare_integration_tests.sh + - name: Run Integration Tests + run: | + cd aws-sdk-swift/IntegrationTests + set -o pipefail && \ + NSUnbufferedIO=YES xcodebuild \ + -scheme AWSIntegrationTestsOnCI \ + -testPlan AWSIntegrationTestsOnCI \ + -destination '${{ matrix.destination }}' \ + test 2>&1 \ + | xcbeautify linux: # Details on why AL2 isn't included: https://github.com/awslabs/aws-sdk-swift/pull/1833 if: github.repository == 'awslabs/aws-sdk-swift' || github.event_name == 'pull_request' From ba8a7b578fc6ec0b761b2086fa360ad0a263c1d6 Mon Sep 17 00:00:00 2001 From: David Yaffe Date: Thu, 23 Jan 2025 18:45:09 -0500 Subject: [PATCH 10/11] run mac 5 times each --- .github/workflows/integration-test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 55da6c714e3..66aadc0df53 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -57,7 +57,7 @@ jobs: xcode: Xcode_15.2 - destination: 'platform=visionOS Simulator,OS=2.1,name=Apple Vision Pro' xcode: Xcode_15.2 - iteration: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] + iteration: [1, 2, 3, 4, 5] steps: - name: Configure Xcode From 02c808ce72ee08a4741228f94d84a632120f2536 Mon Sep 17 00:00:00 2001 From: David Yaffe Date: Fri, 24 Jan 2025 14:46:20 -0500 Subject: [PATCH 11/11] run only mac simulator --- .github/workflows/integration-test.yml | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/.github/workflows/integration-test.yml b/.github/workflows/integration-test.yml index 66aadc0df53..bbef5598318 100644 --- a/.github/workflows/integration-test.yml +++ b/.github/workflows/integration-test.yml @@ -29,12 +29,6 @@ jobs: - Xcode_15.2 - Xcode_16.1 destination: - - 'platform=iOS Simulator,OS=17.2,name=iPhone 15' - - 'platform=iOS Simulator,OS=18.1,name=iPhone 16' - - 'platform=tvOS Simulator,OS=17.2,name=Apple TV 4K (3rd generation) (at 1080p)' - - 'platform=tvOS Simulator,OS=18.1,name=Apple TV 4K (3rd generation) (at 1080p)' - - 'platform=visionOS Simulator,OS=1.0,name=Apple Vision Pro' - - 'platform=visionOS Simulator,OS=2.1,name=Apple Vision Pro' - 'platform=macOS' exclude: # Don't run old macOS with new Xcode @@ -43,21 +37,7 @@ jobs: # Don't run new macOS with old Xcode - runner: macos-15 xcode: Xcode_15.2 - # Don't run old simulators with new Xcode - - destination: 'platform=tvOS Simulator,OS=17.2,name=Apple TV 4K (3rd generation) (at 1080p)' - xcode: Xcode_16.1 - - destination: 'platform=iOS Simulator,OS=17.2,name=iPhone 15' - xcode: Xcode_16.1 - - destination: 'platform=visionOS Simulator,OS=1.0,name=Apple Vision Pro' - xcode: Xcode_16.1 - # Don't run new simulators with old Xcode - - destination: 'platform=tvOS Simulator,OS=18.1,name=Apple TV 4K (3rd generation) (at 1080p)' - xcode: Xcode_15.2 - - destination: 'platform=iOS Simulator,OS=18.1,name=iPhone 16' - xcode: Xcode_15.2 - - destination: 'platform=visionOS Simulator,OS=2.1,name=Apple Vision Pro' - xcode: Xcode_15.2 - iteration: [1, 2, 3, 4, 5] + iteration: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15] steps: - name: Configure Xcode