As a leading provider of innovative solutions for mobile app development, Tuist is uniquely positioned to understand the evolving landscape of continuous integration (CI) in the mobile space. In this article, we'll delve into the transformative shift towards Infrastructure-as-a-Service (IaaS) and explore the implications for swift app development.
Understanding the CI Stack
At its core, CI appears straightforward: a service integrated with your repository that executes workflows triggered by specific actions (typically repository events like code pushes) and delivers results through logs, artifacts, and status updates. However, upon closer inspection, we uncover three distinct components that comprise the CI stack:
- Infrastructure Layer: The foundation requires physical hardware and virtualization technology to run tasks in isolation. Apple's ecosystem adds unique complexity here—most tasks require Apple hardware running macOS, creating scarcity since few cloud providers offer managed Apple infrastructure.
- Orchestration Layer: The middleware connecting infrastructure to Git platforms like GitHub, triggering workflows based on repository events. This layer manages pipeline execution, defining the sequence and logic of tasks within each workflow.
- User Interface Layer: The customer-facing experience for workflow management, providing real-time execution feedback, manual triggers, and analytical insights (such as average execution times and success rates).
The Mobile DevOps Movement
The concept of Mobile DevOps initially puzzled me. Isn't it just Fastlane? I questioned why this movement was suddenly gaining traction and what drove its emergence. As I gained deeper industry insights, I recognized this as a strategic evolution aimed at expanding the addressable market. In business terms, companies were seeking to grow beyond traditional CI boundaries to capture larger market opportunities.
The Runs-on Revolution
GitHub fundamentally disrupted the market years ago, with other platforms like GitLab and Forgejo following suit. Their decision wasn't merely to become CI providers—they opened up the architectural layers, enabling users to bring their own infrastructure or leverage specialized third-party providers.
This shift has profound implications that deserve more discussion. GitHub Actions (and equivalents on other platforms) offers tight UI integration that external CI providers simply cannot match. Third-party providers are constrained by available APIs, primarily limited to updating commit statuses and adding code annotations. Meanwhile, GitHub can ship features like declarative permissions, dynamically generating workflow-scoped tokens with precise permission boundaries.
The GitHub Actions ecosystem represents another strategic advantage. Initially, I assumed it was proprietary, but using Forgejo via Codeberg revealed that their CI solution supports GitHub Actions composition. Fundamentally, these are Node.js/JavaScript functions with configuration files declaring action behavior. GitHub's unique position allows them to incentivize developer contributions through a simple mental model: build an action, host it in a repository, and enhance your developer profile.
This new model birthed a different category of companies—those focused exclusively on providing the fastest, most reliable infrastructure for CI needs. At Tuist, we recently adopted Namespace for our CI requirements, leveraging their expertise to streamline our workflows.