This project demonstrates a professional-grade plugin-style CI integration of:
- ✅ Cypress for end-to-end testing
- 🐞 Jira API for bug reporting
- ⚙️ Jenkins (or GitHub Actions) for CI/CD automation
- ✅ Unit testing , integration testing , api testing etc
git clone https://github.com/iamxerrycan/CICD-QA.git
cd CICD-QAnpm install
npm run test:unit
npm run test:integration
npm run test:api
npx cypress open
npx cypress run
- 🧪 Automatically detects failed Cypress tests
- 🐛 Creates bugs in Jira via REST API
- 📸 (Optional) Attach failure screenshots to bugs
- 🔧 Easily extendable to Jenkins or GitHub Actions
CICD-QA/
├── api/ # Backend logic
├── cypress/ # Cypress end-to-end tests
│ ├── e2e/
│ ├── fixtures/
│ ├── plugins/
│ └── support/
├── function/ # Custom logic to test
├── tests/
│ ├── unit/ # Jest unit tests
│ ├── integration/ # Combined function/module tests
│ ├── api/ # API testing (Supertest or Postman export)
│ ├── performance/ # JMeter/k6 test scripts
│ └── visual/ # Percy/Cypress screenshot snapshots
├── test-docs/ # Manual test cases, plans, bug reports
│ ├── test-cases.md
│ ├── bug-reports.md
│ ├── test-plan.md
│ └── test-scenarios.md
├── .github/workflows/ # GitHub Actions CI
├── README.md # Project summary
├── jest.config.js
├── cypress.config.js
├── package.json
└── postman_collection.json # Optional: API tests in Postman format
✅ Unit Tests (Jest) – Pass
✅ End-to-End Tests (Cypress) – Pass via GitHub Actions
📺 Watch Full Cypress Test Run
👉 GitHub CI Logs
When a test fails, the plugin:
- Parses failure info from Cypress result
- Sends POST request to Jira API with:
- Bug title (from test title)
- Steps to reproduce
- Screenshot (optional)
{
"fields": {
"project": { "key": "QA" },
"summary": "[BUG] Form validation failed on empty email",
"description": "Steps: \n1. Leave email empty\n2. Click Submit\nExpected: Error shown\nActual: Form submitted silently.",
"issuetype": { "name": "Bug" }
}
}
ID: BUG-001 Module: Form Validation Severity: High Steps:
Leave email blank
Submit the form
Expected: Error message Actual: Form submitted silently
Cypress (E2E Automation)
Jest (Unit Testing)
Node.js + Express
GitHub Actions / Jenkins
Jira REST API
We'll go in this sequence – each with concept + practical:
✅ Manual Planning → Test Plan, Test Scenarios, Test Cases, Bug Reports
✅ Unit Testing with Jest → Business Logic Testing
✅ API Testing with Jest + Supertest
✅ Integration Testing
✅ E2E Testing with Cypress
✅ Visual Testing (Percy, optional)
✅ Performance Testing (JMeter intro)
✅ CI/CD (GitHub Actions)
✅ Bonus: Test Coverage, Report Generation, Jira Integration