# Copyright 2020 The Flutter Authors
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd.

name: devtools

on:
  pull_request:
  push:
    branches:
      - master

# Declare default permissions as read only.
permissions:
  contents: read

defaults:
  run:
    # Use Bash on all platforms including Windows to avoid
    # two copies of bot scripts.
    shell: bash

env:
  GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
jobs:
  flutter-prep:
    uses: ./.github/workflows/flutter-prep.yaml

  main:
    name: ${{ matrix.os }} main
    needs: flutter-prep
    runs-on: ${{ matrix.os }}

    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest]
    steps:
      - name: git clone
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
      - name: Load Cached Flutter SDK
        uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7
        with:
          path: |
            ./tool/flutter-sdk
          key: flutter-sdk-${{ runner.os }}-${{ needs.flutter-prep.outputs.latest_flutter_candidate }}

      - name: tool/ci/bots.sh
        env:
          BOT: main
        run: ./tool/ci/bots.sh

  dcm:
    name: Dart Code Metrics
    needs: flutter-prep
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
    steps:
      - name: Clone Flutter DevTools
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
        with:
          ref: "${{ github.event.pull_request.head.sha }}"
      - name: Load Cached Flutter SDK
        uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7
        with:
          path: |
            ./tool/flutter-sdk
          key: flutter-sdk-${{ runner.os }}-${{ needs.flutter-prep.outputs.latest_flutter_candidate }}
      - name: Run tool/ci/bots.sh
        run: ./tool/ci/bots.sh
      - name: Install DCM
        run: |
          sudo apt-get update
          wget -qO- https://dcm.dev/pgp-key.public | sudo gpg --dearmor -o /usr/share/keyrings/dcm.gpg
          echo 'deb [signed-by=/usr/share/keyrings/dcm.gpg arch=amd64] https://dcm.dev/debian stable main' | sudo tee /etc/apt/sources.list.d/dart_stable.list
          sudo apt-get update
          sudo apt-get install dcm=1.38.3-1 # To avoid errors add `-1` (build number) to the version
          sudo chmod +x /usr/bin/dcm
          echo "$(dcm --version)"
      - name: Setup Dart SDK
        uses: dart-lang/setup-dart@7654d458321ee25acccccfdb86cd48bd95768ff1
      - name: Run dcm analyze on root
        run: |
          dcm analyze packages/devtools_app packages/devtools_app_shared packages/devtools_extensions packages/devtools_shared packages/devtools_test
      - name: Run dcm checks on packages
        run: |
          dcm check-unused-code packages/devtools_app packages/devtools_app_shared packages/devtools_extensions packages/devtools_shared packages/devtools_test --exclude-public-api
          dcm check-dependencies packages/devtools_app packages/devtools_app_shared packages/devtools_extensions packages/devtools_shared packages/devtools_test

  test-packages:
    name: ${{ matrix.os }} ${{ matrix.package }} test
    needs: flutter-prep
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        package:
          - devtools_app_shared
          - devtools_extensions
          - devtools_shared
        os: [ubuntu-latest, windows-latest]
    steps:
      - name: git clone
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
      - name: Load Cached Flutter SDK
        uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7
        with:
          path: |
            ./tool/flutter-sdk
          key: flutter-sdk-${{ runner.os }}-${{ needs.flutter-prep.outputs.latest_flutter_candidate }}
      - name: tool/ci/package_tests.sh
        env:
          PACKAGE: ${{ matrix.package }}
        run: ./tool/ci/package_tests.sh

  test-tool:
    name: ${{ matrix.os }} Tool test
    needs: flutter-prep
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ubuntu-latest, windows-latest]
    steps:
      - name: git clone
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
      - name: Load Cached Flutter SDK
        uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7
        with:
          path: |
            ./tool/flutter-sdk
          key: flutter-sdk-${{ runner.os }}-${{ needs.flutter-prep.outputs.latest_flutter_candidate }}
      - name: tool/ci/tool_tests.sh
        run: ./tool/ci/tool_tests.sh

  test:
    name: ${{ matrix.os }} ${{ matrix.bot }}
    needs: flutter-prep
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        bot:
          - build_ddc
          - build_dart2js
          - test_ddc
          - test_dart2js
        os: [ubuntu-latest, windows-latest]
    steps:
      - name: git clone
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
      - name: Load Cached Flutter SDK
        uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7
        with:
          path: |
            ./tool/flutter-sdk
          key: flutter-sdk-${{ runner.os }}-${{ needs.flutter-prep.outputs.latest_flutter_candidate }}
      - name: tool/ci/bots.sh
        env:
          BOT: ${{ matrix.bot }}
          PLATFORM: vm
        run: ./tool/ci/bots.sh

  macos-test:
    needs: flutter-prep
    name: macos goldens ${{ matrix.bot }}
    runs-on: macos-latest
    strategy:
      fail-fast: false
      matrix:
        bot:
          - test_dart2js
        only_golden:
          - true

    steps:
      - name: git clone
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
      - name: Load Cached Flutter SDK
        uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7
        with:
          path: |
            ./tool/flutter-sdk
          key: flutter-sdk-${{ runner.os }}-${{ needs.flutter-prep.outputs.latest_flutter_candidate }}
      - name: tool/ci/bots.sh
        env:
          BOT: ${{ matrix.bot }}
          PLATFORM: vm
          ONLY_GOLDEN: ${{ matrix.only_golden }}
        run: ./tool/ci/bots.sh

      - name: Upload Golden Failure Artifacts
        uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
        if: failure()
        with:
          name: golden_image_failures.${{ matrix.bot }}
          path: packages/devtools_app/test/**/failures/*.png
      - name: Notify of Quick Fix
        if: failure()
        env:
          WORKFLOW_ID: ${{ github.run_id }}
        run: |
          echo "::notice title=To Quickly Fix Goldens:: Run \`dt fix-goldens --run-id=$WORKFLOW_ID\` on your local branch."

  devtools-app-integration-test:
    name: ${{ matrix.os }} devtools_app integration-test ${{ matrix.bot }} - ${{ matrix.device }} - shard ${{ matrix.shard }}
    needs: flutter-prep
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        # TODO(https://github.com/flutter/devtools/issues/9357): Re-enable tests on windows-latest.
        os: [macos-latest]
        # Consider running integration tests in ddc mode, too.
        bot: [integration_dart2js, integration_dart2wasm]
        device: [flutter, flutter-web, dart-cli]
        # Option 1/1 will run all tests for a device in a single shard.
        # Option 1/2 and 2/2 should be enabled to run tests for a device in 2 shards.
        shard: [1/1, 1/2, 2/2, 1/3, 2/3, 3/3]
        exclude:
          # The 'flutter' device should be ran in three shards.
          - device: flutter
            shard: 1/1
          - device: flutter
            shard: 1/2
          - device: flutter
            shard: 2/2
          # The 'flutter-web' device should be ran in two shards.
          - device: flutter-web
            shard: 1/1
          - device: flutter-web
            shard: 1/3
          - device: flutter-web
            shard: 2/3
          - device: flutter-web
            shard: 3/3
          # The 'dart-cli' device can be ran in a single shard.
          - device: dart-cli
            shard: 1/2
          - device: dart-cli
            shard: 2/2
          - device: dart-cli
            shard: 1/3
          - device: dart-cli
            shard: 2/3
          - device: dart-cli
            shard: 3/3
    steps:
      - name: git clone
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
      - name: Load Cached Flutter SDK
        uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7
        with:
          path: |
            ./tool/flutter-sdk
          key: flutter-sdk-${{ runner.os }}-${{ needs.flutter-prep.outputs.latest_flutter_candidate }}
      - name: tool/ci/bots.sh
        env:
          BOT: ${{ matrix.bot }}
          DEVICE: ${{ matrix.device }}
          SHARD: ${{ matrix.shard }}
          DEVTOOLS_PACKAGE: devtools_app
        run: ./tool/ci/bots.sh

      - name: Upload Golden Failure Artifacts
        uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a
        if: failure()
        with:
          name: golden_image_failures.${{ matrix.bot }}
          path: packages/devtools_app/integration_test/**/failures/*.png

  devtools-extensions-integration-test:
    name: ${{ matrix.os }} devtools_extensions integration-test ${{ matrix.bot }}
    needs: flutter-prep
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        # Consider running integration tests in ddc mode, too.
        bot: [integration_dart2js, integration_wasm]
        os: [ubuntu-latest, windows-latest]
    steps:
      - name: git clone
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
      - name: Load Cached Flutter SDK
        uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7
        with:
          path: |
            ./tool/flutter-sdk
          key: flutter-sdk-${{ runner.os }}-${{ needs.flutter-prep.outputs.latest_flutter_candidate }}
      - name: tool/ci/bots.sh
        env:
          BOT: ${{ matrix.bot }}
          DEVTOOLS_PACKAGE: devtools_extensions
        run: ./tool/ci/bots.sh

  devtools-webdriver-test:
    name: ${{ matrix.os }} devtools webdriver test
    needs: flutter-prep
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        bot:
          - test_webdriver
        os: [ubuntu-latest, windows-latest]
    steps:
      - name: git clone
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
      - name: Load Cached Flutter SDK
        uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7
        with:
          path: |
            ./tool/flutter-sdk
          key: flutter-sdk-${{ runner.os }}-${{ needs.flutter-prep.outputs.latest_flutter_candidate }}
      - name: tool/ci/bots.sh
        env:
          BOT: ${{ matrix.bot }}
          PLATFORM: vm
        run: ./tool/ci/bots.sh

  benchmark-performance:
    name: benchmark-performance
    needs: flutter-prep
    runs-on: macos-latest
    strategy:
      fail-fast: false
    steps:
      - name: git clone
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
      - name: Load Cached Flutter SDK
        uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7
        with:
          path: |
            ./tool/flutter-sdk
          key: flutter-sdk-${{ runner.os }}-${{ needs.flutter-prep.outputs.latest_flutter_candidate }}
      - name: tool/ci/benchmark_performance.sh
        run: ./tool/ci/benchmark_performance.sh

  benchmark-size:
    name: benchmark-size
    needs: flutter-prep
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
    steps:
      - name: git clone
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
      - name: Load Cached Flutter SDK
        uses: actions/cache@8b402f58fbc84540c8b491a91e594a4576fec3d7
        with:
          path: |
            ./tool/flutter-sdk
          key: flutter-sdk-${{ runner.os }}-${{ needs.flutter-prep.outputs.latest_flutter_candidate }}
      - name: tool/ci/benchmark_size.sh
        run: ./tool/ci/benchmark_size.sh


# TODO(https://github.com/flutter/devtools/issues/1715): add a windows compatible version of tool/ci/bots.sh
# and run it from this job.
#  windows-test:
#    name: windows ${{ matrix.bot }}
#    runs-on: windows-latest
#    strategy:
#      fail-fast: false
#      matrix:
#        bot:
#          - test_dart2js
#    steps:
#      - name: git clone
#        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
#
#      - name: tool/ci/bots.sh
#        env:
#          BOT: ${{ matrix.bot }}
#          PLATFORM: vm
#        run: ./tool/ci/bots.sh

# TODO(https://github.com/flutter/devtools/issues/1987): rewrite integration tests.
#  integration:
#    name: integration ${{ matrix.bot }}
#    runs-on: ubuntu-latest
#    strategy:
#      fail-fast: false
#      matrix:
#        bot:
#          - integration_ddc
#          - integration_dart2js
#    steps:
#      - name: git clone
#        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0
#      - name: tool/ci/bots.sh
#        env:
#          BOT: ${{ matrix.bot }}
#        run: ./tool/ci/bots.sh

# TODO(https://github.com/flutter/devtools/issues/2437):
# PLATFORM=chrome is going away. We need to move these tests to run with
# chromedriver.
#    - BOT=test_ddc            PLATFORM=chrome
# PLATFORM=chrome is going away. We need to move these tests to run with
# chromedriver.
#   - BOT=test_dart2js        PLATFORM=chrome

