Page 55 - SMILESENG
P. 55

Intl. Summer School on Search- and Machine Learning-based Software Engineering
 GitHub Actions Adoption Among Projects, What Are The Best Practices?
Ali Khatami
Software Engineering Research Group Delft University of Technology Delft, The Netherlands [email protected]
Abstract—GitHub Actions (GHA) is a fast-growing automation service for software workflows on GitHub, and is becoming the dominant CI service in open source software development. However, developers lack assistive tools, and suggested best practices when configuring GHA’s workflows. To address this challenge, this paper will focus on studying: the GHA adoption across different programming languages, kind of tasks that are mostly automated, and common configuration patterns. The results will enable us to come up with a set of best practices for GHA adoption.
Next step following this study would be building recommen- dation tools to assist developing GHA workflows for software projects on GitHub. The common patterns discovered in this study can help to build such recommenders.
I am eager to discuss and brainstorm the new ideas and challenges related to this work with the participants of the SMILESENG Summer School.
I. INTRODUCTION
To ensure the quality of software systems, software engi- neers use a range of quality assurance approaches, e.g., soft- ware testing, modern code review, automated static analysis, and continuous integration. We first studied these practices to have an overview of the state-of-the-practice in quality assurance in open-source software development.1 This study led to insights into the prevalence of quality assurance ap- proaches in Open Source Software (OSS) projects, in isolation, and in conjunction. Moreover, we discovered challenges that projects face for each of these practices, which then inspired novel ideas for future research. One of the highlighted chal- lenges is lack of best practices for adopting GitHub Actions2 (GHA). GHA is an automation service for software workflows on GitHub, and is becoming the dominant CI service on GitHub [1]. Despite the rapid growth, there is not enough studies to investigate best practices of adopting GHA, and evaluate different approaches of using it.
Projects have different strategies when configuring GHA workflows. During this configuration, developers need to set several components, which contain various options [2]. Thus, it is difficult for a developer with less experience to configure GHA workflows [2]. To address this challenge an idea is
1A. Khatami, and A. Zaidman, “State-Of-The-Practice in Quality Assurance in Open Source Software Development”, Submitted to Journal of Systems and Software, May 23rd, 2022.
2https://github.com/features/actions, last visited 3rd June 2022. GitHub Actions was made public on 13th November 2019 on GitHub.
to create tools to assist developers when configuring the workflows [3], [2]. Yet, these assistive tools can depend on the Programming Language (PL) specific properties, that a project use. As an example, it is possible to define testing phase after build phase in a Maven ‘pom.xml’ configuration file of a Java project, but doing the exact same thing it not as similarly possible for a Python project. In other words, the development ecosystem differs from one PL to another, which also makes configuration of workflows different.
Accordingly, studying the state of the practice in GHA adoption, with a focus on the PL specific properties is of importance. Besides, finding common patterns used in work- flows configuration is another idea of addressing the challenge. Particularly, best practices can be the same accepted common patterns of configuration that occur repeatedly.
II. RELATED WORKS
Kinsman et al. have found developers have a positive recep- tion of GHA by manually analyzing GHA related discussions on GitHub. They also have reported a 0.7% adoption of GHA among around 400K repositories mainly for continuous integration, utilities, and deployment purposes. Moreover, they have investigated the impact of GHA adoption on projects and found that the number of commits of merged pull requests decreases, and the number of monthly rejected pull requests increases after the adoption of GHA [4].
Also, Golzadeh et al. have conducted a longitudinal study focused on the evolution of CI on GitHub projects. By study- ing CI co-usage and migration of around 90K GitHub reposi- tories, and considering 7 different CI platform including GHA, they have found Travis-CI and GHA are the predominant CIs. Moreover, they mentioned GHA is becoming the most dominant CI platform and is used in more repositories than Travis-CI. Particularly, they have observed a fall in Travis-CI usage due to migration to GHA [1].
In another work, Chen et al. have focused on the state of the practice in using GHA, and reported a 22.5% adoption of GHA among their set of 27K popular repositories. Also, they have studied the correlation between GHA usage and properties of a project to see its impacts. Moreover, they have looked at the common specifications that projects use when configuring their GHA workflows. After all, they have highlighted the challenge of configuring workflows, difficulty
43
















































































   53   54   55   56   57