Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/steven2k2/cicd-pipeline
Continuous Integration and Continuous Deployment (CI/CD) Pipeline with GitHub Pages.
https://github.com/steven2k2/cicd-pipeline
continuous-deployment continuous-integration
Last synced: about 22 hours ago
JSON representation
Continuous Integration and Continuous Deployment (CI/CD) Pipeline with GitHub Pages.
- Host: GitHub
- URL: https://github.com/steven2k2/cicd-pipeline
- Owner: steven2k2
- License: mit
- Created: 2024-12-07T23:21:13.000Z (17 days ago)
- Default Branch: main
- Last Pushed: 2024-12-09T01:17:25.000Z (16 days ago)
- Last Synced: 2024-12-09T01:29:21.563Z (16 days ago)
- Topics: continuous-deployment, continuous-integration
- Language: JavaScript
- Homepage: https://steven2k2.github.io/cicd-pipeline/
- Size: 549 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CI/CD Pipeline Example
This repository demonstrates a basic CI/CD pipeline implementation using GitHub Actions. It is designed as a learning exercise to explore CI/CD concepts and their practical application in modern web development, specifically for a React project.
## Features Implemented
### 1. Source Control Trigger
- **Status:** ✅ Implemented
- **Description:** The pipeline is triggered automatically on commits to the `main` branch, ensuring a continuous integration workflow.### 2. Automated Tests
- **Status:** ✅ Implemented
- **Description:** Jest is used for testing the project. Tests run automatically in the pipeline, and any failures halt the workflow to ensure code quality.### 3. Notifications
- **Status:** ✅ Implemented
- **Description:** Notifications for workflow status are configured via GitHub Mobile, providing alerts for failures and successes.### 4. Automated Build
- **Status:** ✅ Implemented
- **Description:** The build process is integrated into the pipeline and runs automatically as part of the CI workflow.### 5. Deployment
- **Status:** ✅ Implemented
- **Description:** Deployment to GitHub Pages is automated post-build, allowing the application to be continuously delivered and available online.### 6. Code Quality Checks
- **Status:** ✅ Implemented
- **Description:** ESLint has been integrated into the pipeline for linting and static code analysis, ensuring code adheres to best practices.### 7. Test Coverage Analysis
- **Status:** ✅ Implemented
- **Description:** Jest is configured to generate coverage reports, helping to track test completeness for the application.### 8. Artifact Storage
- **Status:** ✅ Implemented
- **Description:** Build artifacts, including test reports and coverage results, are stored in GitHub Actions for debugging and rollback purposes.## Features In Progress or Pending
### 1. Coverage Badges
- **Status:** ❌ In Progress
- **Description:** Automating the creation of coverage badges to reflect test coverage in the `README` file.### 2. Environment Separation
- **Status:** ❌ Pending
- **Description:** Setting up distinct workflows for staging and production environments to better manage deployments.### 3. Security Checks
- **Status:** ❌ Pending
- **Description:** Adding security scans and audit checks to ensure the safety of dependencies and application code.### 4. Monitoring
- **Status:** ❌ Pending
- **Description:** Implementing monitoring and post-deployment validation to ensure system stability and performance.### 5. Containerization
- **Status:** ❌ Pending
- **Description:** Integrating Docker into the pipeline for standardized application environments.## How to Use
1. Clone the repository.
2. Install dependencies using `npm install`.
3. Run the pipeline locally using `npm run lint`, `npm test`, and `npm run build` to replicate CI checks.
4. Deploy to GitHub Pages via the provided workflow.## Future Goals
This project aims to serve as a complete example of a modern CI/CD pipeline by gradually implementing features like security scanning, monitoring, and Docker-based containerization.
---
Feel free to contribute by suggesting or implementing additional features!