- Prerequisites
- Setting up a schedule for a flow instance
- Connected flows
- View schedule list
- Schedule a flow on a specific branch, or at a specific tag
- Schedule format
- Delete a schedule
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 * * * * |
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.