All Projects → RyanSiu1995 → gcb-visualizer

RyanSiu1995 / gcb-visualizer

Licence: MIT license
Cloudbuild pipeline visualizer with graphviz

Programming Languages

go
31211 projects - #10 most used programming language
python
139335 projects - #7 most used programming language
Dockerfile
14818 projects
Makefile
30231 projects

Projects that are alternatives of or similar to gcb-visualizer

gke-demo
Demonstration of complete, fully-featured CI/CD and cloud automation for microservices, done with GCP/GKE
Stars: ✭ 47 (+123.81%)
Mutual labels:  gcp, gcb
redot
Graphviz dot file processor powered by plugins based on @unifiedjs
Stars: ✭ 60 (+185.71%)
Mutual labels:  graphviz, graphviz-dot
vscode-interactive-graphviz
Interactive Graphviz Dot Preview for Visual Studio Code
Stars: ✭ 57 (+171.43%)
Mutual labels:  graphviz, graphviz-dot
craftql
A CLI tool to visualize GraphQL schemas and to output a graph data structure as a graphviz .dot format
Stars: ✭ 75 (+257.14%)
Mutual labels:  graphviz, graphviz-dot
nmap-formatter
A tool that allows you to convert NMAP results to html, csv, json, markdown, graphviz (dot). Simply put it's nmap converter.
Stars: ✭ 129 (+514.29%)
Mutual labels:  graphviz, graphviz-dot
poddotify
A command line tool: from a Podfile.lock to an image.
Stars: ✭ 79 (+276.19%)
Mutual labels:  graphviz, graphviz-dot
GiGraph
Simple yet versatile library for generating graphs in the DOT language
Stars: ✭ 25 (+19.05%)
Mutual labels:  graphviz, graphviz-dot
DotNetGraph
Create GraphViz DOT graph with .NET / C#
Stars: ✭ 57 (+171.43%)
Mutual labels:  graphviz, graphviz-dot
ocaml-re-nfa
OCaml code to construct an NFA from a regular expression
Stars: ✭ 44 (+109.52%)
Mutual labels:  graphviz, graphviz-dot
terraformit-gcp
Generating tf files and tfstate from existing GCP resources.
Stars: ✭ 48 (+128.57%)
Mutual labels:  gcp
terraform-google-nomad
📗 Terraform Module for Nomad clusters with Consul on GCP
Stars: ✭ 63 (+200%)
Mutual labels:  gcp
terraform-splunk-log-export
Deploy Google Cloud log export to Splunk using Terraform
Stars: ✭ 26 (+23.81%)
Mutual labels:  gcp
j2
j2 is a minimalist concatenative programming language that makes up for its simplicity by its ability to natively bind with C libraries' ABI *and types*, *without glue*
Stars: ✭ 37 (+76.19%)
Mutual labels:  graphviz
associate-cloud-engineer
Resources on preparing for Google Cloud Associate Cloud Engineer certification
Stars: ✭ 142 (+576.19%)
Mutual labels:  gcp
SimpleCSPM
GCP CSPM using Google Sheets
Stars: ✭ 24 (+14.29%)
Mutual labels:  gcp
img ai app boilerplate
An image classification app boilerplate to serve your deep learning models asap!
Stars: ✭ 27 (+28.57%)
Mutual labels:  gcp
visualsc
A simplicial complex and hypergraph visualization tool similar to Graphviz.
Stars: ✭ 31 (+47.62%)
Mutual labels:  graphviz
gcp-get-secret
A simple command line utility to get secrets from the Google Secret Manager into your environment
Stars: ✭ 35 (+66.67%)
Mutual labels:  gcp
tf-free
Create cloud-native resources on all the major cloud providers, completely free of charge. This project is currently under heavy development.
Stars: ✭ 107 (+409.52%)
Mutual labels:  gcp
gcp-ingestion
Documentation and implementation of telemetry ingestion on Google Cloud Platform
Stars: ✭ 60 (+185.71%)
Mutual labels:  gcp

Google Cloud Build Pipeline Visualizer

build codecov

For the current version of Google cloud build, it supports the async process with the variable waitFor. With the growth of complexity of your pipeline, it will be hard to maintain the async flow. Unlike Jenkins and CircleCI, there is no visualizer for your pipeline. This application aims at visualize the pipeline and help the developers to debug their cloud build.

Current features

  • YAML format cloud build definition digestion
  • Temporary graph rendering
  • Save graph as dot, png, jpg or jpeg
  • JSON format support

Rule of cloud build async process

From the Google docs, there are a few rules for the async process.

  1. If no values are provided for waitFor, the build step waits for all prior build steps in the build request to complete successfully before running.
  2. A step is dependent on every id in its waitFor and will not launch until each dependency has completed successfully.
  3. By declaring that a step depends only on -, the step runs immediately when the build starts.

How to install

  1. Through go get (Recommended)

    You can install the binary through the following command.

    go get -u github.com/RyanSiu1995/gcb-visualizer
  2. Install the pre-built binary

    You can download the pre-built binary in release page of this repo. Because of the C binding in the Graphviz library, there is a difficulty in building binary based on different common OS and Arch. The current pre-built binaries are built under 64 bit. If you are an user with 32 bits system, please use other approach. If the pre-built binary does not work. Please report on the issue.

  3. Use pre-built docker image

    You can use docker image released to execute the gcb-visualizer without considering the OS and Arch. Please follow this instruction to setup the command alias.

    docker pull ryansiu1995/gcb-visualizer:latest
    alias gcb-visualizer="docker run -v $(pwd):/app ryansiu1995/gcb-visualizer:latest"

    or this command in powershell

    docker pull ryansiu1995/gcb-visualizer:latest
    Set-Alias gcb-visualizer "docker run -v $(pwd):/app ryansiu1995/gcb-visualizer:latest"

    You can put the alias to your profile in order to create a permanent alias.

How to use

You can visualize your pipeline with the following command.

gcb-visualizer visualize <your-cloudbuild-yaml-or-json-file>

If you want to output the graph into other formats, you can use the output flag as the following.

gcb-visualizer visualize --output my-pipeline.jpg <your-cloudbuild-yaml>

The current supported output formats are jpg, jpeg, dot and png.

Example Output

Given an example input of something like the Google Cloud integration test example you should get an output that looks something like this

Go Builder output

Future features

  • Cloudbuild definition linting and checking
  • Multiple OS and Arch binary building
  • Brew, Apt and Chocolatey support
  • Quick installation script
  • More beautiful generated graph

Contributing

Please feel free to submit a pull request or open an issue for the application improvement. Before creating the pull request, please kindly run the follow command to test the program

make tests

License

This project is licensed under the MIT License - see the LICENSE.md file for details

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].