# Flightpaths

For organizations that need to streamline a more complex release process, like cross-platform, white labeling, or advanced workflows with multiple instances of '[steps](/using-runway/release-steps.md#release-steps)', **Flightpaths** enables you to configure modular setups to manage branching, multi-step workflows as a single, cohesive release. This can help (for example) to provide a greatly simplified workflow and a clearer understanding of the status of multiple apps that are going through the release process in tandem. Additionally, you'll be able to apply the same settings across all apps within the flightpath, reducing setup time and the risk of forgetting to apply certain settings to multiple apps.&#x20;

Here are some example scenarios that are ideal use cases for leveraging Flightpaths:

* **White label**: same codebase used to ship multiple variations of the same app.
* **Multi-platform**: the same codebase used to build across multiple platforms, such as iOS and tvOS apps, or Android and wearOS apps.&#x20;
* **Multi-store**: the same codebase used to build a single APK that is distributed to different app stores, such as Google Play Console and Amazon Appstore.
* **Cross-platform**: same codebase used to build iOS and Android apps that go to their respective app stores.
* **Mature teams with complex releases**: customize Runway to perfectly capture all the different steps and dependencies that exist in your release process. Whether you’re shipping for mobile, TV, wearables, auto or all of the above, you can manage and automate releases exactly how you want to.

### Key definitions

* **Step archetype:** these are the different steps along the release management journey. They consist of **Kickoff**, **Feature readiness**, **Translations**, **Release candidate**, **Regression testing**, **Beta testing**, **Screenshots**, **Metadata**, **Approvals**, **App submission**, **App store review**, **Release,** and **Rollout**.&#x20;

{% hint style="info" %}
Runway currently supports multiple instances of **Release candidate**, **Beta testing**, **Regression testing**, **Screenshots**, **Metadata**, **Approvals**, **App submission**, **App store review**, **App store Release,** and **Rollout** steps within one Flightpaths workflow.
{% endhint %}

* **Step configuration:** a unique instance of a step (of a specific archetype) within a Flightpaths workflow.&#x20;
* **Flightpaths workflow:** a collection of step configurations and settings describing your team’s process for releasing one or more apps.

### Explaining Flightpaths with examples

#### White label&#x20;

Mercury is a white label iOS app with 6 flavors. All apps follow the same release schedule and are built via the same CI workflow, but are released via different apps in the same App Store Connect account. As part of this team's release process, this team has a rollout step pointing to the beta build, and a separate rollout step pointing to the production build.&#x20;

| Step archetype       | Step configuration                                                                               |
| -------------------- | ------------------------------------------------------------------------------------------------ |
| Kickoff              | 1 step for 6 iOS apps                                                                            |
| Feature readiness    | 1 step for 6 iOS apps                                                                            |
| Translations         | 1 step for 6 iOS apps                                                                            |
| Release candidate    | 1 step for 6 iOS apps                                                                            |
| Regression testing   | 1 step for 6 iOS apps                                                                            |
| Beta testing         | <p>6 steps </p><ul><li>Unique steps for each app </li></ul>                                      |
| Rollout (beta)       | <p>6 steps </p><ul><li>Unique steps connected to beta build for each app </li></ul>              |
| Screenshots          | <p>6 steps </p><ul><li>Unique steps for each app </li></ul>                                      |
| Metadata             | <p>6 steps </p><ul><li>Unique steps for each app </li></ul>                                      |
| Approvals            | 1 step for 6 apps                                                                                |
| App submission       | <p>6 steps </p><ul><li>Unique steps connected to each app in App Store Connect</li></ul>         |
| App store review     | <p>6 steps </p><ul><li>Unique steps connected to each app in App Store Connect</li></ul>         |
| Release              | <p>6 steps </p><ul><li>Unique steps connected to each app in App Store Connect</li></ul>         |
| Rollout (production) | <p>6 steps </p><ul><li>Unique steps connected to App Store Connect build for each app </li></ul> |

#### Cross-platform

Gemini is a cross-platform, React Native app that builds both an iOS and Android app. Both apps follow the same release schedule so that they’re released to users as close to the same time as possible. Gemini leverages the same CI workflow to build its release candidates. During beta testing, Gemini typically goes through both alpha and beta testing before the apps progress to the next step in the release process.&#x20;

In this scenario, Gemini would have the following Flightpaths workflow setup:&#x20;

| Step archetype     | Step configuration                                                                                                              |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------------- |
| Kickoff            | 1 step for iOS & Android apps                                                                                                   |
| Feature readiness  | 1 step for iOS & Android apps                                                                                                   |
| Translations       | 1 step for iOS & Android apps                                                                                                   |
| Release candidate  | 1 step for iOS & Android apps                                                                                                   |
| Regression testing | 1 step for iOS & Android apps                                                                                                   |
| Beta testing       | <p>4 steps </p><ul><li>Alpha - 2 steps to test iOS & Android apps </li><li>Beta - 2 steps to test iOS & Android apps </li></ul> |
| Screenshots        | <p>2 steps </p><ul><li>iOS app connected to App Store Connect</li><li>Android app connected to Google Play Console</li></ul>    |
| Metadata           | <p>2 steps </p><ul><li>iOS app connected to App Store Connect</li><li>Android app connected to Google Play Console</li></ul>    |
| Approvals          | 1 step for iOS & Android apps                                                                                                   |
| App submission     | <p>2 steps </p><ul><li>iOS app submits to App Store Connect</li><li>Android app submits to Google Play Console</li></ul>        |
| App store review   | <p>2 steps </p><ul><li>iOS app reviewed in App Store Connect</li><li>Android app reviewed in Google Play Console</li></ul>      |
| Release            | <p>2 steps </p><ul><li>iOS app releases in App Store Connect</li><li>Android app releases in Google Play Console</li></ul>      |

#### Mature teams requiring flexibility

Appollo is built natively in iOS and Android. Since different teams build each app, both iOs and Android Appollo apps will remain separate within Runway. However, both teams wish to have multiple CI steps and Approval steps throughout their release process. The below example focuses on just the iOS app, but both apps could be configured similarly.&#x20;

| Step archetype                                                        | Step configuration                    |
| --------------------------------------------------------------------- | ------------------------------------- |
| Kickoff                                                               | 1 step for 1 iOS app                  |
| Feature readiness                                                     | 1 step for 1 iOS app                  |
| Translations                                                          | 1 step for 1 iOS app                  |
| Release candidate                                                     | 1 step for 1 iOS app                  |
| Regression testing                                                    | 1 step for 1 iOS app                  |
| CI step (triggers CI workflow once regression testing step is Passed) | 1 step for 1 iOS app                  |
| Beta testing                                                          | 1 step for 1 iOS app                  |
| Screenshots                                                           | 1 step connected to App Store Connect |
| Metadata                                                              | 1 step connected to App Store Connect |
| Approval (submission)                                                 | 1 step for 1 iOS app                  |
| App submission                                                        | 1 step connected to App Store Connect |
| Approval (release)                                                    | 1 step for 1 iOS app                  |
| App store review                                                      | 1 step connected to App Store Connect |
| Release                                                               | 1 step connected to App Store Connect |
| Rollout                                                               | 1 step for 1 iOS app                  |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.runway.team/using-runway/flightpaths.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
