Efficient And Flexible Continuous Integration Infrastructure to Improve Software Development Process
Date of Award
Master of Science (MS)
Continuous Integration (CI) is a popular software-engineering methodology for co-working between programmers. The key function of CI is to run, build and test tasks automatically when a programmer wants to share his or her code or implement a feature. The primary objectives of CI are to prevent growing integration problems, and to provide feedback with useful information for resolving these issues easily and quickly. Despite extensive academic research and popular services in the industry, such as TravisCI, CircleCI or Jenkins, there is practically have limitations, which result from limited available resources, including budget and low computing power. Moreover, the diversity of modern computer environments, such as different operating systems, libraries or disk sizes, memory, and network speeds, increase both the costs for CI and difficulties in finding bugs automatically in every cases. This study aims to propose supplemental external and internal methods to solve the above obstacles. First, our approach enables programmers to configure different execution environments such as memory and network bandwidth during CI services. Then, we introduce an enhanced CI infrastructure that can efficiently schedule CI services based on resource-profiling techniques and our time-based scheduling algorithm, thereby reducing the overall CI time. Our case studies show that the proposed approaches can report the resource usage information after completing a CI service as well as improve the performance of an existing CI infrastructure.
Mun, Daehyeok, "Efficient And Flexible Continuous Integration Infrastructure to Improve Software Development Process" (2017). All Graduate Plan B and other Reports. 1045.
Copyright for this work is retained by the student. If you have any questions regarding the inclusion of this work in the Digital Commons, please email us at .