Skip to content

MindaugasLaganeckas/pipeline-graph-viewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A pipeline dashboard for multi repository builds with GitHub Actions

It is very common to use time during SW development in order to keep an eye on your builds. A good overview of the build chain is a true help to developers. Build systems, such as TeamCity or Jenkins, have solved this problem by introducing the Dependency Graph View (DGV) (see DGV) .

More and more develpers/organizations either start using Github for their projects or migrate the existing ones from the on-premise setup. Github actions gives a very nice (and similar to Jenkins/TeamCity) graphical overview of the jobs in the workflow during the build. Still many complex setups coming from big organizations combine several repositories into a build and a good overview of the build is missing.

While there are already attempts to solve this problem from the community side (see Complex multi-repo builds with GitHub Actions and Camunda Cloud) we propose a similar, but also more lightweight solution, that is deployed on DigitalOcean and is powerred by Mermaid diagram viewer.

The pipeline dashboard is an event based system. There are two special even types: initialization and status updates to the jobs in the dashboard. The complete list of examples for each update event and initialization is given below.


The implemented solution is not limited to Github actions and can be deployed on any platform that either has DotNet5 or Docker installed.


If you would like to initialize the pipeline dashboard with an example:
curl --header "Content-Type: application/json"  \
--request POST --data '[["doctl","sample-golang"],["sample-dockerfile","sample-gatsby"],["doctl","sample-gatsby"],["godo","sample-gatsby"],["go-workers2","sample-gatsby"],["pynetbox","hacktoberfest"],["terraform-provider-digitalocean","grafana"],["pynetbox","doctl"],["sample-golang","godo"],["hacktoberfest","godo"],["droplet_kit","godo"],["sample-laravel-api","openapi"],["sample-gatsby","nginxconfig.io"],["go-libvirt","terraform-provider-digitalocean"],["go-libvirt","droplet_kit"],["sample-laravel-api","go-workers2"],["clusterlint","go-workers2"],["openapi","clusterlint"],["clusterlint","clusterlint"]]' \
https://your-hostname/pipelinegraph/init
You will get the session ID back, that you will use in both viewing the dashboard and updating the status' of the jobs.
To access the dashboard, visit https://your-hostname/graph/session-id
A job has been started:
curl --header "Content-Type: application/json"   --request POST --data '["hacktoberfest","running"]' https://your-hostname/pipelinegraph/updatestatus/session-id
A job finished with success:
curl --header "Content-Type: application/json"   --request POST --data '["doctl","finishedsuccess"]' https://your-hostname/pipelinegraph/updatestatus/session-id
A job failed:
curl --header "Content-Type: application/json"   --request POST --data '["terraform-provider-digitalocean","finishederror"]' https://your-hostname/pipelinegraph/updatestatus/session-id

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published