Skip to content

Commit

Permalink
chore: kickoff release
Browse files Browse the repository at this point in the history
  • Loading branch information
phantumcode committed May 22, 2024
2 parents 6c73bf7 + 8a1b353 commit 4effe30
Show file tree
Hide file tree
Showing 53 changed files with 365 additions and 606 deletions.
1 change: 1 addition & 0 deletions .codecov.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ codecov:

coverage:
status:
patch: off
project:
default:
threshold: 1%
66 changes: 41 additions & 25 deletions .github/composite_actions/get_platform_parameters/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ outputs:
destination:
description: "The destination associated with the given platform and Xcode version"
value: ${{ steps.get-destination.outputs.destination }}
device:
description: "The device name used in the destination"
value: ${{ steps.get-destination.outputs.device }}
sdk:
description: "The SDK associated with the given platform"
value: ${{ steps.get-sdk.outputs.sdk }}
Expand All @@ -38,23 +41,16 @@ runs:

- id: get-xcode-version
run: |
LATEST_XCODE_VERSION=14.3.1
MINIMUM_XCODE_VERSION_IOS_MAC=14.1.0
MINIMUM_XCODE_VERSION_WATCH_TV=14.3.1
LATEST_XCODE_VERSION=15.3.0
MINIMUM_XCODE_VERSION=15.0.1
INPUT_XCODE_VERSION=${{ inputs.xcode_version }}
case $INPUT_XCODE_VERSION in
latest)
XCODE_VERSION=$LATEST_XCODE_VERSION ;;
minimum)
INPUT_PLATFORM=${{ inputs.platform }}
case $INPUT_PLATFORM in
iOS|macOS)
XCODE_VERSION=$MINIMUM_XCODE_VERSION_IOS_MAC ;;
tvOS|watchOS)
XCODE_VERSION=$MINIMUM_XCODE_VERSION_WATCH_TV ;;
esac ;;
XCODE_VERSION=$MINIMUM_XCODE_VERSION ;;
*)
XCODE_VERSION=$INPUT_XCODE_VERSION ;;
esac
Expand All @@ -68,23 +64,42 @@ runs:
INPUT_DESTINATION='${{ inputs.destination }}'
INPUT_XCODE_VERSION=${{ inputs.xcode_version }}
DESTINATION_MAPPING='{
"minimum": {
"iOS": "platform=iOS Simulator,name=iPhone 14,OS=16.1",
"tvOS": "platform=tvOS Simulator,name=Apple TV 4K (2nd generation),OS=16.1",
"watchOS": "platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=9.1",
"macOS": "platform=macOS,arch=x86_64"
},
"latest": {
"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"
}
}'
case $INPUT_PLATFORM/$INPUT_XCODE_VERSION in
iOS/latest)
DEVICE="iPhone 15"
OS_VERSION="17.4"
;;
iOS/*)
DEVICE="iPhone 14"
OS_VERSION="17.0.1"
;;
tvOS/latest)
DEVICE="Apple TV 4K (3rd generation)"
OS_VERSION="17.4"
;;
tvOS/*)
DEVICE="Apple TV 4K (3rd generation)"
OS_VERSION="17.0"
;;
watchOS/latest)
DEVICE="Apple Watch Series 9 (45mm)"
OS_VERSION="10.4"
;;
watchOS/*)
DEVICE="Apple Watch Series 8 (45mm)"
OS_VERSION="10.0"
;;
esac
DESTINATION_MAPPING="{
\"iOS\": \"platform=iOS Simulator,name=$DEVICE,OS=$OS_VERSION\",
\"tvOS\": \"platform=tvOS Simulator,name=$DEVICE,OS=$OS_VERSION\",
\"watchOS\": \"platform=watchOS Simulator,name=$DEVICE,OS=$OS_VERSION\",
\"macOS\": \"platform=macOS,arch=arm64\"
}"
if [ -z "$INPUT_DESTINATION" ]; then
DESTINATION=$(echo $DESTINATION_MAPPING | jq -r ".\"$INPUT_XCODE_VERSION\".$INPUT_PLATFORM")
DESTINATION=$(echo $DESTINATION_MAPPING | jq -r ".$INPUT_PLATFORM")
else
DESTINATION=$INPUT_DESTINATION
fi
Expand All @@ -94,6 +109,7 @@ runs:
exit 1
fi
echo "destination=$DESTINATION" >> $GITHUB_OUTPUT
echo "device=$DEVICE" >> $GITHUB_OUTPUT
shell: bash

- id: get-sdk
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ jobs:
uses: ./.github/workflows/build_scheme.yml
with:
scheme: Amplify-Build
os-runner: ${{ (matrix.platform == 'tvOS' || matrix.platform == 'watchOS') && 'macos-13' || 'macos-12' }}
os-runner: 'macos-latest'
xcode-version: 'minimum'
platform: ${{ matrix.platform }}
save_build_cache: false
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build_scheme.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ on:

os-runner:
type: string
default: 'macos-13'
default: 'macos-latest'

save_build_cache:
type: boolean
Expand Down
18 changes: 9 additions & 9 deletions .github/workflows/canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ jobs:
strategy:
matrix:
include:
- os: macos-13
xcode-version: 14.3.1
device: iPhone 14 Pro
version: 16.4
- os: macos-12
xcode-version: 14.1
device: iPhone 13 Pro
version: 16.1
- os: macos-latest
xcode-version: 15.3.0
device: iPhone 15
version: 17.4
- os: macos-latest
xcode-version: 15.0.1
device: iPhone 14
version: 17.0.1
name: Canary Test - Xcode ${{ matrix.xcode-version }}
runs-on: ${{ matrix.os }}
steps:
Expand All @@ -39,7 +39,7 @@ jobs:
run: amplify init --quickstart --frontend ios

- name: Setup Ruby
uses: ruby/setup-ruby@250fcd6a742febb1123a77a841497ccaa8b9e939 # v1.152.0
uses: ruby/setup-ruby@22fdc77bf4148f810455b226c90fb81b5cbc00a7 # v1.171.0
with:
ruby-version: '3.2.1'
bundler-cache: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/integ_test_push_notifications.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ permissions:
jobs:
push-notification-integration-tests:
name: ${{ matrix.platform }} Tests | PushNotificationHostApp
runs-on: macos-13
runs-on: macos-latest
timeout-minutes: 30
environment: IntegrationTest
strategy:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/release_kickoff.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Creates a PR to push main to release branch to kick-off the release workflow
name: Release Amplify iOS
name: Release Amplify iOS

on:
workflow_dispatch:
Expand All @@ -10,7 +10,7 @@ permissions:
jobs:
release:
name: Release
runs-on: macos-12
runs-on: macos-latest

steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/run_integration_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ on:
inputs:
os-runner:
type: string
default: 'macos-13'
default: 'macos-latest'
scheme:
description: 'The scheme to run the tests'
required: true
Expand All @@ -17,7 +17,7 @@ on:
required: false
type: string
xcode_version:
description: 'The verion of Xcode used to run these tests'
description: 'The version of Xcode used to run these tests'
default: 'latest'
type: string
destination:
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/run_unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,17 @@ on:
required: false
type: string
default: '-test-iterations 3 -retry-tests-on-failure'
os-runner:
description: 'runs-on input'
type: string

permissions:
contents: read

jobs:
unit-tests:
name: ${{ inputs.platform }} Tests | ${{ inputs.scheme }}
runs-on: macos-13
runs-on: ${{ inputs.os-runner }}
timeout-minutes: ${{ inputs.timeout-minutes }}
steps:
- name: Checkout repository
Expand Down
7 changes: 6 additions & 1 deletion .github/workflows/run_unit_tests_platforms.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,10 @@ on:
required: false
type: string
default: '-test-iterations 3 -retry-tests-on-failure'
os-runner:
description: 'runs-on input'
type: string
default: 'macos-latest'

permissions:
contents: read
Expand All @@ -43,4 +47,5 @@ jobs:
platform: ${{ matrix.platform }}
generate_coverage_report: ${{ github.event_name != 'workflow_dispatch' && matrix.platform == 'iOS' && inputs.generate_coverage_report }}
timeout-minutes: ${{ inputs.timeout-minutes }}
test_iterations_flags: ${{ inputs.test_iterations_flags }}
test_iterations_flags: ${{ inputs.test_iterations_flags }}
os-runner: ${{ inputs.os-runner }}
12 changes: 6 additions & 6 deletions .github/workflows/stress_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ concurrency:

jobs:
prepare-for-test:
runs-on: macos-13
runs-on: macos-latest
environment: IntegrationTest
outputs:
destination: ${{ steps.platform.outputs.destination }}
Expand All @@ -40,7 +40,7 @@ jobs:

auth-stress-test:
needs: prepare-for-test
runs-on: macos-13
runs-on: macos-latest
environment: IntegrationTest
env:
DESTINATION: ${{ needs.prepare-for-test.outputs.destination }}
Expand Down Expand Up @@ -71,7 +71,7 @@ jobs:

geo-stress-test:
needs: prepare-for-test
runs-on: macos-13
runs-on: macos-latest
environment: IntegrationTest
env:
DESTINATION: ${{ needs.prepare-for-test.outputs.destination }}
Expand Down Expand Up @@ -102,7 +102,7 @@ jobs:

storage-stress-test:
needs: prepare-for-test
runs-on: macos-13
runs-on: macos-latest
environment: IntegrationTest
env:
DESTINATION: ${{ needs.prepare-for-test.outputs.destination }}
Expand Down Expand Up @@ -133,7 +133,7 @@ jobs:

datastore-stress-test:
needs: prepare-for-test
runs-on: macos-13
runs-on: macos-latest
environment: IntegrationTest
env:
DESTINATION: ${{ needs.prepare-for-test.outputs.destination }}
Expand Down Expand Up @@ -164,7 +164,7 @@ jobs:

graphql-api-stress-test:
needs: prepare-for-test
runs-on: macos-13
runs-on: macos-latest
environment: IntegrationTest
env:
DESTINATION: ${{ needs.prepare-for-test.outputs.destination }}
Expand Down
6 changes: 2 additions & 4 deletions .github/workflows/unit_test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,7 @@ jobs:
AWSPredictionsPlugin,
AWSPinpointAnalyticsPlugin,
AWSPinpointPushNotificationsPlugin,
AWSS3StoragePlugin,
CoreMLPredictionsPlugin
AWSS3StoragePlugin
]
uses: ./.github/workflows/run_unit_tests_platforms.yml
with:
Expand All @@ -96,8 +95,7 @@ jobs:
{ scheme: AWSPredictionsPlugin, flags: 'Predictions_plugin_unit_test,unit_tests' },
{ scheme: AWSPinpointAnalyticsPlugin, flags: 'Analytics_plugin_unit_test,unit_tests' },
{ scheme: AWSPinpointPushNotificationsPlugin, flags: 'PushNotifications_plugin_unit_test,unit_tests' },
{ scheme: AWSS3StoragePlugin, flags: 'Storage_plugin_unit_test,unit_tests' },
{ scheme: CoreMLPredictionsPlugin, flags: 'CoreMLPredictions_plugin_unit_test,unit_tests' }
{ scheme: AWSS3StoragePlugin, flags: 'Storage_plugin_unit_test,unit_tests' }
]
uses: ./.github/workflows/upload_coverage_report.yml
with:
Expand Down
8 changes: 3 additions & 5 deletions Amplify/Core/Support/AmplifyAsyncSequence.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,16 @@ public typealias WeakAmplifyAsyncSequenceRef<Element> = WeakRef<AmplifyAsyncSequ

public class AmplifyAsyncSequence<Element: Sendable>: AsyncSequence, Cancellable {
public typealias Iterator = AsyncStream<Element>.Iterator
private var asyncStream: AsyncStream<Element>! = nil
private var continuation: AsyncStream<Element>.Continuation! = nil
private let asyncStream: AsyncStream<Element>
private let continuation: AsyncStream<Element>.Continuation
private var parent: Cancellable?

public private(set) var isCancelled: Bool = false

public init(parent: Cancellable? = nil,
bufferingPolicy: AsyncStream<Element>.Continuation.BufferingPolicy = .unbounded) {
self.parent = parent
asyncStream = AsyncStream<Element>(Element.self, bufferingPolicy: bufferingPolicy) { continuation in
self.continuation = continuation
}
(asyncStream, continuation) = AsyncStream.makeStream(of: Element.self, bufferingPolicy: bufferingPolicy)
}

public func makeAsyncIterator() -> Iterator {
Expand Down
8 changes: 3 additions & 5 deletions Amplify/Core/Support/AmplifyAsyncThrowingSequence.swift
Original file line number Diff line number Diff line change
Expand Up @@ -11,18 +11,16 @@ public typealias WeakAmplifyAsyncThrowingSequenceRef<Element> = WeakRef<AmplifyA

public class AmplifyAsyncThrowingSequence<Element: Sendable>: AsyncSequence, Cancellable {
public typealias Iterator = AsyncThrowingStream<Element, Error>.Iterator
private var asyncStream: AsyncThrowingStream<Element, Error>! = nil
private var continuation: AsyncThrowingStream<Element, Error>.Continuation! = nil
private let asyncStream: AsyncThrowingStream<Element, Error>
private let continuation: AsyncThrowingStream<Element, Error>.Continuation
private var parent: Cancellable?

public private(set) var isCancelled: Bool = false

public init(parent: Cancellable? = nil,
bufferingPolicy: AsyncThrowingStream<Element, Error>.Continuation.BufferingPolicy = .unbounded) {
self.parent = parent
asyncStream = AsyncThrowingStream(Element.self, bufferingPolicy: bufferingPolicy, { continuation in
self.continuation = continuation
})
(asyncStream, continuation) = AsyncThrowingStream.makeStream(of: Element.self, bufferingPolicy: bufferingPolicy)
}

public func makeAsyncIterator() -> Iterator {
Expand Down
7 changes: 3 additions & 4 deletions Amplify/Core/Support/TaskQueue.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,12 +10,11 @@ import Foundation
/// A helper for executing asynchronous work serially.
public class TaskQueue<Success> {
typealias Block = @Sendable () async -> Void
private var streamContinuation: AsyncStream<Block>.Continuation!
private let streamContinuation: AsyncStream<Block>.Continuation

public init() {
let stream = AsyncStream<Block>.init { continuation in
streamContinuation = continuation
}
let (stream, continuation) = AsyncStream.makeStream(of: Block.self)
self.streamContinuation = continuation

Task {
for await block in stream {
Expand Down
1 change: 1 addition & 0 deletions Amplify/DevMenu/AmplifyDevMenu.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import UIKit

/// Presents a developer menu using the provided `DevMenuPresentationContextProvider`
/// upon notification from a `TriggerRecognizer`. Default recognizer is a `LongPressGestureRecognizer`
@MainActor
public final class AmplifyDevMenu: DevMenuBehavior, TriggerDelegate {

weak var devMenuPresentationContextProvider: DevMenuPresentationContextProvider?
Expand Down
Loading

0 comments on commit 4effe30

Please sign in to comment.