Continuous Integration
FlexDeploy's built-in Continuous Integration capabilities allow developers to setup various triggers for builds & deployment workflow executions. On the Project's Continuous Integration tab, click on the Create button and select Trigger Type to create triggers.
Triggers setup for Scheduled Build based on Release Snapshot Schedule configuration can not be deleted from this page.
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.
Project must be configured with build workflow & instance to create triggers, otherwise the following warning will be shown on the Continuous Integration tab.
The following trigger types can be created to achieve Continuous Integration and Continuous Delivery.
Poll SCM Trigger
Use this trigger type to poll 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 Subversion, Git, Microsoft TFS, Perforce, PVCS, and CVS SCM Types.
For Git, the Git executable must be installed on FlexDeploy server and it must be accessible in PATH. The Git executable version must be 1.7.9 or higher.
How do you determine if the Git executable is installed and accessible? For version you can just do "git --version" on the command line.
- If FlexDeploy is installed on Windows
- 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".
- Do not install "Git Credential Manager".
- If FlexDeploy is installed on Windows
- 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 build request when change is found in SCM Repository in comparison to previous version of the same project stream. If 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 cron expression. Select Build Environment, Stream & enter values for 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 plus icon button to utilize sample cron expressions. Clear the contents of the Cron Expression input before using a sample expression.
- 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 creation of 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.
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 plus icon button to utilize sample cron expressions, clear the contents of the Cron Expression input before using a sample expression.
- Click the Save button to save the changes.
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 plus icon button to utilize sample cron expressions, clear the contents of the Cron Expression input before using a sample expression.
- Click the Save button to save the changes.
For details on Cron Expression Syntax see http://www.quartz-scheduler.org/documentation/quartz-2.2.2/tutorials/crontrigger.html#crontrigger-tutorial
Post Build 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, Stream & enter values for project deploy workflow inputs (if any) and Flexfields (if any).
- 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.
- Check the Webhooks Enabled checkbox next to the Create dropdown. This will automatically create a webhook trigger for every active stream on the project. They can be deleted as needed.
- If webhooks are enabled, newly created streams on the project will automatically get webhook triggers.
- Select the Build Environment, Stream & enter values for project build workflow inputs (if any).
- Click the Save button to save the changes.
- style