The `Makefile` offers a number of useful targets. Some examples:
The makefile provides several targets:
*`make test` runs tests.
*`make tarball` creates a tarball with the binary for distribution.
*`make race_condition_run` compiles and runs a binary with the race detector enabled. To pass arguments when running Prometheus this way, set the `ARGUMENTS` environment variable (e.g. `ARGUMENTS="-config.file=./prometheus.conf" make race_condition_run`).
### Use your own Go development environment
Using your own Go development environment with the usual tooling is
possible, too. After making changes to the files in `web/static` you
have to run `make` in the `web/` directory. This generates the respective
`web/blob/files.go` file which embedds the static assets in the compiled binary.
Furthermore, the version information (see `version/info.go`) will not be
populated if you simply run `go build`. You have to pass in command
line flags as defined in `Makefile.INCLUDE` (see `${BUILDFLAGS}`) to
do that.
**build*: build the `prometheus` and `promtool` binaries
**test*: run the tests
**format*: format the source code
**vet*: check the source code for common errors
**assets*: rebuild the static assets
**docker*: build a docker container for the current `HEAD`