Using Riviera-PRO in Batch mode using Jenkins Software-Github Collaboration

Introduction

This app note provides information on how to use Riviera-PRO in batch mode using Jenkins-Github tool collaboration. To understand the whole process, we will go through the explanation of all the important segments. To get started, let us understand the tool Jenkins first.

Jenkins is a self-contained, open source automation server which can be used to automate all sorts of tasks such as building, testing, and deploying software. Jenkins can be installed through native system packages, Docker, or even run standalone by any machine with the Java Runtime Environment installed. It is a powerful application that allows continuous integration and continuous delivery of projects, regardless of the platform you are working on. It is an open-source application that can handle any kind of build or continuous integration. You can integrate it with a number of testing and deployment technologies.

Jenkins is a software that allows continuous integration. Jenkins will be installed on a server where the central build will take place. The following flow chart demonstrates a very simple workflow of how Jenkins works.

Fig 1- Jenkins Flowchart

Continuous Integration is a development practice that requires developers to integrate code into a shared repository at regular intervals. Continuous Integration requires the developers to have frequent builds. Common practice is that whenever a code commit occurs, a build should be triggered. The standalone Jenkins distribution requires a minimum of Java 7, though Java 8 is recommended. Follow the steps below to download and run Jenkins.

  1. Download Jenkins

  2. Open up a terminal window in the same directory where Jenkins is stored and run "java -jar jenkins.war"

  3. Browse to http://localhost:8080 and follow the instructions to complete the installation.

Jenkins-Git-Riviera-PRO Regression Testing:

We will go step by step to understand the execution of Riviera-PRO example using Jenkins-Git.

1] Creating Repositories in Github:

2] Jenkins - Git Collaboration:

Fig 2 - Jenkins Home Screen

On entering the user id and password, you will be directed to the user home screen.

Fig 3 - On logging in

Jenkins-Git Setup

For this, click on "Manage Jenkins" option on the left hand side. In the next screen, click on "Manage Plugins".

Fig 4 - Manage Jenkins

Manage Plugins adds,removes or disables/enables plugins that extends the functionality of Jenkins. Click on it to check if the Github plugin is already installed. The Git plugin allows use of Git as a build SCM(Software Configuration Management) including repository browsers for several providers. A recent Git runtime is required as a pre-requisite.Interaction with the Git runtime is performed by the use of the JENKINS:Git Client Plugin which is only tested on official Git client. After having checked that, go back to "Manage Jenkins" option and click on "Global Tool Configuration". In the Global Tool Configuration, Click on Git Installations and provide the path to Git executable located in your directory. If you have not downloaded the Git executable yet, go to https://desktop.github.com/ and download GitHub desktop version for your appropriate OS. Once downloaded, go to https://github.com/ , create your profile and sign up. Click on "New Repository".

Jenkins Management

To manage Jenkins, click on the "Manage Jenkins" option from the left hand menu side. By doing so, user can get various configuration options for Jenkins by clicking it. We will discuss some of the management options .

This is where one can manage paths to the various tools to use in builds, such as the JDKs, the versions of Ant and Maven, as well as security options, email servers and other system-wide configuration details. Jenkins adds the required configuration fields dynamically after the plugins are installed.

Jenkins stores all its system and build job configuration details as XML files which is stored in the Jenkins home directory. The build history is also stored in the Jenkins home directory. If you migrate build jobs from one Jenkins instance to another, or archiving old building jobs, you will need to add or remove the corresponding build job directories to Jenkins's builds directory. One can simply use the "Reload Configuration from Disk" option to reload the Jenkins system and build job configurations directly.

This screen displays a list of all the current Java system properties and system environment variables. Here once can check exactly what version of Java Jenkins is running under and all.

It is a convenient way to view the Jenkins log files in real time. It is used for troubleshooting.

It displays graphical data on how busy the Jenkins instance is in terms of the number of concurrent builds and the length of the build queue which gives an idea of how long your builds needs to wait before being executed and all. These statistics can give a good idea of whether extra capacity or extra build nodes are required from an infrastructure perspective.

If there is a need to shutdown Jenkins, or the server Jenkins is running on, it is best not to do so when a build is being executed. To shut down Jenkins cleanly, user can use the Prepare for Shutdown link, which prevents any new builds from being started.

Next, the Global Tool Configuration as discussed previously, tells as whether we have the Git installed on our PC or not.

Fig 5 - Global Tool Configuration

Fig 6 - Item name declaration

Fig 7 - Item Configuration

Fig 8 - Source Code Management

Fig 9 - Build Triggers

Fig 10 - Build Window

Fig 11 - Script Commands

Fig 12 - Jenkins Console Log

Fig 13 - Riviera-PRO invoked/Script Execution Batch mode

Fig 14 - Cumulative Coverage Results test1.html

Fig 15 - Coverage Results test2.html

Fig 16 - Coverage Results merged.html

Advantages of Jenkins

References:

[1] Jenkins Official Website https://jenkins.io

[2] Github Official Website https://github.com/

[3] Jenkins Tutorial http://www.tutorialspoint.com/jenkins/

Disclaimer:

Many of the text in this application note were extracted from the referenced sources (Jenkins.com) regarding the open-source tools they provide. The intention of this application note is to consolidate and organize the data and present a simplified tool flow for the benefit of Aldec users.



Printed version of site: www.aldec.com/en/support/resources/documentation/articles/1904