Project Triggers
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:
Poll SCM and Deploy to multiple environments
Setup Poll SCM Trigger for every 30 minutes.
Setup Post Build Trigger to deploy to Dev immediately after a successful build.
Setup a Schedule Deploy to QA every Monday 7am (cron: *0 0 7 ? * MON ** ).
Scheduled Build and Deploy
Setup Scheduled Build for every day at noon (cron: 0 0 12 * * ? ).
Setup a Post Build Trigger to deploy to Development environment.
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.
Select the Build Environment, Stream and specify the interval minutes to Poll SCM for changes.
Polling from SCM is supported for most SCM Types.
If FlexDeploy is installed on Windows, and using Git for continuous integration, do not install "Git Credential Manager".
If "Git Credential Manager" is already installed, then update global configuration using command - "git config --system --unset credential.helper".
Triggers for a release cannot be set here. They can be set on a release as a Snapshot Schedule.
Click the Save button to save the changes.
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.
Use the hamburger icon button to utilize sample cron expressions. Clear the contents of the Cron Expression input before using a sample expression. Multiple cron expressions can be provided and must be separated by semicolon.
If Release is selected and that specific Release is in Started mode, at the end of successful build due to Scheduled Build trigger, it will trigger the creation of a new release snapshot. You cannot select a release from the project screen. This is managed from the release based on the configured Snapshot Schedule.
Click the Save button to save the changes.
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.
Use the hamburger icon button to utilize sample cron expressions, clear the contents of the Cron Expression input before using a sample expression. Multiple cron expressions can be provided and must be separated by semicolon.
Click the Save button to save the changes.
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.
Use the hamburger icon button to utilize sample cron expressions, clear the contents of the Cron Expression input before using a sample expression. Multiple cron expressions can be provided and must be separated by semicolon.
Click the Save button to save the changes.
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.
Select the Deploy Environment, Branch & enter values for project deploy workflow inputs (if any) and Flexfields (if any).
Click the Save button to save the changes.
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.
Use the hamburger icon button to utilize sample cron expressions, clear the contents of the Cron Expression input before using a sample expression. Multiple cron expressions can be provided and must be separated by semicolon.
Click the Save button to save the changes.
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.
Use the hamburger icon button to utilize sample cron expressions, clear the contents of the Cron Expression input before using a sample expression. Multiple cron expressions can be provided and must be separated by semicolon.
Click the Save button to save the changes.
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.
Toggle the Webhooks Enabled option on the general configuration screen. This will automatically create a webhook trigger for every active branch on the project. They can be deleted as needed.
If webhooks are enabled, newly created branches on the project will automatically get webhook triggers.
Select the Build Environment, Branch, and enter values for project build workflow inputs (if any).
Click the Save button to save the changes.
- style