chore(repo): Use CW Metric Logger in Canaries #244
Workflow file for this run
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
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_metric_wrapper | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
job-status: ${{ job.status }} | |
job-identifier: build (${{ matrix.channel }}, ${{ matrix.flutter-version}}) | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
test-type: canary | |
category: all | |
workflow-name: amplify_canaries/build | |
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_metric_wrapper | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
job-status: ${{ job.status }} | |
job-identifier: e2e-android (${{ matrix.channel }}, ${{ matrix.flutter-version}}) | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
test-type: canary | |
category: all | |
workflow-name: amplify_canaries/e2e-android | |
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_metric_wrapper | |
with: | |
role-to-assume: ${{ secrets.AWS_ROLE_TO_ASSUME }} | |
aws-region: ${{ secrets.AWS_REGION }} | |
job-status: ${{ job.status }} | |
job-identifier: e2e-ios (${{ matrix.channel }}, ${{ matrix.flutter-version}}) | |
github-token: ${{ secrets.GITHUB_TOKEN }} | |
test-type: canary | |
category: all | |
workflow-name: amplify_canaries/e2e-ios | |
framework: flutter | |
flutter-dart-channel: ${{ matrix.channel }} | |
flutter-version: ${{ matrix.flutter-version }} | |
platform: ios | |
platform-version: ${{ matrix.ios-version }} |