Add flows to automate project builds

This Hello World tutorial shows you how to add a flow to your project using the hello-world-demo-fork project as an example. Flows are units of automation that perform common tasks in your project whenever a triggering condition is met. The flow that you add in this tutorial automatically creates a zip archive of its configured input.

Prerequisites

You have completed the Fork and clone a project tutorial.

List project flows

When you fork an existing project, all flows that are added to that project are also included in your forked copy. List the flows that are added to your project by performing the following:

  1. On your local workstation, open Command Prompt:
    1. Open Run by pressing Windows+R.
    2. Enter cmd in the Run text box.
    3. Click Ok.

    The Command Prompt window opens.

  2. In Command Prompt, navigate to the local directory of the hello-world-demo-fork project, for example:

    cd C:\wvsProjects\hello-world-demo-fork
    
  3. List project flows by running the following command:

    wvs flow status
    

    The command returns something like the following:

    C:\wvsProjects\hello-world-demo-fork>wvs flow status
    
      Name                  Display Name          Source Flow           Ctgry       Enabled
    ---------------------------------------------------------------------------------------
      DevBuildLinux         Linux Dev Build       UE Windows Build      build       false
      WindowsBuild          Windows Dev Build     UE Windows Build      build       true
    OK
    
    C:\wvsProjects\hello-world-demo-fork>_
    

    In this example, the project has two flows added: DevBuildLinux and WindowsBuild. Since DevBuildLinux is disabled, only WindowsBuild gets triggered when a change is submitted. The WindowsBuild flow creates a build of your project for Windows everytime a change is committed to your project.

Add the archive_zip flow to your project

WVS has a registry of flows that you can add to your project. Add the archive_zip flow from the flow registry by performing the following:

  1. List the flows in the flows registry by running the following command:

    wvs flow registry
    

    The command returns a list of availabe flows like the following:

    C:\wvsProjects\hello-world-ue5-demo-fork>wvs flow registry
    
        Flow Name                    Description
    -----------------------------------------------------------------------------
        archive_zip                  Zip a set of input artifacts into a single output artifact.
        build_godot_android          Build for Godot projects targeting Android.
        build_godot_web              Build for Godot projects targeting Web .
        build_godot_windows          Build for Godot projects targeting Windows.
        build_ue_game_linux          Basic Build for Unreal Engine projects targeting Linux.
        build_ue_game_quest          Basic Game Build for Unreal Engine projects targeting the Oculus Quest.
        build_ue_game_ship_windows     Shipping Game Build for Unreal Engine projects targeting Windows
        build_ue_game_test_windows      Test Game Build for Unreal Engine projects targeting Windows
        build_ue_game_windows        Development Game Build for Unreal Engine projects targeting Windows.
        build_unity_android          Android build for Unity
        build_unity_ios              iOS Build for Unity
        build_unity_webgl            WebGL Build for Unity
        build_unity_windows          Windows build for Unity
        deploy_oculus                Deploy a build to a channel in your Oculus developer account.
        deploy_s3                    Deploy an artifact to an S3 bucket of the user's choice
        deploy_testflight_ios        iOS deployment to TestFlight
        page_album                   Creates pages album from set of images
        page_album_sxs               Creates side by side pages album from 2 sets of images
        render_ue_mrq_still          Unreal render stills from Movie Render Queue object
        report_git_inspector         Output a pages report with git statistics on this project.
        report_git_stats             Output a pages report with git statistics on this project.
    OK
    
    C:\wvsProjects\hello-world-ue5-demo-fork>_
    
  2. Add the archive_zip flow to your project by running the following command:

    wvs flow add archive_zip
    

Validate flow configurations

Check if the flows in your project are properly configured by running the following command:

wvs flow validate

If all flows in your project are properly configured, the command returns OK. Otherwise, the command returns something like the following:

C:\wvsProjects\hello-world-ue5-demo-fork>wvs flow validate
Error: Variable 'INPUT1' is required in 'archive_zip_1'
Flow instance validation failed

C:\wvsProjects\hello-world-ue5-demo-fork>_

In this case, the archive_zip_1 that was added to the project in the previous step requires its INPUT1 variable to be configured.

Configure flow variables

The archive_zip_1 flow, which is an instance of the archive_zip flow, takes an input and creates a zip archive of that input. In this tutorial, we want to create a zip of our project build, which is the output of the WindowsBuild flow. To make the output of WindowsBuild become the input of archive_zip, run the following command:

wvs flow connect WindowsBuild to archive_zip_1 INPUT1

Trigger the flows

By default, project flows are triggered whenever a change is submitted in the project.

  1. Go to the WVS project dashboard.

  2. In the search field, enter hello-world-demo-fork.
  3. Click on the name of the project to enter the project homepage.
  4. Click Version control > Files.
  5. Click README.md.
  6. Click the dropdown next to Open in Web IDE and select Edit.
  7. Click Edit to start editing README.md.
  8. Add a period at the end of An example Hello World project for UE5 or make any other change.
  9. Click Commit changes.

Committing a change to any file in the project repository triggers the flows to run.

Check flow running status

You can check progress of your pipelines in the WVS Web Client by clicking Pipelines > Flows.

To check the status of individual flows in the pipeline, click the pipeline ID number.

View and download flow outputs

When your pipeline has a status of Passed, you can download your pipeline outputs by performing the following:

  1. In the Web Client, click Outputs > Builds.
  2. Hover your mouse cursor over the build to reveal the vertical ellipses menu icon on the right hand side.
  3. Click the vertical ellipses icon and click Download.

Notice that the build artifacts are downloaded as a zip file.

Next steps