diff --git a/.github/composite_actions/get_platform_parameters/action.yml b/.github/composite_actions/get_platform_parameters/action.yml index d007eca053..0fc0945e11 100644 --- a/.github/composite_actions/get_platform_parameters/action.yml +++ b/.github/composite_actions/get_platform_parameters/action.yml @@ -28,11 +28,17 @@ runs: XCODE_VERSION=${{ inputs.xcode_version }} case $XCODE_VERSION in - 14.3|15.0) ;; + 14.0.1|14.3|15.0) ;; *) echo "Unsupported Xcode version: $XCODE_VERSION"; exit 1 ;; esac DESTINATION_MAPPING='{ + "14.0.1": { + "iOS": "platform=iOS Simulator,name=iPhone 14,OS=16.0", + "tvOS": "platform=tvOS Simulator,name=Apple TV 4K (2nd generation),OS=16.0", + "watchOS": "platform=watchOS Simulator,name=Apple Watch Series 8 (45mm),OS=9.0", + "macOS": "platform=macOS,arch=x86_64" + }, "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", diff --git a/.github/workflows/build_amplify_swift.yml b/.github/workflows/build_amplify_swift.yml index bfefc79014..d03a453913 100644 --- a/.github/workflows/build_amplify_swift.yml +++ b/.github/workflows/build_amplify_swift.yml @@ -5,6 +5,14 @@ on: platform: type: string required: true + + xcode-version: + type: string + default: '14.3' + + os-runner: + type: string + default: 'macos-13' permissions: contents: read @@ -13,7 +21,7 @@ permissions: jobs: build-amplify-swift: name: Build Amplify-Package | ${{ inputs.platform }} - runs-on: macos-13 + runs-on: ${{ inputs.os-runner }} steps: - name: Checkout repository uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 #v4.1.1 @@ -25,7 +33,7 @@ jobs: uses: ./.github/composite_actions/get_platform_parameters with: platform: ${{ inputs.platform }} - xcode_version: '14.3' + xcode_version: ${{ inputs.xcode-version }} - name: Attempt to use the dependencies cache id: dependencies-cache @@ -55,7 +63,7 @@ jobs: scheme: Amplify-Package destination: ${{ steps.platform.outputs.destination }} sdk: ${{ steps.platform.outputs.sdk }} - xcode_path: /Applications/Xcode_14.3.app + xcode_path: /Applications/Xcode_${{ inputs.xcode-version }}.app cloned_source_packages_path: ~/Library/Developer/Xcode/DerivedData/Amplify derived_data_path: ${{ github.workspace }}/Build disable_package_resolution: ${{ steps.dependencies-cache.outputs.cache-hit }} diff --git a/.github/workflows/build_minimum_supported_swift_platforms.yml b/.github/workflows/build_minimum_supported_swift_platforms.yml new file mode 100644 index 0000000000..cac1600011 --- /dev/null +++ b/.github/workflows/build_minimum_supported_swift_platforms.yml @@ -0,0 +1,49 @@ +name: Build with Minimum Supported Xcode Versions +on: + workflow_dispatch: + push: + branches: + - main + +permissions: + contents: read + actions: write + +jobs: + build-amplify-with-minimum-supported-xcode: + name: Build Amplify Swift for ${{ matrix.platform }} + strategy: + fail-fast: false + matrix: + include: + - os-runner: macos-12 + xcode-version: 14.0.1 + platform: iOS + + - os-runner: macos-12 + xcode-version: 14.0.1 + platform: macOS + + - os-runner: macos-12 + xcode-version: 14.0.1 + platform: tvOS + + - os-runner: macos-12 + xcode-version: 14.0.1 + platform: watchOS + + uses: ./.github/workflows/build_amplify_swift.yml + with: + os-runner: ${{ matrix.os-runner }} + xcode-version: ${{ matrix.xcode-version }} + platform: ${{ matrix.platform }} + + confirm-pass: + runs-on: ubuntu-latest + name: Confirm Passing Build Steps + if: ${{ !cancelled() }} + needs: [ build-amplify-with-minimum-supported-xcode ] + env: + EXIT_CODE: ${{ contains(needs.*.result, 'failure') && 1 || 0 }} + steps: + - run: exit $EXIT_CODE