NRNB: Graphspace
Setting up the CI/CD Pipeline using Github Actions on GraphSpace
Mahesh Kasbe (@maheshkasbe)
This project aims to stabilize the project and its code repository as there are multiple dependencies so, this will also help in reducing problems and blockers while setting up this project locally and also setting up the pipeline and checks for the PR to be merged into the master.
- Graphspace dependency issues
Resolve blockers and issues while setting up GraphSpace locally and running this project for eg. upgrading versions of some libraries, resolving requirements.txt file by adding all remaining libraries, installation issues, etc.
- Create a Dockerfile
Creating a docker file for this project which provides a suitable environment for running this project with all required dependencies. Create a docker-compose file that helps us to run this project in Github action workflows and create this image and also helps us to run this locally with minimal setup.
- Setup GitHub Actions
Set up the workflow for the GitHub actions which will provide a suitable environment for running this project and no PR can be merged without the jobs and checks being successful in the workflow. On every pull request and for every commit in the PR, the GitHub actions should trigger all the workflows and jobs written for this project.
Project Proposal - (Setting up the CI/CD with Github Actions Graphspace)
- Understood the Graphspace codebase.
- Discussed detailed workflow with mentors along with implementation ideas.
- Refined the strategic plan for project completion.
- Major Bug fixes done: (efa207)
- Fixed file extension typo for base.html inside templates folder for bootstrap-table static component
- Bumped psycopg2 version from 2.6.2 to 2.7.4, added lxml inside requirements.txt
- Removed bootstrap and bootstrap-table from bower.json to install.sh for smooth installation of Graphspace
- Created a locally deployable Docker-Compose file with Dockerfile (efee21f) (Demo)
- Added elasticsearch and postgres support for docker-compose
- Created a image deploy workflow to ECR using Github Actions (d292024) (Demo)
- Added some extra github actions workflow for quality & labeling (f8ce6e9)
- Fixed issue installing graphspace on mac (acf602b)
- Added documentation for installing graphspace locally on wiki page on graphspace repository (link)
- Added a Dockerhub workflow to push Graphspace image to dockerhub (c815599) (Demo)
- Added Trivy Vulnerability Scannner to scan docker Images (Demo)
- Created Project Report (Work Product) on github using a Gist File. (Gist File)
- Added Documented work report
- Added gif/Video assets in the report
- Completed the buffer task of the previous weeks
Tasks | Planned | Completed |
---|---|---|
Doing all the major and minor bug fixes to run | Yes | ✔️ |
Creating a Production grade Dockerfile | Yes | ✔️ |
Adding Github Action Workflow for building image | Yes | ✔️ |
Adding Github Action Workflows for enhancement | Yes | ✔️ |
Adding Github Action workflows for security | Yes | ✔️ |
Completeing the CI/CD Pipeline for deployment | Yes | ✔️ |
Documentation to install Graphspace & additional | Yes | ✔️ |
Presented the daily work to the mentors on a pull request made on forked resporitory.
Project Pull Request:
1. Yash Agarwal (primary mentor) - Github
2. Daniyal Warsi (secondary mentor) - Github
I would like to extend my sincere gratitude to my mentors for giving me this incredible opportunity. My mentors, along with the organization members, have been very approachable and have provided me with constant support and guidance throughout the project. I look forward to contributing and learning more from the organization.