Skip to content

vanichalla24/Camera_CI-CD

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

2 Commits
Β 
Β 

Repository files navigation

πŸ“Έ Camera CI/CD Pipeline

Automated CI/CD for Samsung Camera Quality Validation

Build β†’ Deploy β†’ Test β†’ Report β†’ Alert β€” fully automated for Galaxy camera programs

πŸ“– Pipeline Stages Β· πŸš€ Setup Β· πŸ“Š Reports


πŸ“Œ What Is This?

A complete CI/CD pipeline designed for Samsung Galaxy camera quality validation programs. Every code commit to the camera HAL or ISP pipeline automatically triggers a full regression suite across multiple devices, generates quality metrics, and alerts the team on failures.

Designed from 13 consecutive Samsung Galaxy flagship release cycles.


🎯 What It Automates

Stage What Happens
Build Trigger Code merged β†’ pipeline starts automatically
Device Farm 6 physical Samsung devices provisioned via ADB
Camera Tests Appium + Python test suite executes (Photo, Video, Pro, Night)
Quality Metrics SSIM, PSNR, Ξ”E2000 computed on captured images
Memory Check ADB dumpsys meminfo scans for leaks after each test
Report Allure HTML report generated with screenshots
Alert Slack notification with pass/fail summary + report link

πŸ—οΈ Pipeline Stages

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚                  Jenkins Pipeline                   β”‚
β”‚                                                     β”‚
β”‚  1. CHECKOUT    β†’ Pull latest camera code           β”‚
β”‚  2. BUILD       β†’ Compile APK / firmware            β”‚
β”‚  3. PROVISION   β†’ Flash devices via ADB             β”‚
β”‚  4. SMOKE       β†’ 5-min quick validation            β”‚
β”‚  5. REGRESSION  β†’ Full 2-hour camera suite          β”‚
β”‚  6. METRICS     β†’ Image quality analysis            β”‚
β”‚  7. LEAK CHECK  β†’ Memory profiling                  β”‚
β”‚  8. REPORT      β†’ Allure + HTML report              β”‚
β”‚  9. NOTIFY      β†’ Slack + email alert               β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸ“ Project Structure

Camera_CI-CD/
β”‚
β”œβ”€β”€ Jenkinsfile                   ← Main pipeline definition
β”‚
β”œβ”€β”€ pipeline/
β”‚   β”œβ”€β”€ stages/
β”‚   β”‚   β”œβ”€β”€ build.groovy          ← APK build stage
β”‚   β”‚   β”œβ”€β”€ provision.groovy      ← Device setup via ADB
β”‚   β”‚   β”œβ”€β”€ smoke.groovy          ← Quick smoke test
β”‚   β”‚   └── regression.groovy     ← Full camera regression
β”‚   └── notifications/
β”‚       └── slack_notify.groovy   ← Slack alerts
β”‚
β”œβ”€β”€ tests/
β”‚   β”œβ”€β”€ camera/
β”‚   β”‚   β”œβ”€β”€ test_photo_capture.py ← Photo mode tests
β”‚   β”‚   β”œβ”€β”€ test_video_record.py  ← Video recording tests
β”‚   β”‚   β”œβ”€β”€ test_pro_mode.py      ← Pro mode validation
β”‚   β”‚   └── test_night_mode.py    ← Night mode tests
β”‚   └── quality/
β”‚       β”œβ”€β”€ ssim_validator.py     ← Structural similarity check
β”‚       β”œβ”€β”€ psnr_calculator.py    ← Peak signal-to-noise ratio
β”‚       └── color_accuracy.py     ← Ξ”E2000 color difference
β”‚
β”œβ”€β”€ scripts/
β”‚   β”œβ”€β”€ adb_device_check.sh       ← Verify devices connected
β”‚   β”œβ”€β”€ flash_build.sh            ← Flash firmware to device
β”‚   └── memory_leak_scan.sh       ← ADB meminfo scanner
β”‚
β”œβ”€β”€ config/
β”‚   β”œβ”€β”€ devices.json              ← Device UDID registry
β”‚   └── thresholds.json           ← Quality pass/fail thresholds
β”‚
β”œβ”€β”€ reports/                      ← Auto-generated Allure reports
β”œβ”€β”€ requirements.txt
└── README.md

πŸš€ Setup

# Clone
git clone https://github.com/vanichalla24/Camera_CI-CD.git

# Install Python dependencies
pip install -r requirements.txt

# Verify devices
bash scripts/adb_device_check.sh

# Run locally
python -m pytest tests/camera/ --alluredir=reports/allure-results

# Generate report
allure generate reports/allure-results -o reports/allure-report --clean
allure open reports/allure-report

πŸ“Š Quality Thresholds

{
  "ssim_min": 0.92,
  "psnr_min": 35.0,
  "delta_e_max": 2.5,
  "memory_leak_threshold_mb": 50,
  "test_execution_max_minutes": 120
}

πŸ“ˆ Metrics Tracked

  • SSIM β€” Structural Similarity Index (image quality vs reference)
  • PSNR β€” Peak Signal-to-Noise Ratio (noise level measurement)
  • Ξ”E2000 β€” Perceptual color accuracy vs Macbeth color chart
  • PSS Memory β€” Proportional Set Size after 20 capture iterations
  • Jank Frames β€” dumpsys gfxinfo dropped frames in viewfinder
  • Focus Time β€” PDAF autofocus convergence (ms)

πŸ‘©β€πŸ’» Author

Vaani Challa β€” QA Architect | Samsung SRIB | 17+ Years Camera QA Lead Β· 13 Galaxy flagship releases Β· Zero S1 escapes


πŸ“„ License

MIT Β© Vaani Challa

About

πŸ“Έ CI/CD pipeline for Samsung Galaxy camera quality validation β€” Jenkins + Appium + ADB + image quality metrics (SSIM/PSNR/Ξ”E2000) with Allure reports and Slack alerts

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors