This new beta release includes substantial improvements to the expressions engine including new several expressions objects and functions. We have also made some updates to the stage editor, implemented automatic report generation for some reporting actions, and added several new deployment actions providing support for Docker, Azure, SQL packages, File Transfer and SSH.
Continue reading for details of all the new features.
The expression engine in Continua CI evaluates expression objects and variables denoted with $ and % characters. It also provides auto-completion suggestions when typing such expressions into expression fields. This has now been overhauled to include function return types, chaining of functions, nesting functions as function parameters, selection and filtering of collections and many improvements to expression parsing. We have added several new functions, objects and collections to give access to more values and allow you to manipulate those values.
You can now, for example, use the following expression to get the time that the penultimate build stage finished;
$Build.Stages.Item($Build.Stages.Count.Decrement()$).Finished.ToLongTimeString()$
combine the result of multiple flags by chaining functions, as in this expression;
$Build.HasErroredStages.Or($Build.HasFailedStages$).Or($Build.HasWarnings$)$
or use the following expression to get the comment of the first build changeset in the build containing the word 'merge' (ignoring case):
$Source.SuperFancyRepo.Changesets.First(Comment, Contains, "merge", true).Comment$
We have also included functions to get the value of a variable as a type, allowing you to use properties or functions on the variable value.
You can, for example, now use the following expression to get the abbreviated day of the week from a variable entered using a DateTime prompt;
$Utils.GetDateTime(%DateTimeTest%).DayOfWeek.Substring(0, 3)$
use expressions to do some more complex maths on a Numeric variable;
$Utils.GetNumber(%NumberTest%).Floor().Modulus(10).Multiply(100)$
or get the first selected value in a checkbox select variable with this expression:
$Utils.GetString(%CheckboxSelectTest%).SplitWithQuotes(",").First()$
You can see a full list of available expression objects, collection and functions on the Expression Objects page of the documentation.
Auto-completion has also been revamped so show more information in the suggestions list. A list of parameters with types is now shown for each for each function. Descriptions are also displayed on mouse over for each object, collection and function in the suggestions list. We have also removed some annoying quirks with expression auto-completion where the cursor would end up in the wrong place or end characters would be added in the wrong place.
As Continua CI matures, the number of actions (and categories) has increased. This can make it more difficult to find the action you need. We have therefore redesigned the action list.
The list of categories has been pulled up into a drop down menu with all actions listed below by default.
The filtering of actions using the search box is now fuzzier, using partial and keyword matches.
Stage buttons now resize (up to a maximum) to fit the stage name. If you stage names are short, this means you can fit more stages into your browser width. If your stage names are long, then the text will no longer escape the stage borders. Really long stage names which do not fit the maximum stage button size will now be truncated.
All actions now include a Validate button to allow you to check that all fields have valid values before saving.
We have added a set of premium actions which can be used for deploying the results of your build. The following actions can only be used if you have purchased one or more concurrent build licenses.
File Transfer action: This allows you to upload files to a remote server via FTP, FTPS and SFTP.
SSH Run Script action: This can be used to run a script or list of commands on an SSH server.
Azure actions: Several new actions are available to allow you to deploy web apps, function apps, files and blobs to Azure.
- Create Azure Resource Group
- Delete Azure Resource Group
- Create Azure App Service Plan
- Delete Azure App Service Plan
- Create Azure Web App
- Deploy Azure Web App
- Upload Azure Web App
- Control Azure Web App
- Delete Azure Web App
- Create Azure Function
- Deploy Azure Function
- Delete Azure Function
- Create Azure Storage Account
- Get Azure Storage Account Keys
- Delete Azure Storage Account
- Create Azure Storage Container
- Delete Azure Storage Container
- Upload Azure Blob
- Delete Azure Blob
- Create Azure File Share
- Delete Azure File Share
- Create Azure Directory
- Delete Azure Directory
- Upload Azure File
- Delete Azure File
Docker actions: These new actions are available to allow you to build, deploy and manage Docker containers.
- Docker Build
- Docker Command
- Docker Commit
- Docker Inspect
- Docker Pull
- Docker Push
- Docker Run
- Docker Stop
- Docker Tag
SQL Package actions: These new actions allow you to create, update and export SQL Server database schemas and table data.
- SQL Package Export
- SQL Package Extract
- SQL Package Import
- SQL Package Publish
- SQL Package Script
Extent Reports: Wrapper for the Extent Reports CLI for reporting on NUnit results.
ReportGenerator: Updated to include all the latest command line options.
Rename Directory: Does what it says on the tin..
Currently, there are a few steps to configure when setting up a report. You have to ensure that the report files are included in the Workspace Rules and that the report is defined in the Reports section of the configuration wizard. Furthermore, it's also recommended to include the report files in the artifact rules so that you can control when they are cleaned up.
To simplify this process, we have added a new option to automatically register the report with the server to actions which generate reports (FinalBuilder, ReportGenerator and the new Extent Reports action). Ticking this option shows a new tab where you can enter the name, description and run order of the report. When a stage completes, any report files generated by actions where this option is turned on, will automatically be copied to the server workspace. The main report file will be registered as a report and all report files will be registered as artifacts.
Download the installers for Continua CI v1.9.1 Beta from the Downloads page