...
Code Block |
---|
# Build dev ./dev build dev # Build crlfmt ./dev build crlfmt # Build roachprod ./dev build roachprod # Run acceptance tests ./dev acceptance # Run compose tests ./dev compose # Run benchmarks for pkg/sql/parser ./dev bench pkg/sql/parser # Generate code and docs (run this before submitting your PR). ./dev generate # Generate changes to BUILD.bazel files ./dev generate bazel --short # Run lints ./dev lint # logic tests! ./dev testlogic --files=$FILES --subtests=$SUBTESTS --config=$CONFIG # Open a container running the "bazelbuilder" image. Requires Docker/Rancher Desktop/Podman/etc. ./dev builder # Remove artifacts from building the UI ./dev ui clean --all # Start the Bazel cache server after rebooting ./dev cache |
dev
vs. make
This is a (non-exhaustive) 1-to-1 mapping of dev
commands to their make
equivalents. Feel free to add to this
...
dev
/bazel
command
...
equivalent non-bazel
command
...
./dev build
...
make build
...
./dev build short
...
make buildshort
...
./dev build pkg/sql/...
...
make build PKG=./pkg/sql/...
...
./dev test
...
make test
...
./dev test pkg/sql/parser -f TestParse
...
make test PKG=./pkg/sql/parser TESTS=TestParse
...
./dev test pkg/sql/parser -f TestParse --test-args '-test.count=5 -show-logs'
...
make test PKG=./pkg/sql/parser TESTS=TestParse TESTFLAGS='-count=5 -show-logs'
...
./dev bench pkg/sql/parser -f BenchmarkParse
...
make bench PKG=./pkg/sql/parser BENCHES=BenchmarkParse
...
./dev build --cross
...
build/builder.sh mkrelease
...
./dev builder
...
build/builder.sh
...
./dev testlogic base --files=fk --subtests=20042 --config=local
...
make testbaselogic FILES=fk SUBTESTS=20042 TESTCONFIG=local
...
./dev test ... pkg/kv/kvserver/ -- --define gotags=bazel,gss,X,Y
...
make test ... TAGS=X,Y
...
To pass -gcflags
to the build of a library, add gc_goopts = ["S"],
to the go_library
target in the BUILD.bazel
file for the package you’re interested in, then
...
make ... GOFLAGS=-gcflags=-S
...
run dev
as usual.
To override a dependency for local builds when doing automation, update the go_repository()
declaration in DEPS.bzl
for your dependency to point to a new remote and commit (see top-level comment in DEPS.bzl
for more information), then build/test
...
as usual.
General dev
tips
The top-level dev
script uses Bazel to build pkg/cmd/dev
before running unless another dev
binary with the same increasing integer ID has already been built. Generally dev
will invoke the dev
binary “as of” that commit, which should usually be the correct behavior. However, if the default behavior does not work for some reason, you can find all the built versions of dev
under bin/dev-versions
.
...