Solved

Build automation

  • 27 October 2020
  • 2 replies
  • 236 views

Userlevel 5
Badge +15

We're looking for methods to improve our build automation with the SF. We think we do a lot of manual and repeating tasks / labour which could be automated. I'm not sure if what is already possible, or is a feature request. I'd like to hear some thoughts and experiences of other users. As ISV we have experience with build automation, using tooling like Atlassian Bamboo, Jenkins, Azure DevOps etc to automate processes. But with the SF platform this is kind of new.

For each release / merge we do exactly the same steps, which are all prone to fail because of manual labour. Once we have the deployment package, we're good: We can push this package to a GIT repository and pick it up for testing installation- and upgrade script, synchronization with IAM, running automated UI tests etc.

But before you have the deployment package you need to do some steps;

  • Merge the branch into the trunk 
  • Run the validations 
  • Execute unit tests
  • Create the deployment package

What we want to achieve is that those steps could be automated (for example using a CLI / Indicium call). If the steps have no issues (e.g. no merge conflicts, validation errors, failed unit tests), those steps could be executed by a background service. I noticed that the steps above are time consuming, repetitive and prone to fail due to manual user input.

Question is, what is already possible and what could Thinkwise do? Should it be an integral part of the Software Factory, or should the Indicium API be expanded with calls to be able to automate some steps? I'd like to hear your experiences :grinning: .

icon

Best answer by Anne Buit 28 October 2020, 08:49

View original

This topic has been closed for comments

2 replies

Userlevel 7
Badge +5

Hi René,

One of goals is to allow the Software Factory to be fully usable with Universal. This means that all features of the Software Factory will be accessible via the Indicium API.

A lot of groundwork has already been done for this. We are phasing out logic in our existing modelers as much as possible. Some of these modelers used to exclusively contain processes such as generating and validating, and we are replacing them with ‘regular’ process flows and tasks. When this is completed, transitioning to schedulable and autonomously executable versions of these process flows will be trivial.

Executing a merge session and validating can already be done via an API call.

POST indicium/iam/sf/execute_merge_session
{
    "merge_session_id": 51,
    "new_project_id": "TRUNK",
    "current_project_vrs_id": "2.20",
    "current_project_vrs_status": 3,
    "new_project_vrs_id": "2.21"
}
POST indicium/iam/sf/execute_validations
{
    "project_id": "TOUCAN_TRADE",
    "project_vrs_id": "2.21"
}

Unit tests and the creation of the deployment package can be done but take a lot of dynamic API calls. These are process flows tailored towards an experience with a GUI. This is currently not very CI-friendly.

We are looking into creating a single API call to execute all unit tests and a single API call to fully run the deployment package, to be able to schedule these processes.

In the meanwhile, it is possible to set up an auxiliary CI database next to the Software Factory to provide a couple of API’s that can achieve this. More information here.

Userlevel 5
Badge +8

The Thinkwise Platform version 2021.3 has revised the way the Creation screen works, opening up more elegant ways to leverage tooling to automate this process. For the 2022.1 release, we will focus on the automation of deployment to IAM environments as well.

For more information, please see this blog: