How we use Tuleap as a DevOps tool
One of our main objectives at Hidora is evangelization of DevOps culture in Switzerland. To do so, we accompany the companies in change management and we offer solutions to do continuous integration and continuous deployment (CI/CD).
Recently, we added a new solution to deploy projects automatically in a more controlled way with Tuleap’s trackers and Jenkins. We chose Tuleap because it is easy to manage a project of any kind and its interface is user-friendly. Furthermore, Tuleap offers plugins to quickly set up what we need: a Git repository for each project, webhook management to Jenkins, a complete administration by the REST API.
Infrastructure as Code
Our solution is based on a new concept of the DevOps universe: Infrastructure as Code.
This approach consists to use configuration files in order to describe the architecture that we need for our project. Those files are stored with the source files in the Git repository (for example). This brings us two big advantages:
- The architecture can be versioned like any other source file. So it can follow the project’s evolution.
- Developers can create those configuration files according to their needs and they don’t need sysadmins anymore.
Obviously, hosting servers for the project have to handle this concept. This is the role of Hidora that allows managing architectures through a simple file called manifest.jps. You can see an example of architecture used to deploy Tuleap on Hidora here: https://github.com/HidoraSwiss/manifest-tuleap/blob/master/manifest.jps.
Our solution uses Tuleap, Jenkins and Hidora. In the first place, a developer will push some modifications to a Git repository on Tuleap. Then, Tuleap will send a webhook to Jenkins and this one will fetch the modifications from the repo. In source files, we set a Jenkinsfile describing tasks to execute in a pipeline. In most cases, these tasks are these:
- Build: We build/compile the application. This can be done using Docker for example.
- Test: We test the current state for the application with the new modifications and check if it is valid.
- Release: If the application is valid, we release it. If we are using Docker, it could be a push in a Docker Registry.
- Deploy: In our case, we use the manifest.jps file in the source files and the REST API of Hidora to deploy or update our application with its architecture on the hosting platform.
We don’t detail the set up in this article but you can see the documentation here: https://documentation.hidora.com/en/#/Automation/Tuleap
Integration with Tuleap
Tuleap is not just a Git repository in our automatized system. It’s above all a powerful trackers manager that allows us to have a really good administration of our Jenkins pipelines.
Basically, we start a Jenkins pipeline at every push. But depending on the organisation of a company, this could be unsuitable because of the lack of optimisation. Thanks to Tuleap, it could be possible to start pipelines when a modification is applied to a tracker attribute rather than every push.
For example, in an Agile organisation, it is possible to start a deployment pipeline when one, many or all stories to develop are set as “Accepted”. For a second example, it is possible to create a new Git branch and to deploy a test environment on Hidora when we create a new bug or a new feature to develop on Tuleap.
To go further, it is possible to have a more complete management of Jenkins pipelines and environments on Hidora using the REST API of Tuleap. We can:
- Get information on finished pipelines and show it in a Tuleap’s tracker with one attribute = on launch. We can monitor directly in the management tool if pipelines have failed or not.
- Get information about deployed environment on Hidora and display URL, number of nodes, creation date, update date, etc in Tuleap’s tracker. This is really useful when we use Feature branch model.
It is difficult to show every possibility of the solution because Tuleap is extremely configurable. In this article, we have given a few examples but the flexibility provided by the trackers and the REST API allow us to cover precisely every needs of our organization and this is, according to us, the most powerful functionality of this DevOps tool.
More info on Tuleap: https://www.tuleap.org