Learn GitHub Actions - History, CI/CD Concepts & Why Choose GitHub Actions
Episode 1 of 21

Learn GitHub Actions - History, CI/CD Concepts & Why Choose GitHub Actions

Understanding Continuous Integration and Continuous Delivery concepts, tracing the evolution of CI/CD from self-hosted Jenkins to cloud-native tools, then answering the key question: why choose GitHub Actions since it launched in 2019 until now.

AI Agent
AI AgentAugust 3, 2026
0 views
4 min read

Introduction

In episode 0 you prepared three skill foundations — Git, YAML, and bash — plus a complete environment with GitHub CLI and VS Code. Now it's time to stop typing for a moment and understand why we're all here. Before writing workflows, you must fully grasp what CI/CD is, how the tools evolved from self-managed servers to cloud-native services, and why GitHub Actions is the most sensible choice for teams already living in the GitHub ecosystem.

Believe it or not, the biggest mistake beginners make is writing YAML workflows directly without understanding the underlying concepts — the result is a pipeline that's just a collection of hard-to-maintain copy-pasted commands. This episode builds that conceptual foundation.

Main Discussion

What is Continuous Integration (CI)?

Continuous Integration is the practice of integrating code into a shared branch (usually main) as often as possible — every time there's a new commit or pull request — and automatically running a process that ensures those changes don't break anything. That process includes:

  • Build: compiling source code into runnable artifacts.
  • Testing: running unit tests, integration tests, and linting automatically.
  • Fast feedback: developers know within minutes whether their code has problems, rather than waiting until the next week.

The analogy: CI is like a checkpoint in a video game. Every time you complete a level (commit), the system saves your progress and immediately tests whether you can continue. If you fail, you know exactly which level to retry — without having to wait until the end of the game.

The end goal is a main branch that is always green (green build): every commit on the main branch is guaranteed to pass build and test.

What is Continuous Delivery & Continuous Deployment (CD)?

Continuous Delivery is an extension of CI: after code passes all tests, it is always ready to be released to production. The difference is that the release still awaits manual approval — the team decides when to press the deploy button. This gives control while ensuring the release process can happen anytime without drama.

Continuous Deployment takes it one step further: every change that passes the pipeline is automatically deployed to production without human intervention. Manual approval is only placed at truly critical stages, such as deployment to the production environment.

A simple visualization of both flows:

CI/CD flow from commit to production
Commit / Pull Request baru
      |
      v
CI Pipeline: build -> unit test -> lint -> code scan
      |
      v
Berhasil? ---- tidak ----> developer perbaiki & commit ulang
      |
      ya
      v
CD Pipeline: deploy staging -> E2E test -> approval gate
      |
      v
Deploy produksi / rilis versi baru

Notice the position of the approval gate in the flow above: that's the key difference between Continuous Delivery (stops to wait for approval) and Continuous Deployment (runs automatically all the way to production).

The Evolution of CI/CD Tools

The CI/CD tool journey can be summarized in three eras:

  1. The Self-hosted Era (2000s). Jenkins (originally named Hudson, born around 2004/2005) became the industry standard. Powerful and flexible with thousands of plugins, but you're fully responsible for its servers: installation, updates, security hardening, and agent scaling. In large teams, maintaining a Jenkins farm is a full-time job in itself.

  2. The Cloud-native Era (2010s). CI/CD tools that run as (managed) services were born: Travis CI, CircleCI, then GitLab CI. The concept is the same as Jenkins — pipeline as code — but the server is managed by the provider, and builds run on runners billed per minute. Teams no longer busy themselves maintaining servers, instead focusing on pipeline logic.

  3. The Git-native Integration Era (2019-present). Microsoft acquired GitHub in 2018, and in 2019 GitHub Actions officially reached general availability after a beta period. What sets it apart isn't just "CI/CD in the cloud", but its integration that is fused with every repository event and the birth of GitHub Marketplace — an ecosystem of ready-made actions that can be shared across repositories and teams around the world.

Why Choose GitHub Actions?

There are three main reasons that make GitHub Actions stand out:

  1. Native integration with GitHub. Actions isn't a tool "hooked into" GitHub via webhook; it's part of the platform itself. Events like push, pull_request, issues, and release automatically become triggers without extra configuration. Pipeline status even appears directly in the Checks tab on every pull request.

  2. Thousands of actions in GitHub Marketplace. You don't have to write everything from scratch. Popular actions like actions/checkout for cloning the repository, actions/setup-node for setting up the Node.js runtime, or deploy-to-Vercel actions — all are ready to use. It's like choosing from a shelf of ready-made libraries, complete with versioning.

  3. Generous free quotas. Public repositories get unlimited free runner minutes, and private repositories still get a monthly free quota that's enough for learning and small projects. Plus a transparent per-minute pricing model with no server licensing fees.

Jenkins vs GitHub Actions vs GitLab CI Comparison

AspectJenkinsGitHub ActionsGitLab CI
Hosting modelSelf-hosted (needs your own server)Cloud-native, managed by GitHubCloud-native, managed by GitLab
Pipeline definitionJenkinsfile (Groovy)YAML in .github/workflowsYAML in .gitlab-ci.yml
VCS integrationNeeds plugins & webhook configNative (push, PR, issue, release)Native in GitLab
Extension ecosystemThousands of plugins (legacy)Marketplace with thousands of actionsTemplates & components
RunnerSelf-managed agentsGitHub-hosted + self-hostedGitLab-hosted + shared
Best forLarge teams with their own infrastructureTeams already using GitHubTeams using GitLab end-to-end

There's no absolutely wrong choice — Jenkins remains excellent for full control, and GitLab CI excels for teams wanting one platform from repo to monitoring. But for those whose repositories are already on GitHub, Actions removes integration and server maintenance costs while giving access to the largest action ecosystem in the world.

Note

The terms "runner" and "workflow" will become your daily vocabulary. Don't worry if they still sound abstract — in episode 2 we'll dissect the entire GitHub Actions architecture one by one.

Conclusion

In episode 1 you built an important conceptual foundation:

  • Continuous Integration: automating build, testing, and code integration on every commit or pull request, for a main branch that is always green.
  • Continuous Delivery vs Continuous Deployment: ready to release with manual approval versus automatic deployment all the way to production.
  • Tool evolution: from the self-hosted Jenkins of the 2000s, to cloud-native tools, to GitHub Actions born in 2019 as part of the GitHub platform.
  • Reasons to choose GitHub Actions: native integration with GitHub events, thousands of actions in the Marketplace, and generous free runner quotas.

Now you know why; it's time to understand how. In episode 2 we'll dissect the core GitHub Actions architecture: what workflow, event, job, step, action, and runner are, how they relate to each other, and the difference between GitHub-hosted and self-hosted runners. See you in episode 2!

Learn GitHub Actions - History, CI/CD Concepts & Why Choose GitHub Actions | Learn GitHub Actions