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: Run CI tests | |
on: | |
workflow_dispatch: | |
pull_request: | |
types: [opened, reopened, synchronize] | |
paths: | |
- "firestore/**" | |
push: | |
paths-ignore: | |
- "**.md" | |
jobs: | |
unit_tests: | |
runs-on: ubuntu-latest # FIXME | |
timeout-minutes: 30 | |
steps: | |
- name: "checkout" | |
uses: actions/checkout@v2 | |
- name: "install flutter" | |
# uses: actions/flutter-action@v1 # FIXME check this is correct | |
uses: subosito/flutter-action@v2 | |
# - name: "Install Flutter" | |
# run: | | |
# sh .github/workflows/scripts/install-flutter.sh stable | |
- name: "Run widget tests" | |
working-directory: firestore | |
run: flutter test | |
# test_lab: | |
# runs-on: idk | |
# timeout-minutes:30 | |
# steps: | |
# - name: "Test lab run" | |
# run: idk | |
# firebase-ios-sdk .github/workflows/dynamiclinks.yml | |
# See also .github/workflows/crashlytics.yml | |
# env: | |
# plist_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
# signin_secret: ${{ secrets.GHASecretsGPGPassphrase1 }} | |
# runs-on: macos-12 | |
# steps: | |
# - uses: actions/checkout@v3 | |
# - uses: ruby/setup-ruby@v1 | |
# - name: Setup quickstart | |
# run: scripts/setup_quickstart.sh DynamicLinks | |
# - name: Install Secret GoogleService-Info.plist | |
# run: scripts/decrypt_gha_secret.sh scripts/gha-encrypted/qs-dynamiclinks.plist.gpg \ | |
# quickstart-ios/dynamiclinks/GoogleService-Info.plist "$plist_secret" | |
# - name: Update Environment Variable For DynamicLinks | |
# run: | | |
# sed -i '' 's#DYNAMIC_LINK_DOMAIN#https://qpf6m.app.goo.gl#' quickstart-ios/dynamiclinks/DynamicLinksExample/DynamicLinksExample.entitlements | |
# sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExample/ViewController.m | |
# sed -i '' 's#YOUR_DOMAIN_URI_PREFIX";#https://qpf6m.app.goo.gl";#' quickstart-ios/dynamiclinks/DynamicLinksExampleSwift/ViewController.swift | |
# # - name: Build objc quickstart | |
# # run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh DynamicLinks) | |
# - name: Build swift quickstart | |
# if: ${{ always() }} | |
# run: ([ -z $plist_secret ] || scripts/third_party/travis/retry.sh scripts/test_quickstart_ftl.sh DynamicLinks swift) | |
# - id: ftl_test | |
# uses: FirebaseExtended/github-actions/firebase-test-lab@v1.2 | |
# with: | |
# credentials_json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_CREDENTIALS }} | |
# testapp_dir: quickstart-ios/build-for-testing | |
# test_type: "xctest" | |
# firebase-cpp-sdk | |
# test_android: | |
# name: test-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }} | |
# needs: [check_and_prepare, build_android] | |
# runs-on: macos-12 | |
# if: contains(needs.check_and_prepare.outputs.matrix_platform, 'Android') && needs.check_and_prepare.outputs.apis != '' && !cancelled() | |
# strategy: | |
# fail-fast: false | |
# matrix: | |
# build_os: ${{ fromJson(needs.check_and_prepare.outputs.matrix_os) }} | |
# android_device: ${{ fromJson(needs.check_and_prepare.outputs.android_device) }} | |
# test_type: ["gameloop"] | |
# exclude: | |
# - android_device: "android_target" | |
# test_type: "uitest" | |
# - android_device: "android_latest" | |
# test_type: "uitest" | |
# steps: | |
# - uses: actions/checkout@v3 | |
# with: | |
# ref: ${{needs.check_and_prepare.outputs.github_ref}} | |
# - name: Download Android integration tests artifact | |
# uses: actions/download-artifact@v3 | |
# with: | |
# path: testapps/testapps-android-${{ matrix.build_os }} | |
# name: testapps-android-${{ matrix.build_os }} | |
# - name: Setup python | |
# uses: actions/setup-python@v4 | |
# with: | |
# python-version: ${{ env.pythonVersion }} | |
# - name: Install prerequisites for testing | |
# uses: nick-invision/retry@v2 | |
# with: | |
# shell: bash | |
# timeout_minutes: 5 | |
# max_attempts: 3 | |
# command: scripts/gha/install_test_workflow_prereqs.sh -p Android -t true | |
# - name: Get Device Info | |
# id: device-info | |
# run: | | |
# echo "device_type=$( python scripts/gha/print_matrix_configuration.py -k ${{ matrix.android_device }} -get_device_type)" >> $GITHUB_OUTPUT | |
# echo "device=$( python scripts/gha/print_matrix_configuration.py -k ${{ matrix.android_device }} -get_ftl_device)" >> $GITHUB_OUTPUT | |
# - name: Setup java 8 for test_simulator.py | |
# uses: actions/setup-java@v3 | |
# with: | |
# distribution: 'temurin' | |
# java-version: '8' | |
# - name: Run Android integration tests on Emulator locally | |
# timeout-minutes: 150 | |
# if: steps.device-info.outputs.device_type == 'virtual' | |
# run: | | |
# python scripts/gha/test_simulator.py --testapp_dir testapps \ | |
# --test_type "${{ matrix.test_type }}" \ | |
# --android_device "${{ matrix.android_device }}" \ | |
# --logfile_name "android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }}" \ | |
# --ci | |
# - id: ftl_test | |
# if: steps.device-info.outputs.device_type == 'ftl' | |
# uses: FirebaseExtended/github-actions/firebase-test-lab@v1.2 | |
# timeout-minutes: 90 | |
# with: | |
# credentials_json: ${{ secrets.FIREBASE_SERVICE_ACCOUNT_CREDENTIALS }} | |
# testapp_dir: testapps | |
# test_type: "game-loop" | |
# test_devices: ${{ steps.device-info.outputs.device }} | |
# max_attempts: 3 | |
# validator: ${GITHUB_WORKSPACE}/scripts/gha/integration_testing/ftl_gha_validator.py | |
# - name: Read FTL Test Result | |
# if: ${{ steps.device-info.outputs.device_type == 'ftl' && !cancelled() }} | |
# shell: bash | |
# run: | | |
# python scripts/gha/read_ftl_test_result.py --test_result '${{ steps.ftl_test.outputs.test_summary }}' \ | |
# --output_path testapps/test-results-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }}.log | |
# - name: Prepare results summary artifact | |
# if: ${{ !cancelled() }} | |
# shell: bash | |
# run: | | |
# # If testapps do not exist, then it's a build error not test error. | |
# if [ -d "testapps/testapps-android-${{ matrix.build_os }}" ] && [ ! -f "testapps/test-results-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }}.log.json" ]; then | |
# mkdir -p testapps && echo "__SUMMARY_MISSING__" > "testapps/test-results-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }}.log.json" | |
# fi | |
# - name: Upload Android test results artifact | |
# if: ${{ !cancelled() }} | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: log-artifact | |
# path: testapps/test-results-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }}* | |
# retention-days: ${{ env.artifactRetentionDays }} | |
# - name: Upload Android test video artifact | |
# if: ${{ steps.device-info.outputs.device_type == 'virtual' && !cancelled() }} | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: mobile-simulator-test-video-artifact | |
# path: testapps/video-*-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }}.mp4 | |
# retention-days: ${{ env.artifactRetentionDays }} | |
# - name: Upload Android test logcat artifact | |
# if: ${{ steps.device-info.outputs.device_type == 'virtual' && !cancelled() }} | |
# uses: actions/upload-artifact@v3 | |
# with: | |
# name: mobile-simulator-test-logcat-artifact | |
# path: testapps/logcat-*-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }}.txt | |
# retention-days: ${{ env.artifactRetentionDays }} | |
# - name: Download log artifacts | |
# if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} | |
# uses: actions/download-artifact@v3 | |
# with: | |
# path: test_results | |
# name: log-artifact | |
# - name: Update PR label and comment | |
# if: ${{ needs.check_and_prepare.outputs.pr_number && failure() && !cancelled() }} | |
# shell: bash | |
# run: | | |
# python scripts/gha/it_workflow.py --stage progress \ | |
# --token ${{github.token}} \ | |
# --issue_number ${{needs.check_and_prepare.outputs.pr_number}}\ | |
# --actor ${{github.actor}} \ | |
# --commit ${{needs.check_and_prepare.outputs.github_ref}} \ | |
# --run_id ${{github.run_id}} | |
# - name: Summarize test results | |
# if: ${{ !cancelled() }} | |
# shell: bash | |
# run: | | |
# cat "testapps/test-results-android-${{ matrix.build_os }}-${{ matrix.android_device }}-${{ matrix.test_type }}.log" | |
# if [[ "${{ job.status }}" != "success" ]]; then | |
# exit 1 | |
# fi |