When you use the words "increment version", are you referring to the pipeline run number? If so, then that number is the run number of the pipeline and is auto-incremented whenever the pipeline is triggered.
What you have described (continue if the unit-tests succeed) is a part of pipeline design, where within a pipeline, one stage would run a job that runs the unit tests, and the next stage would run whatever job you want to run after the unit tests. Note : It is extremely easy to run multiple jobs in parallel within a stage - provided there are agents available for those jobs.
GoCD has native support for various materials (where GoCD will poll those material sources and trigger pipelines).
You can run the respective command line tools via shell scripts within a pipeline, where the pipeline can either be triggered via API, or polls a source code material for changes, or is manually triggered.