Overview of flows and pipelines

This page explains what flows are and how you can use them to form automation pipelines to automate common tasks on WVS, such as creating and deploying builds, rendering art, and converting data.

What are flows

Flows are units of automation that help you perform common tasks in your WVS project. You can add multiple flows to your project and connect certain flows to perform more complex tasks. WVS takes your project flows and forms an automation pipeline without needing engineering support.

Where do flows come from

WVS has a flows registry containing a growing list of pre-built flows that you can add and use in any WVS project with little to no configuration. You can also create your own custom flows for use with any of your projects, and even contribute your flows to the registry.

Types of flows

There is no limit on the types of tasks that you can create flows for, but to make it easier to search and discover flows, they are grouped into a small number of categories. The categories will grow over time but the currently recognized categories include:

  • build: Builds the intended output of your project in the form of a file or directory that is meant for testing or distribution. This can be various flavors of game builds or editor builds, utility builds, and for previous projects even bundled packages of other outputs. You can find your project’s builds in Outputs > Builds in the WVS Web Client.
  • deploy: Copies data to a specific destination. For example, you can use a deploy-to-oculus flow to copy builds to your Oculus developer account. Or you can use a deploy-to-dropbox flow to copy your directory of marketing images to a Dropbox folder that’s shared with your marketing agency whenever a file in that folder changes.
  • render: Outputs images or movies to Outputs > Renders in the WVS Web Client.
  • data: Creates or transforms data files. Some data flows can also check new data into the repository.
  • report: Generate reports to Outputs > Reports in the WVS Web Client. Flows in other categories can also output reports, but report flows generate only reports.
  • notify: Sends notifications through various channels, such as email or Slack, when specific circumstances or events are detected to occur.
  • other: Flows in this category defy classification. While it is possible that any flow just be categorized as “other”, it is important to note that flows in this category do not have their outputs aggregated by any of the browsers in the **Outputs **section of the WVS Web Client.

How flows work

Once you add a flow to a project, you can configure the flow to be triggered in one of three ways:

  • Commit trigger: (Default) The flow runs every time a change is committed in the project or when a particular file in the project is updated.
  • Scheduled trigger: The flow runs at regular time intervals or when a certain amount of time elapses.
  • Manual trigger: The flow runs when a preconfigured trigger string is added to a commit description field.

Once a flow or pipeline completes, you can download the outputs, such as builds and renders, in the WVS Web client.

Example use case

You want to create a test build every time new work is committed in your WVS project. You also want to create a shipping build and export that build to dropbox. To automate these tasks using flows, you can create the following pipeline:

  1. Add a “Test Build” flow to your project.
  2. Add a “Shipping Build” flow to your project.
  3. Add a “Deploy to Dropbox” flow to your project.
  4. Configure the input of the “Deploy to Dropbox” flow as the output of the “Shipping Build” flow.

Once the pipeline is set, every time work is committed, the pipeline runs and outputs a test build and a shipping build that gets uploaded to Dropbox.

Next steps

  • Try the flows quickstart to get hands on experience using flows.