Go Meta Linter is a great tool to run code quality checks including vet, static analysis, security, linting and others. I’ve used it a few times, enjoyed it, and I’ve built a basic setup to include it into CI/CD, along with the unit tests execution.
All you need is Docker and a Docker images repository like Docker Hub. You’ll build an image to run the tools in, push it to your repository, then pull it on your CI/CD machine and run a container from it, as simply as:
docker run -ti --rm \ -e PKG=github.com/andreiavrammsd/dotenv-editor \ -e CONFIG=dev/.gometalinter.json \ -v $PWD:/app \ yourdockerusername/go-qa-tools \ make
(later edit: I archived the example package)
Of course, it can be integrated into a service like Travis:
sudo: required language: minimal install: - docker pull andreiavrammsd/go-qa-tools script: - docker run -ti -e PKG=github.com/andreiavrammsd/dotenv-editor -e CONFIG=dev/.gometalinter.json -v $PWD:/app andreiavrammsd/go-qa-tools make
See the full Go QA tools setup on GitHub.