Constant development of tools often breaks something internally which can lead to other issues. Hence there is a need to test the tool for its previous supporting features. But the tool needs an environment to get launched and good test cases to test the features. This is called as “Continuous Integration (CI)”. It mainly involves building, testing the tool and reporting the result on which the deployment of the tool happens. But the opensource EDA tools needs an environment to build and test circuits to test the functionality of the tool. Vezzal is part of the CI workflow. It is a docker containerized environment which is built completely from scratch. Docker technology and GitHub actions are used to develop the CI workflow.Vezzal can be used in two modes - user mode and test mode.
In user mode, the docker container is launched which contains all the requirements like dependent libraries, PDKs and the supporting tools. With simple commands, all these can be made available to the user. The main intention behind this mode is to make user focus more on the design rather than the environment. Pre-building environment doesn’t bring restrictions, so still the concept of open source is honored.
In the test mode, the tool updates trigger the CI workflow. This triggering happens through GitHub actions. Whenever, there is an “action” like a pull request, a push to the repository, specified operations are performed. Here once the trigger is launched, the docker image of Vezzal is pulled and will be started in a container with the execution of a single master script of the particular tool which tests it. Vezzal contains a testcases database to test basic functionalities/features of the tool. After the generation of reports, if all the testcases pass, the result is sent as “Success” to the developer of the tool. If any of the testcases gets failed, the output of those testcases is sent to the developer for further analysis.
This is what I did in my 8-weeks HDP. The development version of Vezzal can be found at github.com/lankasaicharan/vezzal. The docker images can be found at hub.docker.com/r/vezzal/vezzal where v0 is for user mode and v1 is for test mode. Since this was made in time constraints with no correct background, there is a good scope of code optimization. So, please feel free to do a pull request for the Vezzal GitHub repository.
For more info, contact linkedin.com/in/lankasaicharan