Automate and Send Artifacts
Submitted By Jenkins User Jorge Uztariz
Colombia-based DevOps team leans on Jenkins automation for speed and safe delivery of client artifacts.
Organization: Consis Internacional, https://www.consisint.com/
Industry: All development services
Programming Language: Java, PHP
Platform: Android, iOS, Docker or Kubernetes, Linux, Windows
Version Control System: Bitbucket Server
Build Tool: Ant, Maven
Team: Derwin Oropeza, DBA & DevOps Manager; Juan Conde / DevOps Analyst; Orlenis Nieres / DevOps Analyst, Consis Internacional
Community Support: Jenkins.io websites & blogs
Less time and more safety when shipping artifacts to the customer, with no worries about database backups.
Background: Consis Internacional helps insurance carriers around the world achieve strategic results through IT. We design intelligent core business systems, robust front-end web tools, component solutions, and innovative frameworks by combining cutting-edge tech with the best standard practices.
We expect to obtain an unattended compilation of our git repository running Maven both for development environment updates and for sending artifacts to clients, which can be scheduled to run at specific times or on-demand from a telegram bot when required.
Additionally, we expect to run SQL scripts on remote databases and perform scheduled backups for both development and test environments where artifacts and scripts are tested before being sent to the client.Goals: To ship artifacts to the customer faster and safer.
Solution & Results: We configured the Git repository that we use with BitBucket and set the parameters for Maven compilation. We then set schedules for the process to run automatically, scheduling bash scripts according to the client with the help of Jenkins variables. We also configured the telegram plugin to send notifications and used the Jenkins API to configure the telegram bot for remote execution. Finally, we configured the sending of emails for sending artifacts to the client and telegram notifications for updating the development environments.
For the update of the development environments after the automatic compilation, we were able to use some scripts that were already programmed previously to perform the update of artifacts and restart the application server, in this case, WebSphere Liberty.
Additionally, the database was configured with triggers for backup tasks — this way, every time a task was finished, the next one started even if the previous one failed. The security of access to Jenkins was configured through the BitBucket OAuth to obtain greater control of those who could access Jenkins and their permissions.
- For telegram notifications we use plugin “Build Notifications” at https://plugins.jenkins.io/build-notifications
- For email notifications we use plugin “Mailer” at https://plugins.jenkins.io/mailer
- For the bitbucket oauth integration we use plugin “Bitbucket OAuth” at https://plugins.jenkins.io/bitbucket-oauth
- For the trigger variable we use plugin “Parameterized Trigger” at https://plugins.jenkins.io/parameterized-trigger
- For the bitbucket integration we use plugin “Bitbucket” at https://plugins.jenkins.io/bitbucket/
We are very happy with the results:
- compilation time reduced from 1 hour to 20 minutes
- safety when shipping artifacts to the customer
- development environment update time reduced from over 1 hour to 25 minutes
- no worries about database backups