This is a GitHub Template Repository. You can use the green button to create a new repository based on this template. Read more about GitHub Template Repositories. Have a look at the Standard Go Project Layout for setup conventions.
- Continuous integration via GitHub Actions,
- Build automation via Make,
- Dependency management using Go Modules,
- Code formatting using gofumpt,
- Linting with golangci-lint and misspell,
- Unit testing with race detector, code coverage HTML report and Codecov report,
- releasing using GoReleaser,
- dependencies scanning and updating thanks to Dependabot,
- security code analysis using CodeQL Action, and govulncheck,
- Visual Studio Code configuration with Go support.
This template supports Makefile
to run tooling.
make
is choosen as it is available on most systems.
# show `help`
make help
Other available targets are
build Build the binary file.
clean Remove previous build.
fmt Run go fmt against code.
generate Generate code.
help Display this help screen.
lint Run lint.
mocks Generate mocks.
release Release the project.
test Run tests.
vet Run go vet against code.
The convention is to use make
to run the build.
Happy coding!