This is a little GoCD configuration analysis, sanity check and audit helper tool
GoCD is a very user friendly and sophisticated Continuous Integration / Continuous Delivery tool. GoCD allows gradual immersion in its features by means of sensible defaults and a very well documented concept language. When many features of GoCD are used, it is easy to overlook misconfigured pipelines, e.g. when there is no agent with the resource required by a job, or when a pipeline is not part of the environment, where the dedicated agent is configured. This tool should give a quick overview of certain aspects of the configuration
- what agents are there and how are they configured? Summary, as it's already part of the GoCD UI.
- misconfigured agents: which jobs can an agent potentially run?
- capacity planning and misconfigured jobs: which agents can a job run on?
<<<OOPS>>>
on lonely jobs or agents, or on no agents configured- the tool relies on GoCD having validated the XML beforehand, thus, it might crash on invalid / incompatible XML input
- None
- No guarantees of fitness for any kind of task, use at your own risk
contributions with new analyses are welcome!
- get the configuration from a URL (good first issue)
- get pipeline config from remote pipeline-as-code repos
see
willitgocd --help
file analysis:
willitgocd xml -f <path_to>/server.xml
<<OOPS>>: the following jobs do not have an agent available to them!
Pipeline Stage Name RequiredResources Environments
----------------------------------------------------------------------
security defaultStage defaultJob security_but_no_env
deploy defaultStage defaultJob nonexistent_resource
Jobs that can be built by d659ae9960ba: r:(gradle,java,lua,security_but_no_env) e:(unused_environment) (...):
<<OOPS>>: no jobs will run on this agent!
Agents:
<<<OOPS>>: no agents are configured
- .NET Core SDK must be installed
- release: on Linux or OSX:
./build_release.sh
- development: see the build tasks in Visual Studio Code and the CI config
- 18.2.0
- others may work too if the XML model is not too different from the current one