| ## Flutter Self Service Index | |
| Flutter provides multiple functionality through self-service services. Most of these services are available to any member of the Flutter GitHub organization. | |
| ### Audiences | |
| <table> | |
| <tr> | |
| <td><strong>Name</strong> | |
| </td> | |
| <td><strong>Description</strong> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Flutter contributors | |
| </td> | |
| <td>Anyone contributing to the flutter organization independently of membership to the organization. | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Flutter organization members | |
| </td> | |
| <td>[Anyone with write access to the flutter organization resources.](./contributing/Contributor-access.md) | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Googlers | |
| </td> | |
| <td>Members of the Flutter Organization that are also Googlers. | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Flutter organization administrators | |
| </td> | |
| <td>Members of the Flutter organization that have write access to the organization's settings. | |
| </td> | |
| </tr> | |
| </table> | |
| ### Infrastructure | |
| <table> | |
| <tr> | |
| <td><strong>Service</strong> | |
| </td> | |
| <td><strong>Description</strong> | |
| </td> | |
| <td><strong>Audience</strong> | |
| </td> | |
| <td><strong>Documentation</strong> | |
| </td> | |
| <td><strong>Location</strong> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>.ci.yaml | |
| </td> | |
| <td>Configuration file to instruct the Flutter Infrastructure which tasks to use to validate commits in a given repository. ".ci.yaml" is read from the top level folder of every supported repository. | |
| </td> | |
| <td>Flutter contributors | |
| </td> | |
| <td><a href="https://github.com/flutter/cocoon/blob/main/CI_YAML.md">Link</a> | |
| </td> | |
| <td>Top level folder of the GitHub repositories. E.g. <a href="https://github.com/flutter/flutter/blob/main/.ci.yaml">flutter/flutter</a>. | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Engine build configurations | |
| </td> | |
| <td>Configuration files to describe Flutter Engine builds and tests. | |
| </td> | |
| <td>Flutter contributors | |
| </td> | |
| <td><a href="https://github.com/flutter/flutter/blob/main/engine/src/flutter/ci/builders/README.md">Link</a> | |
| </td> | |
| <td><a href="https://github.com/flutter/flutter/tree/main/engine/src/flutter/ci/builders">engine/src/flutter/ci/builders</a> in the <a href="https://github.com/flutter/flutter/tree/main/engine">flutter engine</a> folder contains all the current configuration files. | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Autosubmit | |
| </td> | |
| <td>GitHub application that auto-submits pull requests that meet the approval criteria. | |
| </td> | |
| <td>Flutter organization administrators | |
| </td> | |
| <td><a href="go/enabling_autosubmit">Link</a> | |
| </td> | |
| <td>The application code is available in the <a href="https://github.com/flutter/cocoon/tree/main/auto_submit">flutter/cocoon</a> repository. | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>FirebaseLab tests | |
| </td> | |
| <td>Special type of tests configured through .ci.yaml that use resources from FirebaseLab | |
| </td> | |
| <td>Flutter contributors | |
| </td> | |
| <td>[Link](./infra/Flutter-FirebaseLab-Tests.md) | |
| </td> | |
| <td>These configurations go directly in the .ci.yaml file of <a href="https://github.com/flutter/flutter">flutter/flutter</a> repository. | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Codesigning | |
| </td> | |
| <td>Add metadata to engine artifacts for code signing infrastructure to sign them. | |
| </td> | |
| <td>Flutter contributors | |
| </td> | |
| <td>[Link](./engine/release/Code-signing-metadata.md) | |
| </td> | |
| <td>GN files and global generator scripts in the <a href="https://github.com/flutter/flutter/tree/main/engine">flutter engine</a> folder. | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Emulators support | |
| </td> | |
| <td>Using android emulators from tests. | |
| </td> | |
| <td>Flutter contributors | |
| </td> | |
| <td>[Link](./platforms/android/Testing-Android-Changes-in-the-Devicelab-on-an-Emulator.md) | |
| </td> | |
| <td>Flutter GitHub Wiki page under the “Android Development” Section. | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Rerun GitHub presubmit test using command line | |
| </td> | |
| <td>Run presubmit tasks using `reset-try-task` end point and gcloud CLI. | |
| </td> | |
| <td> Googlers | |
| </td> | |
| <td><a href="https://g3doc.corp.google.com/company/teams/flutter/infrastructure/playbook.md?cl=head#manually-trigger-try-pre-submit-builds">Link</a> | |
| </td> | |
| <td>Source code is available <a href="https://github.com/flutter/cocoon/blob/main/app_dart/lib/src/request_handlers/reset_try_task.dart">here</a> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Rerun postsubmit test from Flutter build dashboard | |
| </td> | |
| <td>Re-run postsubmit tasks from the go/flutter-dashboard. | |
| </td> | |
| <td> Googlers | |
| </td> | |
| <td><a href="https://screenshot.googleplex.com/3CgvqjbPEuoLzXs">Link</a> | |
| </td> | |
| <td>Source code is available <a href="https://g3doc.corp.google.com/company/teams/flutter/go/flutter-dashboard">go/flutter-dashboard</a> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Run a test multiple times in parallel via LED | |
| </td> | |
| <td>Run a shard test against a pull request to validate changes/fixes in parallel. | |
| </td> | |
| <td> Googlers | |
| </td> | |
| <td><a href="https://g3doc.corp.google.com/company/teams/flutter/infrastructure/playbook.md?cl=head#run-a-shard-multiple-times-in-parallel-via-led">Link</a> | |
| </td> | |
| <td>N/A | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Create a CIPD package | |
| </td> | |
| <td>Create and add the package build scripts to cocoon to enable auto building and uploading to flutter CIPD namespaces. | |
| </td> | |
| <td> Flutter contributors | |
| </td> | |
| <td><a href="https://github.com/flutter/cocoon/tree/main/cipd_packages">Link</a> | |
| </td> | |
| <td>Flutter public CIPD namespace: <a href="https://chrome-infra-packages.appspot.com/p/flutter">flutter</a> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>View Infra SLO metrics | |
| </td> | |
| <td>DataSite with links to a collection of Engineering Productivity dashboards including infrastructure, release and rolls. | |
| </td> | |
| <td> Googlers | |
| </td> | |
| <td><a href="https://data.corp.google.com/sites/dash_infra_metrics_datasite/infra_slo_metrics/">Link</a> | |
| </td> | |
| <td>N/A | |
| </td> | |
| </tr> | |
| </table> | |
| ### Release | |
| <table> | |
| <tr> | |
| <td><strong>Service</strong> | |
| </td> | |
| <td><strong>Description</strong> | |
| </td> | |
| <td><strong>Audience</strong> | |
| </td> | |
| <td><strong>Documentation</strong> | |
| </td> | |
| <td><strong>Location</strong> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Create non flutter release candidate branches | |
| </td> | |
| <td>Self service to create release candidate branches used by products different than flutter | |
| </td> | |
| <td> Googlers | |
| </td> | |
| <td><a href="https://g3doc.corp.google.com/company/teams/flutter/go/flutter-self-service-branches">Link</a> | |
| </td> | |
| <td>N/A | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Request 1P cherry picks | |
| </td> | |
| <td>Request approvals for cherry picks to release candidate branches | |
| </td> | |
| <td> Googlers | |
| </td> | |
| <td><a href="https://g3doc.corp.google.com/company/teams/flutter/go/flutter-cp">Link</a> | |
| </td> | |
| <td><a href="https://g3doc.corp.google.com/company/teams/flutter/github.com/flutter/flutter">flutter/flutter</a> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>G3 Fixes | |
| </td> | |
| <td>Apply G3 fixes that are automatically applied during the roll process. | |
| </td> | |
| <td> Googlers | |
| </td> | |
| <td><a href="https://g3doc.corp.google.com/company/teams/flutter/go/flutter-life-of-a-pr#g3fix">Link</a> | |
| </td> | |
| <td>N/A | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Single command releases | |
| </td> | |
| <td>Creating a third party flutter release with multi party approvals. | |
| </td> | |
| <td> Release Engineering | |
| </td> | |
| <td><a href="https://g3doc.corp.google.com/company/teams/flutter/go/flutter-release-workflow#push">Link</a> | |
| </td> | |
| <td>N/A | |
| </td> | |
| </tr> | |
| </table> | |
| ### Security | |
| <table> | |
| <tr> | |
| <td><strong>Service</strong> | |
| </td> | |
| <td><strong>Description</strong> | |
| </td> | |
| <td><strong>Audience</strong> | |
| </td> | |
| <td><strong>Documentation</strong> | |
| </td> | |
| <td><strong>Location</strong> | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Vulnerability scanning and fixes validation | |
| </td> | |
| <td>Automatic scanning of c, c++ third party dependencies and vulnerability. fix validation. | |
| </td> | |
| <td>Flutter organization members | |
| </td> | |
| <td><a href="https://github.com/flutter/flutter/security/code-scanning">Link</a> | |
| </td> | |
| <td><a href="https://github.com/flutter/flutter/security">Flutter GitHub security tab</a>. | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Request write access to non-prod GCP projects | |
| </td> | |
| <td> | |
| </td> | |
| <td> Googlers | |
| </td> | |
| <td><a href="https://g3doc.corp.google.com/company/teams/flutter/security/gcp_security/aod_roles_for_dash_projects.md?cl=head#available-groups">Link</a> | |
| </td> | |
| <td>N/A | |
| </td> | |
| </tr> | |
| <tr> | |
| <td>Rolling non-auto-updating 3p mirrored deps | |
| </td> | |
| <td>Dependencies on mirrors that do not automatically roll changes from their upstream might need to be manually rolled | |
| </td> | |
| <td> Googlers | |
| </td> | |
| <td><a href="https://g3doc.corp.google.com/company/teams/flutter/security/third_party_deps/index.md?cl=head#rolling-mirrored-dependencies">Link</a> | |
| </td> | |
| <td>N/A | |
| </td> | |
| </tr> | |
| </table> | |
| Googlers can access the internal version using [go/flutter-self-service](https://goto.google.com/flutter-self-service) |