-
Notifications
You must be signed in to change notification settings - Fork 249
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
kyle
committed
Oct 3, 2023
1 parent
c46f99b
commit 6197c29
Showing
1 changed file
with
220 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,220 @@ | ||
name: Amplify Canaries | ||
on: push | ||
|
||
# Cancels in-progress job when there is another push to same ref. | ||
# https://docs.github.com/en/actions/using-jobs/using-concurrency#example-only-cancel-in-progress-jobs-or-runs-for-the-current-workflow | ||
concurrency: | ||
group: ${{ github.workflow }}-${{ github.ref }} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
# Ensure an app pulling in published Amplify libraries can build properly | ||
build: | ||
runs-on: macos-latest | ||
# These permissions are needed to interact with GitHub's OIDC Token endpoint. | ||
permissions: | ||
id-token: write | ||
contents: read | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
channel: | ||
- "beta" | ||
- "stable" | ||
flutter-version: | ||
- "any" # latest | ||
include: | ||
- channel: "stable" | ||
flutter-version: "3.10.1" | ||
steps: | ||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # 3.6.0 | ||
with: | ||
persist-credentials: false | ||
|
||
- name: Install dependencies | ||
uses: ./.github/composite_actions/install_dependencies | ||
with: | ||
channel: ${{ matrix.channel }} | ||
flutter-version: ${{ matrix.flutter-version }} | ||
|
||
# Flutter requires Java 11 to build android apps with Gradle. | ||
- uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # 3.12.0 | ||
with: | ||
distribution: "corretto" # Amazon Corretto Build of OpenJDK | ||
java-version: "11" | ||
|
||
- name: Build Canary (iOS) | ||
run: build-support/build_canary.sh ios --no-codesign | ||
|
||
- name: Build Canary (Android) | ||
run: build-support/build_canary.sh apk | ||
|
||
- name: Log success/failure | ||
if: always() | ||
uses: ./.github/composite_actions/log_cw_metric_wrapper | ||
with: | ||
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | ||
aws-region: ${{ secrets.AWS_REGION }} | ||
|
||
job-status: ${{ job.status }} | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
test-type: canary | ||
package-name: amplify_canaries | ||
|
||
framework: flutter | ||
flutter-dart-channel: ${{ matrix.channel }} | ||
flutter-version: ${{ matrix.flutter-version }} | ||
|
||
e2e-android: | ||
runs-on: | ||
labels: amplify-flutter_ubuntu-latest_4-core | ||
# These permissions are needed to interact with GitHub's OIDC Token endpoint. | ||
permissions: | ||
id-token: write | ||
contents: read | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
channel: | ||
- "beta" | ||
- "stable" | ||
flutter-version: | ||
- "any" # latest | ||
include: | ||
- channel: "stable" | ||
flutter-version: "3.10.1" | ||
steps: | ||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # 3.6.0 | ||
with: | ||
persist-credentials: false | ||
submodules: true | ||
|
||
- name: Install dependencies | ||
uses: ./.github/composite_actions/install_dependencies | ||
with: | ||
channel: ${{ matrix.channel }} | ||
flutter-version: ${{ matrix.flutter-version }} | ||
|
||
# Flutter requires Java 11 to build android apps with Gradle. | ||
- uses: actions/setup-java@cd89f46ac9d01407894225f350157564c9c7cee2 # 3.12.0 | ||
with: | ||
distribution: "corretto" # Amazon Corretto Build of OpenJDK | ||
java-version: "11" | ||
|
||
# Must be run before `fetch_backends` so that `pubspec.lock` is present. | ||
- name: Pub Upgrade | ||
working-directory: canaries | ||
run: flutter pub upgrade | ||
|
||
- name: Fetch Amplify backend configurations | ||
uses: ./.github/composite_actions/fetch_backends | ||
with: | ||
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | ||
aws-region: ${{ secrets.AWS_REGION }} | ||
scope: amplified_todo | ||
secret-identifier: ${{ secrets.AWS_SECRET_IDENTIFIER }} | ||
|
||
- name: Run Canary | ||
timeout-minutes: 45 | ||
uses: ./.github/composite_actions/launch_android_emulator | ||
with: | ||
# Perform a build to reduce startup time of `flutter test` and prevent timeout | ||
script: cd canaries && flutter build apk --debug && flutter test -d emulator-5554 integration_test/main_test.dart | ||
|
||
- name: Log success/failure | ||
if: always() | ||
uses: ./.github/composite_actions/log_cw_metric_wrapper | ||
with: | ||
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | ||
aws-region: ${{ secrets.AWS_REGION }} | ||
|
||
job-status: ${{ job.status }} | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
test-type: canary | ||
package-name: amplify_canaries | ||
|
||
framework: flutter | ||
flutter-dart-channel: ${{ matrix.channel }} | ||
flutter-version: ${{ matrix.flutter-version }} | ||
platform: android | ||
platform-version: ${{ matrix.ios-version }} | ||
|
||
e2e-ios: | ||
runs-on: macos-latest-xl | ||
# These permissions are needed to interact with GitHub's OIDC Token endpoint. | ||
permissions: | ||
id-token: write | ||
contents: read | ||
strategy: | ||
fail-fast: false | ||
matrix: | ||
channel: | ||
- "beta" | ||
- "stable" | ||
flutter-version: | ||
- "any" # latest | ||
include: | ||
- channel: "stable" | ||
flutter-version: "3.10.1" | ||
ios-version: | ||
- "14.5" | ||
- "16" | ||
steps: | ||
- uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # 3.6.0 | ||
with: | ||
persist-credentials: false | ||
submodules: true | ||
|
||
- name: Install dependencies | ||
uses: ./.github/composite_actions/install_dependencies | ||
with: | ||
channel: ${{ matrix.channel }} | ||
flutter-version: ${{ matrix.flutter-version }} | ||
|
||
# Must be run before `fetch_backends` so that `pubspec.lock` is present. | ||
- name: Pub Upgrade | ||
working-directory: canaries | ||
run: flutter pub upgrade | ||
|
||
- name: Fetch Amplify backend configurations | ||
uses: ./.github/composite_actions/fetch_backends | ||
with: | ||
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | ||
aws-region: ${{ secrets.AWS_REGION }} | ||
scope: amplified_todo | ||
secret-identifier: ${{ secrets.AWS_SECRET_IDENTIFIER }} | ||
|
||
- name: Launch iOS simulator | ||
uses: ./.github/composite_actions/launch_ios_simulator | ||
timeout-minutes: 20 | ||
with: | ||
ios-version: ${{ matrix.ios-version }} | ||
|
||
- name: Run iOS integration tests | ||
timeout-minutes: 45 | ||
working-directory: canaries | ||
run: | | ||
# Perform a build to reduce startup time of `flutter test` and prevent timeout | ||
flutter build ios --simulator --target=integration_test/main_test.dart | ||
flutter test -d test integration_test/main_test.dart --verbose | ||
- name: Log success/failure | ||
if: always() | ||
uses: ./.github/composite_actions/log_cw_metric_wrapper | ||
with: | ||
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | ||
aws-region: ${{ secrets.AWS_REGION }} | ||
|
||
job-status: ${{ job.status }} | ||
github-token: ${{ secrets.GITHUB_TOKEN }} | ||
|
||
test-type: canary | ||
package-name: amplify_canaries | ||
|
||
framework: flutter | ||
flutter-dart-channel: ${{ matrix.channel }} | ||
flutter-version: ${{ matrix.flutter-version }} | ||
platform: ios | ||
platform-version: ${{ matrix.ios-version }} |