CI/CD integration tools for automated code deployment and verification for training purposes
DOI:
https://doi.org/10.20535/2786-8729.5.2024.318795Keywords:
CI/CD, DevOps, Jenkins, Git, Gitea, automated testing, pipelineAbstract
The article is devoted to the study and application of modern tools for Continuous Integration and Continuous Deployment (CI/CD) in the educational field. Automating the processes of software deployment and testing is a relevant task for both improving the educational process and developing DevOps skills among students. Significant attention is given to studying the core principles of CI/CD, including automated testing, code quality monitoring, and integration with source code repositories.
Popular CI/CD platform such as Jenkins is utilized to automate the educational process and train students. This tool enables the creation and deployment of applications using Docker technologies, which allow real-world scenarios to be modeled. A significant emphasis is placed on the scalability and adaptability of solutions, which enhance the efficiency of resource usage.
A methodology for implementing CI/CD into an educational course is proposed, including integration with project management platforms and version control systems such as Git, with Gitea as an example. The main stages include setting up automated builds, testing, and deployment, which enable students to practice the principles of continuous integration and delivery. From the perspective of improving the efficiency of the educational process, the proposed methodology allows for the automation of assignment verification. The problems of Gitea and Jenkins integration are considered. A way for integrating these tools through locally installed Jenkins and Gitea with private code repositories has been proposed. Recommendations are provided for organizing the educational process through practical and laboratory work focused on real-world scenarios of software deployment and test automation.
The results of the study confirm the effective use of CI/CD tools for educational purposes, ensuring the development of competencies required for working in modern IT teams. The use of CI/CD increases awareness of cybersecurity and optimizes DevOps processes.
References
P. Shen, X. Ding, W. Ren and C. Yang, “Research on Software Quality Assurance Based on Software Quality Standards and Technology Management,” 2018 19th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD), pp. 385–390, Busan, Korea (South), 2018, https://doi.org/10.1109/SNPD.2018.8441142.
S. Ibarra and M. Muñoz, “Support tool for software quality assurance in software development,” 2018 7th International Conference On Software Process Improvement (CIMPS), pp. 13–19, Guadalajara, Mexico, 2018, https://doi.org/10.1109/CIMPS.2018.8625617.
Y. Zhao, Y. Hu and J. Gong, “Research on International Standardization of Software Quality and Software Testing, “2021 IEEE/ACIS 20th International Fall Conference on Computer and Information Science (ICIS Fall), pp. 56–62, Xi'an, China, 2021, https://doi.org/10.1109/ICISFall51598.2021.9627426.
L. Bhaskar, R. B. Natak and R. Ranjith, “Unit Testing for USB Module Using Google Test Framework,” 2020 11th International Conference on Computing, Communication and Networking Technologies (ICCCNT), pp. 1–3, Kharagpur, India, 2020, https://doi.org/10.1109/ICCCNT49239.2020.9225528.
C. Cowell, N. Lotz and C. Timberlake, “Automating DevOps with GitLab CI/CD Pipelines: Build efficient CI/CD pipelines to verify, secure, and deploy your code using real-life examples,” Packt Publishing Ltd, 2023, 328 р.
R. Leszko, “Continuous delivery with Docker and Jenkins: Create secure applications by building complete CI”, Packt Publishing Ltd, 2022, 374 р.
L. Qiao “Continuous Delivery 2.0: Business-leading DevOps Essentials”, CRC PRESS, 2021, 332 p.
J. Fairbanks, A. Tharigonda and N. U. Eisty, “Analysing the Effects of CI/CD on Open Source Repositories in GitHub and GitLab,” 2023 IEEE/ACIS 21st International Conference on Software Engineering Research, Management and Applications (SERA),” pp. 176–181, Orlando, FL, USA, 2023, https://doi.org/10.1109/SERA57763.2023.10197778.
R. Aiello, “Hands-On DevOps for Architects: Implementing continuous delivery through automation”, Packt Publishing, 2018, 345 p.
A. S. Manasa Venigalla and S. Chimalakonda, “DocMine: A Software Documentation-Related Dataset of 950 GitHub Repositories,” 2023 IEEE/ACM 20th International Conference on Mining Software Repositories (MSR), pp. 407–411, Melbourne, Australia, 2023, https://doi.org/10.1109/MSR59073.2023.00062.
M. Labouardy, “Pipeline as Code: Continuous Delivery with Jenkins, Kubernetes, and Terraform,” Manning, 2021, 141 p.
MSBuild, Microsoft Documentation, 2023, [online] Available: https://learn.microsoft.com/ru-ru/visualstudio/msbuild/msbuild?view=vs-2022.
xUnit, Jenkins Documentation, 2022, [online] Available: https://plugins.jenkins.io/xunit/.
Sonya Moisset, "Open Source Software Security Handbook – Best Practices for Securing Your Projects", freecodecamp, 2023, [online] Available: https://www.freecodecamp.org/news/oss-security-bestpractices/.
Downloads
Published
How to Cite
Issue
Section
License
Copyright (c) 2024 Information, Computing and Intelligent systems
This work is licensed under a Creative Commons Attribution 4.0 International License.