FlexDeploy's built-in Continuous Integration capabilities allow developers to setup various triggers for builds & deployment workflow executions. On the Project's Triggers tab, click on the Create button to create a new trigger.

A triggers created from a Snapshot Schedule on a release configuration cannot be deleted from this page. Those triggers are show up as Scheduled Builds and must be deleted from the release in question.

You can use these triggers in any combination to achieve continuous integration. A few examples are provided below:

For any trigger, you can configure Workflow Inputs or FlexFields by clicking on Trigger Type link.

The Project must be configured with build workflow & Target Group to create triggers.

Poll SCM Trigger

Use this trigger type to poll the source control system and build automatically if any change is found.

FlexDeploy will automatically initiate a build request when a change is found in the SCM Repository in comparison to previous version of the same project stream. If the build workflow requires inputs, you can configure inputs as well on this screen.

Scheduled Build

Use this trigger type to schedule builds at a certain time using a cron expression. Select Build Environment, Branch, cron expression, project build workflow inputs (if any). Just like when a build is initiated manually, this trigger will initiate a build and only complete the build if changes were found in SCM. This trigger type is useful if you have a requirement to schedule builds at a certain time of day, like 7:00 am.

Multiple Cron Expressions can be specified using semicolon as a delimiter. For example, 

0 0 11 ? * *;0 0 12 ? * *

is equivalent to

0 0 11-12 ? * *

An Admin Screen to test expressions is found in the Administration Menu on the Admin Operations Screen.

For details on Cron Expression Syntax see http://www.quartz-scheduler.org/documentation/quartz-2.2.2/tutorials/crontrigger.html#crontrigger-tutorial

Scheduled Deploy

Use this trigger type to schedule deployments of the latest project version to an environment at a certain time(s) using a cron expression. Select the Deploy Environment, Stream & enter values for cron expression, project deploy workflow inputs (if any) and Flexfields (if any). This trigger type is useful if you have requirement to deploy at certain time of day, like 8:00 pm, to a Development environment.

Multiple Cron Expressions can be specified using semicolon as a delimiter. For example, 

0 0 11 ? * *;0 0 12 ? * *

is equivalent to

0 0 11-12 ? * *

An Admin Screen to test expressions is found in the Administration Menu on the Admin Operations Screen.

For details on Cron Expression Syntax see http://www.quartz-scheduler.org/documentation/quartz-2.2.2/tutorials/crontrigger.html#crontrigger-tutorial

Scheduled Execution

Use this trigger type to schedule executions to an environment at a certain time(s) using a cron expression. Available only for utility projects. Select the Environment & enter values for cron expression, project deploy workflow inputs (if any) and Flexfields (if any). This trigger type is useful if you have requirement to execute a utility at certain time of day, like 8:00 pm, to a Development environment.

Multiple Cron Expressions can be specified using semicolon as a delimiter. For example, 

0 0 11 ? * *;0 0 12 ? * *

is equivalent to

0 0 11-12 ? * *

An Admin Screen to test expressions is found in the Administration Menu on the Admin Operations Screen.

For details on Cron Expression Syntax see http://www.quartz-scheduler.org/documentation/quartz-2.2.2/tutorials/crontrigger.html#crontrigger-tutorial

Post Build Deploy Trigger

Use this trigger type to trigger a Deployment immediately after any successful Build of this project. This trigger works with any kind of build, so it can be used along-side a manual build, scheduled build, build triggered from webhook, etc.

Discover Files Trigger

Use this trigger type to automate discovering files from SCM or Backend for package-based projects. The schedule for this trigger is set using a cron expression, which allows for discovery to occur at a specific interval or time of day. Select the Environment, Branch, Package Name (if necessary),  Salesforce Account Code (if necessary), & enter values for the cron expression. For example, if developers are adding new files to SCM, this will allow for files to be discovered automatically. This is the same action as the discover files buttons on the file explorer and package management screens.

For Salesforce projects, this trigger can automatically pull changes from Salesforce and commit them to the specified SCM repository. This is the same action that is done through the Salesforce configuration screen on a project. The account code that is provided will be the Salesforce account that the changes are pulled from. If the account code is not provided, then this trigger will populate files from the GIT repository. If a package name is provided any new or modified files will be added to the package. You can find more information on this process on the Salesforce page.

Multiple Cron Expressions can be specified using semicolon as a delimiter. For example, 

0 0 11 ? * *;0 0 12 ? * *

is equivalent to

0 0 11-12 ? * *

An Admin Screen to test expressions is found in the Administration Menu on the Admin Operations Screen.

For details on Cron Expression Syntax see http://www.quartz-scheduler.org/documentation/quartz-2.2.2/tutorials/crontrigger.html#crontrigger-tutorial

Discover Metadata Trigger

Use this trigger type to automatically generate Salesforce metadata to be used in Salesforce operations. Schedule for this trigger is set using a cron expression, which will allow for populate to occur on specific interval or time of day. Select the Salesforce Account Code & enter values for cron expression. For example, if you are using the Populate Trigger to automatically populate new and modified files from Salesforce, you can use this trigger to automatically update the package.xml metadata that is used in this process. This metadata is cached and can be used with the Populate trigger or the Salesforce project screen.

Multiple Cron Expressions can be specified using semicolon as a delimiter. For example, 

0 0 11 ? * *;0 0 12 ? * *

is equivalent to

0 0 11-12 ? * *

An Admin Screen to test expressions is found in the Administration Menu on the Admin Operations Screen.

For details on Cron Expression Syntax see http://www.quartz-scheduler.org/documentation/quartz-2.2.2/tutorials/crontrigger.html#crontrigger-tutorial

Webhook Trigger

Use this trigger type to initiate a build upon receiving a webhook. When a webhook is received and a function script uses buildProject or buildPackage methods, it will first verify a webhook trigger exists for the desired stream and build environment on the project before initiating the build.