sivart-ci
A Body-less Head-only CI Dashboard built with MEAN stack and Socket.IO for Realtime monitoring.
####Expand Stream
How to Run
Install
Once repo is cloned, run npm install
in repo folder to install all dependencies. Note that MongoDB is currently accessed from Modulus.io and Database URL and Path are used from sivart-ci\configuration.json
, in case you want to make any database changes, change variables accordingly.
Start
Once dependencies are installed, run npm start
and and open localhost:4000
in your web browser. In case you want to use different ports, change the same in configuration.json
.
REST API to Create Sample Records
While the URL given in configuration points to MongoDB instance with some sample records available (which may not be permanent). So in case you're planning to make database changes, Sivart-CI already has REST endpoints available for required CRUD operations that you can manually use to create compliant Changelist records.
GET /api/changelists
Gets all the available changelists from configured MongoDB server.
[
{
"_id": "56589a208cc3ec6c2ede72a3",
"changeListName": "432464",
"owner": "JTuck",
"timeStarted": 1400299920000,
"__v": 0,
"functionalTest": {
"total": 16321,
"passCount": 0,
"duration": 0
},
"unitTest": {
"total": 345,
"passCount": 0,
"duration": 0
},
"build": {
"timeCompleted": 0
},
"activity": {
"phase": 0,
"status": 0
}
}
...
...
]
POST /api/changelist
Creates a Changelist item on server and returnsid
andstatus
of operation. Request Body
{
"changeListName": "432464",
"owner": "JTuck",
"timeStarted": 1400299920000,
"activity": {
"status": 1,
"phase": 0
},
"build": {
"timeCompleted": 0
},
"unitTest": {
"total": 345,
"passCount": 0,
"duration": 0
},
"functionalTest": {
"total": 16321,
"passCount": 0,
"duration": 0
}
}
Response
{
"status": 1,
"id": "56589a938cc3ec6c2ede72a4",
"changeListName": "432463"
}
PUT /api/changelist/:changelist_id
Updates a Changelist item on server for providedchangelist_id
. Request Body
{
"activity": {
"status": 0,
"phase": 0
}
}
Response
{
"status": 1,
"id": "56589a938cc3ec6c2ede72a4",
"changeListName": "432463"
}
DELETE /api/changelist/:changelist_id
Deletes a Changelist item on server for providedchangelist_id
. Response
{
status: 1
}
Technologies Used
- ExpressJS - Node HTTP Server.
- Modulus - MongoDB Hosting Provider.
- Mongoose - ODM for MongoDB.
- Morgan - Logging for NodeJS applications.
- Socket.IO - Socket support for NodeJS and WebSocket in Browser.
- GruntJS - Build automation and Compass support.