Schedule flows

There are a couple of ways to trigger your automated builds. Flows that are assigned to a project can be set to manual, in which case they will run when you submit a change that includes a special keyword, or when a user manually runs the flow. (e.g. ‘wvs flow run’) Learn more about how to configure flows.
If flows are not set to manual, they will run automatically whenever a user submits a new change or merges their change into the project that meets the various conditions defined by the automated build flow instance.

Schedules can be created that run specific flows at specific times. For users with automated builds setup, you can schedule flows to run automatically. These schedules are completely independent to whether an automated build flow is set to manual or not.

Prerequisites

For a scheduled pipeline to run:

  • The latest client installed.
  • The schedule owner must have the Developer role. For pipelines on protected branches, the schedule owner must be allowed to merge to the branch.
  • Flows setup on the project.

Setting up a schedule for a flow instance

To setup a schedule for your flow, open up the command prompt and navigate to your project.

C:\wvs> cd myWVSproject

Let’s view the list of flows that you currently have in your project.

wvs flow status

Here is an example of the output.

C:\wvs\myWVSproject>wvs flow status

  Instance Name                   Registry Name                   Ctgry       Enabled
--------------------------------------------------------------------------------------
  linuxBuild                      build_ue_game_linux             build       true
  linuxServer                     build_ue_srv_lin_type1          build       true
  winGame                         build_ue_game_windows           build       true
  winServer                       build_ue_srv_win_type1          build       true
OK

Now that we know which flows we currently have in our project, run the following command to schedule the flow:

wvs flow schedule set <schedule> <flowName>

The schedule string uses cron notation.
Here is an example, if you want to setup a schedule for winGame from the list above to run every day at 3:30am, you would run the following command:

wvs flow schedule set "30 3 * * *" winGame

And if you want to setup multiple flows on the same schedule, you can append more Instance Names to the command:

wvs flow schedule set "30 3 * * *" winGame winServer

Depending on the nature of the flows and their resource requirements, this can be more efficient than running them individually.

Each Automated build flow can be scheduled multiple times.
For instance, you want to run your winGame flow every day at 3:30 am, and also every Friday at 5:00 pm. You can do that by setting up multiple schedules for that one flow.

wvs flow schedule set "30 3 * * *" winGame
wvs flow schedule set "0 17 * * 5" winGame

Connected flows

For Automated build flows that have a pre-requisite flow (one where it takes it’s input from), you will not have to specify the flow when setting the schedule. The pre-requisite flow will automatically run. If you are specifying multiple flows on the same schedule, and those flows have interdependencies, you will not have to specify the order in which the flows need to run, the necessary flows will automatically run in the correct order.

View schedule list

You can view your list of scheduled flows in your project by running the following command:

wvs flow schedule list

Here is an example of a list:

C:\wvs\myWVSproject>wvs flow schedule list
   ID  Schedule                   Description
---------------------------------------------
   36  "30 16 * * *"              WVS: on main do 'runFlow winGame'
OK

Schedule a flow on a specific branch, or at a specific tag

When setting schedules, it will automatically default to the branch you on but schedules can be set for any branch or tag. For example, if you are on the dev branch but want to set the schedule for the qa branch without having to switch, you can run the following:

wvs flow schedule set --ref <branch or tag> <schedule> <flowName>


Here is the example:

wvs flow schedule set --ref qa "0 22 * * 1-5" winGame

Schedule format

The string uses cron syntax. Cron scheduling uses a series of five numbers, separated by spaces. Each field is a number or a wildcard:

# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
# │ │ │ │ │
# │ │ │ │ │
# │ │ │ │ │
# * * * * * <command to execute>

In cron syntax, the asterisk (*) means ‘every’. Here are some common examples:

Entry Description Equivalent to
monthly Run once a month at midnight of the first day of the month 0 0 1 * *
monthly on the 22nd Run once a month on the 22nd 0 0 22 * *
weekly Run once a week at midnight on Sunday 0 0 * * 0
daily or midnight Run once a day at midnight 0 0 * * *
daily at 7:00pm Run once a day at 7:00pm 0 19 * * *
hourly Run once an hour at the beginning of the hour 0 * * * *
note
Learn more on cron.

Delete a schedule

To delete a schedule, first check the list of schedules in your project:

C:\wvs\myWVSproject>wvs flow schedule list
   ID  Schedule                   Description
---------------------------------------------
   38  "0 0 * * 0"                WVS: on main do 'runFlow winGame'
   37  "0 0 * * *"                WVS: on main do 'runFlow winGame'
   36  "30 16 * * *"              WVS: on main do 'runFlow winGame'
OK

Here is the structure.

wvs flow schedule delete <scheduleId>


If you want to delete schedule ID 37, run the following command:

wvs flow schedule delete 37

Need a hand setting up?

  • For additional support, please reach out to us on our Discord.

Was this helpful?

We would love to hear your feedback, Submit a ticket in our Issue Tracker.



Report a problem with this page.