Example Jenkins integration
The below workflow diagram describes a potential Jenkins Integration scenario as part of an overall ActiveControl workflow.
Figure: Jenkins (and JIRA) integration reflected as part of an end-to-end ActiveControl workflow
Key Functional Points of Integration
When transports land in a (configurable) Test Queue of a target wthin an ActiveControl workflow, the following activities will occur:
|1||Transports will move to the Test Queue of the Target.|
|2||The Integration will lock the Target Import Queue (unless it is a Virtual Target) so that no subsequent transports are imported.|
|3||Integration will call the automated test to be performed via Jenkins URL script. (see note (i)|
|4||Automated Test will run from Jenkins.|
|5a|| If automated tests PASS – then the following will happen:
i) Integration will add a “Testing Successful” test results entry into the Business Task, with details of the Automated Test that was performed.
ii) Integration will approve the Business Task(s), and the underlying Transport Form(s) will move forward from the Test Queue – to the next control point in the workflow.
iii) .Integration will unlock the QA Import Queue, so that subsequent transports can be imported into QA again.
|5b|| If automated tests FAIL, then the following will happen:
i) Integration will add a “Problem Found” Test Results entry into the Business Task, with details of the Automated Test failure.
ii) ActiveControl will send an email notification to the Transport Owner of the failed testing
iii) Business Task(s) will remain in the QA Test Queue.
iv) Integration will unlock the QA import Queue, so that subsequent transports can be imported again.
i) The actual test scripts to be called can be stored in a custom field on the Business Task (or Transport Form) within ActiveControl. All custom field information on the Business Task(s) / Transport Form(s) is passed to Jenkins as part of the Integration, making it possible for Jenkins to thereafter trigger the relevant automated test scripts in other tools such as Selenium or Tosca based on the actual Business Tasks (or Transport Forms) in the Import Queue.
ii) Given the Integration is triggered when Transport Forms reach Test Queue, it is advisable to configuration ActiveControl so that RC8 transports remain in the Import Queue. Otherwise, the Integration could be triggered on Changes that already have deployment issues.
iii) It is possible to integrate ActiveControl with multiple third-party tools. In the example workflow, a JIRA integration is also being used, in addition to the Jenkins integration..
iii) It is possible to trigger multiple scripts via Jenkins from one Test Queue.
iv) It is possible to trigger different scripts in different Test Queues (ie Smoke Testing in a QA system, and full automated Regression Testing in a Pre-Production system.
Figure: Example of an automated Test Signoff triggered via Jenkins integration. Depending on the requirement, attachments or URL links can be passed back to ActiveControl and appended to the Business Task