{"id":16156121,"url":"https://github.com/ryansiu1995/gcb-visualizer","last_synced_at":"2025-03-18T20:30:34.520Z","repository":{"id":46005462,"uuid":"254012677","full_name":"RyanSiu1995/gcb-visualizer","owner":"RyanSiu1995","description":"Cloudbuild pipeline visualizer with graphviz","archived":false,"fork":false,"pushed_at":"2023-03-29T01:56:58.000Z","size":187,"stargazers_count":23,"open_issues_count":9,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-02-28T12:06:14.759Z","etag":null,"topics":["cloudbuild","gcb","gcp","google-cloud-build","graphviz","graphviz-dot"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/RyanSiu1995.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null}},"created_at":"2020-04-08T07:12:07.000Z","updated_at":"2024-12-27T10:31:56.000Z","dependencies_parsed_at":"2024-01-14T02:39:48.657Z","dependency_job_id":"3bbb1f09-4b37-4ca9-bf0e-be3161400c7b","html_url":"https://github.com/RyanSiu1995/gcb-visualizer","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanSiu1995%2Fgcb-visualizer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanSiu1995%2Fgcb-visualizer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanSiu1995%2Fgcb-visualizer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/RyanSiu1995%2Fgcb-visualizer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/RyanSiu1995","download_url":"https://codeload.github.com/RyanSiu1995/gcb-visualizer/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":243949790,"owners_count":20373651,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cloudbuild","gcb","gcp","google-cloud-build","graphviz","graphviz-dot"],"created_at":"2024-10-10T01:24:35.935Z","updated_at":"2025-03-18T20:30:34.151Z","avatar_url":"https://github.com/RyanSiu1995.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Google Cloud Build Pipeline Visualizer\n\n[![build](https://github.com/RyanSiu1995/gcb-visualizer/workflows/Go/badge.svg)](https://github.com/RyanSiu1995/gcb-visualizer/workflows/Go/badge.svg) [![codecov](https://codecov.io/gh/RyanSiu1995/gcb-visualizer/branch/master/graph/badge.svg?token=6QAXYRV25Z)](https://codecov.io/gh/RyanSiu1995/gcb-visualizer)\n\nFor 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.\n\n## Current features\n* YAML format cloud build definition digestion\n* Temporary graph rendering\n* Save graph as dot, png, jpg or jpeg\n* JSON format support\n\n## Rule of cloud build async process\nFrom the Google [docs](https://cloud.google.com/cloud-build/docs/configuring-builds/configure-build-step-order), there are a few rules for the async process.\n1. 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.\n1. A step is dependent on every id in its waitFor and will not launch until each dependency has completed successfully.\n1. By declaring that a step depends only on `-`, the step runs immediately when the build starts.\n\n## How to install\n1. Through `go get` (Recommended)\n\n   You can install the binary through the following command.\n   ```bash\n   go get -u github.com/RyanSiu1995/gcb-visualizer\n   ```\n1. Install the pre-built binary\n\n   You can download the pre-built binary in [release page](https://github.com/RyanSiu1995/gcb-visualizer/releases) 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.\n1. Use pre-built docker image\n\n   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.\n   ```bash\n   docker pull ryansiu1995/gcb-visualizer:latest\n   alias gcb-visualizer=\"docker run -v $(pwd):/app ryansiu1995/gcb-visualizer:latest\"\n   ```\n   or this command in powershell\n   ```powershell\n   docker pull ryansiu1995/gcb-visualizer:latest\n   Set-Alias gcb-visualizer \"docker run -v $(pwd):/app ryansiu1995/gcb-visualizer:latest\"\n   ```\n   You can put the alias to your profile in order to create a permanent alias.\n\n## How to use\nYou can visualize your pipeline with the following command.\n```bash\ngcb-visualizer visualize \u003cyour-cloudbuild-yaml-or-json-file\u003e\n```\nIf you want to output the graph into other formats, you can use the output flag as the following.\n```bash\ngcb-visualizer visualize --output my-pipeline.jpg \u003cyour-cloudbuild-yaml\u003e\n```\nThe current supported output formats are jpg, jpeg, dot and png.\n\n## Example Output\nGiven an example input of something like the [Google Cloud integration test example](https://github.com/GoogleCloudPlatform/cloudbuild-integration-testing/blob/master/cloudbuild.compose.yaml)\nyou should get an output that looks something like this\n\n![Go Builder output](./example/example.png)\n\n## Future features\n* Cloudbuild definition linting and checking\n* Multiple OS and Arch binary building\n* Brew, Apt and Chocolatey support\n* Quick installation script\n* More beautiful generated graph\n\n## Contributing\nPlease 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\n```bash\nmake tests\n```\n\n## License\nThis project is licensed under the MIT License - see the [LICENSE.md](./LICENSE.md) file for details\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryansiu1995%2Fgcb-visualizer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryansiu1995%2Fgcb-visualizer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryansiu1995%2Fgcb-visualizer/lists"}