GitHub Actions is slowly killing engineering teams
Infrastructure & IaC Side Thread (CloudFormation/CDK/Terraform)
- Several comments parallel the author’s pain with GitHub Actions to CloudFormation/CDK: slow, fragile, awkward failure modes, and “dependency deadlocks” when stacks share exports.
- Others push back, arguing CDK mitigates some antipatterns (e.g., forcing generated names) and that many issues come from design/usage rather than the tool itself.
- Terraform/Ansible are mentioned as preferred by some, but often blocked by organizational standardization on CloudFormation.
Perceived Problems with GitHub Actions
- UX: Log viewer often crashes browsers or mangles ANSI-colored output, making frequent log reading painful. Workarounds like downloading logs and using
less -Rare seen as too high-friction. - Reliability: Reports of flaky
actions/checkout, missed or duplicated triggers, unreliable cron, and overall declining stability. - Complexity: YAML-as-DSL plus conditionals and marketplace “actions as plugins” encourages hidden logic, hard-to-debug pipelines, and trial‑and‑error loops.
- Tying CI to the code host is seen as lock‑in; some prefer webhooks to external CI.
- Enterprise Server users cite missing features and quirks (label triggers, lack of persistent state, GHES lagging github.com).
Defenses of GitHub Actions / “Good Enough” View
- Many find Actions perfectly fine or even a “godsend,” especially for OSS and small teams: low friction, integrated with GitHub, removes need to run build infrastructure.
- Several argue CI should mostly “run a script” and stay thin; if most logic lives in Makefiles/bash/build tools, migration between CI systems is manageable.
- Some call the “killing teams” framing hyperbolic; issues are often process or culture (no local dev parity, overcomplex pipelines) rather than GHA itself.
Buildkite and Other CI Systems
- Buildkite gets strong praise for dynamic pipelines, owning your own compute, solid logging, and simple agent model. Some consider it the gold standard; others see its dynamic-pipeline story as pushing complexity into ad‑hoc scripts and re‑implementing basics.
- Other tools mentioned: GitLab CI (generally liked), Jenkins (unpopular but powerful when well‑run), TeamCity, Drone/Woodpecker, RWX, Vela, Bitbucket Pipelines, Azure DevOps. Opinions vary widely; no system is viewed as universally good.
YAML, DSLs, and Workflow Philosophy
- Broad frustration with “programming in configuration” and bespoke CI DSLs.
- Some advocate declarative configs plus real languages for logic; others emphasize a single canonical local build (Make, just, etc.) mirrored in CI.
- Persistent theme: lack of easy local reproduction of CI remains a major pain point.
Security & Marketplace Concerns
- Using third‑party actions (
uses: author/action@version) for core tasks feels risky; pinning SHAs or forking still doesn’t lock transitive dependencies. - Comparison is made to proper package managers with lockfiles; Actions’ model is seen as immature for supply‑chain security–sensitive orgs.
Role of AI/LLMs
- Some say LLMs drastically reduce the pain of understanding bash/Actions YAML and porting pipelines (e.g., GitLab → GHA).
- Others warn this risks normalizing overly complex, poorly designed systems by papering over them with AI assistance.
Meta: Tone, Branding, and Hyperbole
- A few suspect the post is effectively an ad for Buildkite or even LLM‑written based on tone; Buildkite staff in the thread deny any coordination.
- Buildkite’s experimental “CLI-style” homepage draws criticism as confusing, though acknowledged as an experiment being retired.
- Many agree with specific criticisms while rejecting the life‑or‑death rhetoric; CI is annoying and important, but tools like Actions are, for a large class of teams, “annoying yet adequate.”