A simple task app built with React that allows users to create tasks. This project was created to learn how to build a CI pipeline.
- Create tasks
- Simple and user-friendly interface
To get a local copy up and running follow these simple steps.
- Node.js
- npm or yarn
-
Clone the repo
git clone https://github.com/sivuyilemene/task-app.git
-
Install NPM packages
npm install
npm start
Open http://localhost:8080 to view it in the browser.
npm run test
The project uses a Continuous Integration (CI) pipeline with the following stages:
- Pre-commit linting and formatting: Ensures code quality with ESLint and Prettier.
- Unit Testing: Ensures code passes all test before commiting
- Commit linting: Ensures commit messages follow a conventional format.
- Branch protection rules: Enforces rules on the main branch so code can only be committed via pull requests.
- Build and compile code: Ensures the code compiles correctly.
- Run unit tests: Ensure code passes all unit tests
- Check code coverage: ensure code passes code coverage of 80%
- Run integration tests: Ensures the app works as expected end-to-end. (not implemented)
- Builds Docker image: Packages the app into a Docker image.
- Tags and pushes Docker image: Publishes the Docker image to Docker Hub and Amazon ECR.
To pull and run the Docker image locally, follow these steps:
docker pull sivuyilemene/task-app:latest
docker run -p 8080:8080 docker.io/sivuyilemene/task-app:latest
Open http://localhost:8080 to view it in the browser.