Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
61 changes: 25 additions & 36 deletions .github/composite_actions/get_platform_parameters/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,8 +41,8 @@ runs:

- id: get-xcode-version
run: |
LATEST_XCODE_VERSION=26.3
MINIMUM_XCODE_VERSION=16.0.0
LATEST_XCODE_VERSION=26.5
MINIMUM_XCODE_VERSION=26.0.1

INPUT_XCODE_VERSION=${{ inputs.xcode_version }}

Expand All @@ -66,60 +66,49 @@ runs:

# Map resolved Xcode versions to simulator destinations.
# Only explicitly supported versions are allowed — unknown versions fail.
#
# The minimum-Xcode legs (26.0.1) run against the 26.2 simulator runtime:
# the macos-26 runner image ships SDKs for 26.0 but only installs runtimes
# for 26.2 and later. The Xcode version is what we are validating here, and
# the runtime only needs to be at or above our deployment target floors.
case $INPUT_PLATFORM/$XCODE_VERSION in
iOS/26.3)
DEVICE="iPhone 16 Pro Max"
OS_VERSION="26.2"
;;
iOS/16.4.0)
DEVICE="iPhone 16 Pro Max"
OS_VERSION="18.5"
iOS/26.5)
DEVICE="iPhone 17 Pro Max"
OS_VERSION="26.5"
;;
iOS/16.0.0)
DEVICE="iPhone 16 Pro Max"
OS_VERSION="18.0"
;;
tvOS/26.3)
DEVICE="Apple TV 4K (3rd generation)"
iOS/26.0.1)
DEVICE="iPhone 17 Pro Max"
OS_VERSION="26.2"
;;
tvOS/16.4.0)
tvOS/26.5)
DEVICE="Apple TV 4K (3rd generation)"
OS_VERSION="18.5"
OS_VERSION="26.5"
;;
tvOS/16.0.0)
tvOS/26.0.1)
DEVICE="Apple TV 4K (3rd generation)"
OS_VERSION="18.0"
;;
watchOS/26.3)
DEVICE="Apple Watch Series 10 (46mm)"
OS_VERSION="26.2"
;;
watchOS/16.4.0)
DEVICE="Apple Watch Series 10 (46mm)"
OS_VERSION="11.5"
;;
watchOS/16.0.0)
DEVICE="Apple Watch SE (44mm) (2nd generation)"
OS_VERSION="11.0"
watchOS/26.5)
DEVICE="Apple Watch Series 11 (46mm)"
OS_VERSION="26.5"
;;
visionOS/26.3)
DEVICE="Apple Vision Pro"
watchOS/26.0.1)
DEVICE="Apple Watch Series 11 (46mm)"
OS_VERSION="26.2"
;;
visionOS/16.4.0)
visionOS/26.5)
DEVICE="Apple Vision Pro"
OS_VERSION="2.5"
OS_VERSION="26.5"
;;
visionOS/16.0.0)
visionOS/26.0.1)
DEVICE="Apple Vision Pro"
OS_VERSION="2.0"
OS_VERSION="26.2"
;;
macOS/*)
;;
*)
echo "Unsupported platform/Xcode combination: $INPUT_PLATFORM/$XCODE_VERSION"
echo "Supported Xcode versions: 26.3, 16.4.0, 16.0.0"
echo "Supported Xcode versions: 26.5, 26.0.1"
exit 1
;;
esac
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ runs:
run: |
XCODE_VERSION="${{ inputs.xcode_version }}"
PLATFORM="${{ inputs.platform }}"
DEFAULT_XCODE_VERSION="16.4.0"
DEFAULT_XCODE_VERSION="26.5"

# Skip for macOS as it doesn't need simulators
if [[ "$PLATFORM" == "macOS" ]]; then
Expand Down
2 changes: 1 addition & 1 deletion .github/composite_actions/run_xcodebuild/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ inputs:
destination:
required: false
type: string
default: 'platform=iOS Simulator,name=iPhone 13,OS=latest'
default: 'platform=iOS Simulator,name=iPhone 17 Pro Max,OS=latest'
sdk:
required: false
type: string
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/api-breaking-changes-detection.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ permissions:
jobs:
build-and-check-api-breakage:
name: Build and Check API Breakage
runs-on: macos-15
runs-on: macos-26

steps:
- name: Checkout repository
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/api_digester_check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ on:

jobs:
check-swift-api-digester:
runs-on: macos-15
runs-on: macos-26

steps:
- name: Checkout repository
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@ jobs:
strategy:
fail-fast: false
matrix:
platform: [iOS, macOS, tvOS, watchOS]
platform: [iOS, macOS, tvOS, watchOS, visionOS]

uses: ./.github/workflows/build_scheme.yml
with:
scheme: Amplify-Build
os-runner: 'macos-15'
os-runner: 'macos-26'
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-15'
default: 'macos-26'

save_build_cache:
type: boolean
Expand Down
16 changes: 9 additions & 7 deletions .github/workflows/canary.yml
Original file line number Diff line number Diff line change
Expand Up @@ -16,14 +16,16 @@ jobs:
strategy:
matrix:
include:
- os: macos-15
xcode-version: '26.3'
device: 'iPhone 16 Pro Max'
- os: macos-26
xcode-version: '26.5'
device: 'iPhone 17 Pro Max'
version: '26.5'
# Minimum supported Xcode. Uses the 26.2 runtime because the macos-26
# image does not install a 26.0 simulator runtime.
- os: macos-26
xcode-version: '26.0.1'
device: 'iPhone 17 Pro Max'
version: '26.2'
- os: macos-15
xcode-version: '16.4.0'
device: 'iPhone 16 Pro Max'
version: '18.5'
name: Canary Test - Xcode ${{ matrix.xcode-version }}
runs-on: ${{ matrix.os }}
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/integ_test_auth.yml
Original file line number Diff line number Diff line change
Expand Up @@ -62,13 +62,13 @@ jobs:
project_path: ./AmplifyPlugins/Auth/Tests/AuthHostedUIApp/
resource_subfolder: auth
timeout-minutes: 60
xcode_version: '16.4.0'
xcode_version: 'latest'
secrets: inherit

auth-webauthn-integration-test-iOS:
if: ${{ inputs.webauthn-ios != 'false' }}
name: Auth WebAuthn Integration Tests (iOS)
uses: ./.github/workflows/integ_test_auth_webauthn.yml
with:
xcode_version: '16.4.0'
xcode_version: 'latest'
secrets: inherit
2 changes: 1 addition & 1 deletion .github/workflows/integ_test_auth_webauthn.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ permissions:
jobs:
auth-webauthn-integration-tests:
name: iOS Tests | AuthWebAuthnApp
runs-on: macos-15
runs-on: macos-26
timeout-minutes: 60
environment: IntegrationTest

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-15
runs-on: macos-26
timeout-minutes: 60
environment: IntegrationTest
strategy:
Expand Down
2 changes: 1 addition & 1 deletion .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-15'
default: 'macos-26'
scheme:
description: 'The scheme to run the tests'
required: true
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/run_unit_tests_platforms.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ on:
os-runner:
description: 'runs-on input'
type: string
default: 'macos-15'
default: 'macos-26'

permissions:
contents: read
Expand Down
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-15
runs-on: macos-26
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-15
runs-on: macos-26
environment: IntegrationTest
env:
DESTINATION: ${{ needs.prepare-for-test.outputs.destination }}
Expand Down Expand Up @@ -72,7 +72,7 @@ jobs:

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

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

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

graphql-api-stress-test:
needs: prepare-for-test
runs-on: macos-15
runs-on: macos-26
environment: IntegrationTest
env:
DESTINATION: ${{ needs.prepare-for-test.outputs.destination }}
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/swiftformat.yml
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ jobs:
- name: SwiftFormat
run: |
./swiftformat.artifactbundle/swiftformat-$SWIFTFORMAT_VERSION-macos/bin/swiftformat --version
./swiftformat.artifactbundle/swiftformat-$SWIFTFORMAT_VERSION-macos/bin/swiftformat --lint . --reporter github-actions-log --swiftversion 5.9
./swiftformat.artifactbundle/swiftformat-$SWIFTFORMAT_VERSION-macos/bin/swiftformat --lint . --reporter github-actions-log --swiftversion 6.0

confirm-pass:
runs-on: macos-latest
Expand Down
4 changes: 2 additions & 2 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

## Project Info

- **Language**: Swift 5.9+ | **Build**: SPM (Xcode 16.0+) | **No CocoaPods**
- **Platforms**: iOS 13+, macOS 12+, tvOS 13+, watchOS 9+, visionOS 1+
- **Language**: Swift 6.0+ | **Build**: SPM (Xcode 26.0+) | **No CocoaPods**
- **Platforms**: iOS 15+, macOS 12+, tvOS 15+, watchOS 9+, visionOS 1+
- **Architecture**: Monorepo — core framework (`Amplify/`), category plugins (`AmplifyPlugins/`), standalone clients (`AmplifyClients/`)
- **Setup**: `open Package.swift` or `swift package resolve`

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4136,7 +4136,7 @@
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
Expand Down Expand Up @@ -4164,7 +4164,7 @@
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
LD_RUNPATH_SEARCH_PATHS = (
"$(inherited)",
"@executable_path/Frameworks",
Expand All @@ -4191,7 +4191,7 @@
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.aws.amplify.AWSAPIPluginGraphQLLambdaAuthTests;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand All @@ -4213,7 +4213,7 @@
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
IPHONEOS_DEPLOYMENT_TARGET = 15.0;
MARKETING_VERSION = 1.0;
PRODUCT_BUNDLE_IDENTIFIER = com.aws.amplify.AWSAPIPluginGraphQLLambdaAuthTests;
PRODUCT_NAME = "$(TARGET_NAME)";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -456,16 +456,14 @@ class AWSDataStoreLocalStoreTests: LocalStoreIntegrationTestBase {
XCTAssertEqual(
postsContainingRandomTitleNumber
.lazy
.filter { $0.status == .draft }
.count,
.count(where: { $0.status == .draft }),
1
)

XCTAssertEqual(
postsContainingRandomTitleNumber
.lazy
.filter { $0.status == .published }
.count,
.count(where: { $0.status == .published }),
1
)

Expand Down
Loading
Loading