C.W.K.
Stream
Lesson 09 of 12 · published

The CI/CD Landscape

~11 min · tools, comparison, landscape

Level 0Apprentice
0 XP0/101 lessons0/10 achievements
0/120 XP to next level120 XP to go0% complete

The category, not just GitHub Actions

GitHub Actions is the focus of this quest, but it is one of many tools in a category that has been evolving for 20+ years. Knowing the alternatives helps you understand Actions' design choices and to switch when a job calls for it.

Self-hosted server tools

  • Jenkins — the elder. Free, infinitely flexible, requires you to host it. Plugin ecosystem is enormous and aging. Still runs huge enterprise pipelines.
  • TeamCity — JetBrains' offering. Strong UI, good for monolith shops.
  • GoCD — pipeline-as-code with strong dependency modelling.

Source-code-platform integrated

  • GitHub Actions — runs in GitHub. YAML in repo. Marketplace of shared actions. The default if your code lives on GitHub.
  • GitLab CI/CD — same idea on GitLab. .gitlab-ci.yml + GitLab Runners. Self-hostable end-to-end.
  • Bitbucket Pipelines — Atlassian's. YAML in repo, Atlassian-native.

Cloud-native CI

  • CircleCI — pioneered cloud CI. Strong caching, parallelism. Pay-per-minute.
  • Buildkite — hybrid: their orchestrator, your runners. Popular with scale-ups that need beefy custom hardware.
  • Travis CI — formerly the OSS default. Now mostly displaced by Actions for OSS projects.

Cloud-vendor-native

  • AWS CodePipeline + CodeBuild, Google Cloud Build, Azure DevOps Pipelines — best when you are already deeply on that cloud.

Specialized

  • Argo CD — GitOps for Kubernetes. Pipeline state lives in Git, deployment lives in cluster.
  • Tekton — Kubernetes-native CI primitives. Build-your-own.

Code

Same idea — three syntaxes·yaml
# GitHub Actions
jobs:
  test:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - run: pytest

# GitLab CI
test:
  image: python:3.12
  script:
    - pytest

# CircleCI
version: 2.1
jobs:
  test:
    docker:
      - image: cimg/python:3.12
    steps:
      - checkout
      - run: pytest

External links

Exercise

Pick one tool from the landscape that you have never used. Read its 'getting started' in 15 minutes. Write three sentences: where it shines, where it loses to Actions, and what kind of project would force you to pick it over Actions.

Progress

Progress is local-only — sign in to sync across devices.
Spotted a bug or have feedback on this page?Report an Issue

Comments 0

🔔 Reply notifications (sign in)
Sign inPlease sign in to comment.

No comments yet — be the first.