Update the node version to be consistent between the tests and publishing. Adds yarn cacheing to the setup-node action. Adds a conditional action for the publishing so we don't publish a release the release tagging fails.
This is also done in actions/checkout but for some reason dose not work. I think its got something to do with us using a container for the action.