Automation and Reuse Practices in GitHub Actions Workflows: A Practitioner's Perspective
By: Hassan Onsori Delicheh , Guillaume Cardoen , Alexandre Decan and more
Potential Business Impact:
Makes coding tasks easier and more reliable.
GitHub natively supports workflow automation through GitHub Actions. Yet, workflow maintenance is often considered a burden for software developers, who frequently face difficulties in writing, testing, debugging, and maintaining workflows. Little knowledge exists concerning the automation and reuse practices favoured by workflow practitioners. We therefore surveyed 419 practitioners to elucidate good and bad workflow development practices and to identify opportunities for supporting workflow maintenance. Specifically, we investigate the tasks that practitioners tend to automate using GitHub Actions, their preferred workflow creation mechanisms, and the non-functional characteristics they prioritise. We also examine the practices and challenges associated with GitHub's workflow reuse mechanisms. We observe a tendency to focus automation efforts on core CI/CD tasks, with less emphasis on crucial areas like security analysis and performance monitoring. Practitioners strongly rely on reusable Actions, but reusable workflows see less frequent adoption. Furthermore, we observed challenges with Action versioning and maintenance. Copy-pasting remains a common practice to have more control and avoid the complexity of depending on reusable components. These insights suggest the need for improved tooling, enhanced support for a wide range of automation tasks, and better mechanisms for discovering, managing, and trusting reusable workflow components.
Similar Papers
An Empirical Study of Complexity, Heterogeneity, and Compliance of GitHub Actions Workflows
Software Engineering
Finds ways to make computer code updates faster.
GitHub Marketplace: Driving Automation and Fostering Innovation in Software Development
Software Engineering
Bridges school ideas to real coding tools
From First Use to Final Commit: Studying the Evolution of Multi-CI Service Adoption
Software Engineering
Helps coders pick the best tools for projects.