GitHub Actions Complete Roadmap (Beginner to Advanced)

Step-by-Step Learning Guide with Practical Examples

This roadmap is designed specifically for QA Engineers, SDET, DevOps Beginners, and Developers who want to master GitHub Actions from scratch.

By the end of this guide, you’ll be able to build production-ready CI/CD pipelines for:

  • Selenium
  • Playwright
  • Cypress
  • API Testing
  • Python
  • Java
  • Node.js
  • Docker
  • AWS Deployment

Learning Path

LevelTopicsOutcome
Level 1GitHub FundamentalsUnderstand Git & GitHub
Level 2GitHub Actions BasicsRun first workflow
Level 3Workflow SyntaxLearn YAML
Level 4Events & TriggersControl execution
Level 5Jobs & StepsMulti-job pipelines
Level 6Variables & SecretsSecure pipelines
Level 7Matrix StrategyMultiple OS/Browsers
Level 8ArtifactsUpload Reports
Level 9CachingFaster execution
Level 10Advanced WorkflowsReusable workflows
Level 11DockerRun inside containers
Level 12DeploymentsAWS/Azure/GCP
Level 13Enterprise ConceptsProduction CI/CD

Module 1 — GitHub Fundamentals

Topics

  • What is Git?
  • What is GitHub?
  • Repository
  • Branch
  • Commit
  • Push
  • Pull
  • Merge
  • Pull Request
  • Fork
  • Clone

Example

git init

git add .

git commit -m "Initial Commit"

git push origin main

Module 2 — What is GitHub Actions?

GitHub Actions is GitHub’s built-in automation platform.

It automatically performs tasks whenever an event occurs.

Examples

  • Run tests
  • Build applications
  • Deploy websites
  • Send email
  • Upload reports
  • Publish packages

Module 3 — GitHub Actions Architecture

Understand these components:

Repository

↓

Workflow

↓

Jobs

↓

Steps

↓

Actions

↓

Runner

Workflow

.github/workflows/main.yml

Job

A workflow may contain multiple jobs.

jobs:
  test:

Step

steps:

Each job contains multiple steps.


Runner

GitHub provides runners.

Examples

ubuntu-latest

windows-latest

macos-latest

Action

Reusable automation.

Example

actions/checkout

Module 4 — First Workflow

name: My First Workflow

on: push

jobs:

  hello:

    runs-on: ubuntu-latest

    steps:

      - name: Print Message
        run: echo "Hello GitHub Actions"

Output

Hello GitHub Actions

Module 5 — YAML Basics

Topics

  • Indentation
  • Keys
  • Values
  • Lists
  • Mapping

Example

name: Demo

on:
  push:

jobs:

  build:

    runs-on: ubuntu-latest

    steps:

      - run: echo Hello

Module 6 — Workflow Triggers

Push

on:
  push:

Pull Request

on:
  pull_request:

Manual Trigger

on:
  workflow_dispatch:

Schedule

on:

  schedule:

    - cron: "0 6 * * *"

Runs every day.


Multiple Events

on:

  push:

  pull_request:

  workflow_dispatch:

Module 7 — Jobs

Single Job

jobs:

  test:

    runs-on: ubuntu-latest

Multiple Jobs

jobs:

  build:

  test:

  deploy:

Dependent Jobs

needs:

  build

Module 8 — Steps

steps:

- uses: actions/checkout@v4

- run: npm install

- run: npm test

Module 9 — GitHub Marketplace Actions

Popular Actions

actions/checkout

actions/setup-node

actions/cache

actions/upload-artifact

actions/download-artifact

actions/setup-python

Module 10 — Setup Programming Languages

NodeJS

- uses: actions/setup-node@v4

  with:

    node-version: 22

Python

- uses: actions/setup-python@v5

  with:

    python-version: 3.13

Java

- uses: actions/setup-java@v4

.NET

actions/setup-dotnet

Module 11 — Running Scripts

steps:

- run: ls

- run: pwd

- run: npm install

- run: npm test

Module 12 — Environment Variables

env:

  URL: https://example.com

Use

echo $URL

Windows

echo %URL%

Module 13 — Secrets

Repository

Settings

↓

Secrets and Variables

↓

Actions

Example

${{ secrets.USERNAME }}

${{ secrets.PASSWORD }}

Module 14 — Expressions

${{ github.actor }}

${{ github.repository }}

${{ github.ref }}

${{ github.sha }}

${{ runner.os }}

Module 15 — Conditional Execution

if:

  github.ref == 'refs/heads/main'

Example

- name: Deploy

  if: github.ref == 'refs/heads/main'

Module 16 — Matrix Strategy

Run on multiple operating systems.

strategy:

  matrix:

    os:

      - ubuntu-latest

      - windows-latest

      - macos-latest

Multiple Node versions

matrix:

  node:

    - 18

    - 20

    - 22

Module 17 — Caching

uses:

actions/cache@v4

Cache

  • npm
  • Maven
  • Gradle
  • Pip

Improves build speed.


Module 18 — Upload Artifacts

Example

- uses:

actions/upload-artifact@v4

with:

  name: TestReport

  path: reports/

Download later.


Module 19 — Download Artifacts

actions/download-artifact

Module 20 — Service Containers

Run databases.

MySQL

PostgreSQL

Redis

MongoDB

Module 21 — Docker

Build Docker Image

docker build .

Push Docker Hub

docker push

Module 22 — Reusable Workflows

workflow_call

Used in enterprise projects.


Module 23 — Composite Actions

Create your own custom action.

action.yml

Module 24 — Inputs

workflow_dispatch:

inputs:

Example

Branch Name

Environment

Browser

Module 25 — Outputs

Pass values between jobs.

outputs:

Module 26 — Self Hosted Runner

Instead of GitHub Runner

Your Server

↓

GitHub Runner Installed

↓

Workflow Executes

Module 27 — Deployments

Deploy to

  • AWS EC2
  • Azure
  • GCP
  • Kubernetes
  • Docker
  • IIS

Module 28 — Notifications

Examples

  • Email
  • Slack
  • Microsoft Teams
  • Discord

Module 29 — Playwright CI

Workflow

Checkout

↓

Setup Node

↓

Install Dependencies

↓

Install Browsers

↓

Execute Tests

↓

Upload HTML Report

Module 30 — Selenium Python CI

Checkout

↓

Setup Python

↓

Install Requirements

↓

Run Pytest

↓

Upload Allure Report

Module 31 — API Automation

Run

  • Postman
  • Newman
  • Rest Assured
  • Pytest API

Module 32 — Advanced Concepts

  • Reusable workflows
  • Composite actions
  • Dependency graph
  • Workflow permissions
  • OIDC authentication
  • Concurrency
  • Environments
  • Required reviewers
  • Branch protection
  • Deployment approvals
  • Environment protection rules

Module 33 — Enterprise CI/CD Pipeline

Developer

↓

Push Code

↓

Build

↓

Static Code Analysis

↓

Unit Test

↓

Integration Test

↓

Automation Test

↓

Package

↓

Docker Build

↓

Security Scan

↓

Deploy Staging

↓

Approval

↓

Deploy Production

↓

Notification

Module 34 — Real-World Project Examples

Project 1

Node.js Application CI

  • Install dependencies
  • Run ESLint
  • Run Unit Tests
  • Upload Coverage

Project 2

Python Project

  • Install Python
  • Install Requirements
  • Execute Pytest
  • Generate HTML Report

Project 3

Playwright Automation

  • Install Node
  • Install Browsers
  • Execute Tests
  • Upload HTML Report
  • Upload Allure Report

Project 4

Java Selenium

  • Setup Java
  • Setup Maven
  • Execute TestNG
  • Publish Report

Project 5

Docker Deployment

  • Build Image
  • Push Docker Hub
  • Deploy EC2

Project 6

AWS Deployment

  • Build
  • SCP Files
  • Restart Service

Leave a Comment