Skip to content

A personal repository for the study and practice of the Go programming language.

Notifications You must be signed in to change notification settings

colin-valentini/go

Repository files navigation

go

build codecov

This repository is a collection of Go practice problems, or other assorted findings.

prequisites

Requires golang, bazel, and golangci-lint.

local development

Run make build to build all of the things, make test to test all of the things, and make lint to lint all of the things. If you get a bazel build error, try running make fix-build which will run formatting and build file updates.

build tooling

This repository uses Bazel to compile and run tests locally. Bazel can be downloaded, installed, and managed on your local machine using Bazelisk.

Bazel BUILD files are automatically generated and managed using Gazelle.

linter

Linting is handled using golangci-lint and is configured using the .golangci.yml file.

ci/cd pipeline

The CI/CD pipeline is run via GitHub actions and does not use Bazel, rather the standard Golang toolchain to build, vet, lint, and test. Test coverage is uploaded to Codecov for reports on coverage deltas.

See:

modules

See https://go.dev/doc/modules/managing-dependencies for documentation on Go modules dependency management.

TL;DR — if you import a new third party package, for example a line like import "google.golang.org/grpc/status", then run go get . to automatically fetch the dependency and update the go.mod and go.sum files.

gopath

My local setup does not have the $GOPATH environment variable set (check with echo ${GOPATH?}). As a result, GOPATH falls back to ${HOME}/go, which you can confirm by running go env GOPATH. See here for more details.

About

A personal repository for the study and practice of the Go programming language.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages