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
| Level | Topics | Outcome |
|---|---|---|
| Level 1 | GitHub Fundamentals | Understand Git & GitHub |
| Level 2 | GitHub Actions Basics | Run first workflow |
| Level 3 | Workflow Syntax | Learn YAML |
| Level 4 | Events & Triggers | Control execution |
| Level 5 | Jobs & Steps | Multi-job pipelines |
| Level 6 | Variables & Secrets | Secure pipelines |
| Level 7 | Matrix Strategy | Multiple OS/Browsers |
| Level 8 | Artifacts | Upload Reports |
| Level 9 | Caching | Faster execution |
| Level 10 | Advanced Workflows | Reusable workflows |
| Level 11 | Docker | Run inside containers |
| Level 12 | Deployments | AWS/Azure/GCP |
| Level 13 | Enterprise Concepts | Production 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
- 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