Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News McDonald's Streamlines CI with GitHub Actions and Reusable Workflows

McDonald's Streamlines CI with GitHub Actions and Reusable Workflows

This item in japanese

Recently, McDonald’s discussed leveraging GitHub Actions to emphasize readability and maintainability and reduce code duplication. Their goals included establishing a streamlined CI process, enhancing developer productivity, and implementing pipeline observability and monitoring.

Michael Gorelik, senior solution architect, and Achintya Pillai, software engineer III at McDonals, elaborated on their journey in the McDonald’s Technical Blog. They talked about establishing a consistent framework — referred to as the "golden path" — to facilitate continuous integration stages, including code quality, security measures, packaging, and tagging. In addition, this framework also enabled the maintenance of uniform quality standards across all their applications and promoted the adoption of standardized naming conventions for deployment artifacts throughout the organization.

McDonald's engineering team manages a broad technology landscape with numerous microservices written in various languages and utilizing different cloud-native services. They utilise reusable workflows and custom actions from GitHub to streamline continuous integration (CI) processes across their applications.

Source: Reduce, reuse, recycle: McDonald’s reusable workflows

To minimize code duplication in their pipelines, the team organized CI workflows by application language types, utilizing GitHub Actions' reusable workflows to create a central CI codebase. These central workflows include stages like building, quality and security scans, artifact creation, and tagging. This structure streamlines maintenance, updates, and code reuse, ensuring standardized application development. Additionally, the team employed containers to store required utilities and libraries, enabling streamlined workflow execution and reducing security risks and execution time.

McDonald's engineering team seeks to extend the golden path approach to all CI processes across their applications. To implement the centralized reusable workflows and actions, a simple CI caller file is integrated into each application, enabling engineers to reference the golden path workflows for CI stages and ensure compliance with required standards.

Earlier this year, GitHub Actions made headlines with the introduction of a new M1 macOS runner. This new runner operates Actions workflows with a VM featuring 3 vCPUs, 7 GB RAM, and 14 GB of storage, showcasing the latest Mac hardware capabilities available for Actions. We stumbled upon an intriguing HackerNews discussion that mentioned an experiment conducted by Alex Ellis using GitHub Actions. The conversation involved comments from the tech community, with one HN user ranting-moth describing GitHub Actions' computing time as costly, particularly about Mac pricing.

Using GitHub Actions for CI, McDonald's Engineering also aims to offer engineers a blend of centralized control and individual autonomy. This approach establishes a central "golden path" for essential steps while enabling developers to add new stages independently, maintaining agility without disrupting other operations.

Finally, in terms of observability, the team has established centralized monitoring solutions by adopting reusable workflows. These solutions assist both DevOps and application teams in regularly monitoring their pipeline performance and pinpointing areas for future enhancements.

About the Author

Rate this Article