I'm using it as a commit/push hook so all I need is a return code. Believe me, I wish I had time to contribute to Go. :-)
One other thing:
Go expands templates when writing the config file, doesn't it?
If I pipe two validations in sequence (reading from f1, writing to f2, reading from f2, writing to f3) using a config (f1) that has a pipeline that uses a template it fails on the second validation because a stage from the template is now part of that pipeline (and it cannot both define stages and use a template). Verifying the actual intermediate config I see that the stages are now inline, in the pipeline definition.
f1:
<pipeline name="myorg-cd-deploy-docker-image" template="deploy-myorg">
<params>
<param name="UPSTREAM_PIPELINE_NAME">coreplatform-build-helpers</param>
</params>
<materials>
<pipeline pipelineName="coreplatform-build-helpers" stageName="test"/>
</materials>
</pipeline>
f2:
<pipeline name="myorg-cd-deploy-docker-image" template="deploy-myorg">
<params>
<param name="UPSTREAM_PIPELINE_NAME"> coreplatform-build-helpers</param>
</params>
<materials>
<pipeline pipelineName="coreplatform-build-helpers" stageName="test" />
</materials>
<stage name="deploy"> <!-- this comes from the template definition -->
<jobs>
<job name="invoke_ansible_deployer">
<environmentvariables>
...
Is this by design? Circumventable? A Good Thing? Thoughts?
Again, thank you.
Vasco