Files
node/Taskfile.yml
zeekayandHanzo Dev 45bbe13637 node: purge dead protobuf tooling — ZAP-native, .proto codegen fully retired
Node has ZERO .proto files and ZERO .pb.go — the wire is hand-written ZAP schemas
(proto/{platformvm,vm,p2p,sync}/*_zap.go). The buf/protoc tooling around it was
orphaned: removed proto/{buf.yaml,buf.gen.yaml,Dockerfile.buf,buf.md,README.md},
scripts/protobuf_codegen.sh, the Taskfile generate-protobuf + check-generate-protobuf
targets, ci.yml buf-lint + check_generated_protobuf jobs (the latter ran the deleted
script → would fail CI), and the buf-lint.yml workflow. defaultPatch 10→11 (dev
version string; image already correct via ldflags). Binary unchanged — tooling/CI only.

Co-authored-by: Hanzo Dev <dev@hanzo.ai>
2026-07-14 18:01:27 -07:00

259 lines
7.5 KiB
YAML

# https://taskfile.dev
# To run on a system without task installed, `./scripts/run_task.sh` will execute it with `go run`.
# If in the nix dev shell, `task` is available.
version: '3'
tasks:
default: ./scripts/run_task.sh --list
build:
desc: Builds node
cmd: ./scripts/build.sh -- {{.CLI_ARGS}}
build-antithesis-images-node:
desc: Builds docker images for antithesis for the node test setup
env:
TEST_SETUP: node
cmd: bash -x ./scripts/build_antithesis_images.sh
build-antithesis-images-xsvm:
desc: Builds docker images for antithesis for the xsvm test setup
env:
TEST_SETUP: xsvm
cmd: bash -x ./scripts/build_antithesis_images.sh
build-bootstrap-monitor:
desc: Builds bootstrap-monitor
cmd: ./scripts/build_bootstrap_monitor.sh
build-bootstrap-monitor-image:
desc: Builds docker image for bootstrap-monitor
cmd: ./scripts/build_bootstrap_monitor_image.sh
build-image:
desc: Builds docker image for node
cmd: ./scripts/build_image.sh
build-race:
desc: Builds node with race detection enabled
cmd: ./scripts/build.sh -r
build-tmpnetctl:
desc: Builds tmpnetctl
cmd: ./scripts/build_tmpnetctl.sh
build-xsvm:
desc: Builds xsvm plugin
cmd: ./scripts/build_xsvm.sh
build-xsvm-image:
desc: Builds xsvm image
cmd: ./scripts/build_xsvm_image.sh
check-clean-branch:
desc: Checks that the git working tree is clean
cmd: .github/workflows/check-clean-branch.sh
check-generate-canoto:
desc: Checks that generated canoto is up-to-date (requires a clean git working tree)
cmds:
- task: generate-canoto
- task: check-clean-branch
check-generate-load-contract-bindings:
desc: Checks that generated load contract bindings are up-to-date (requires a clean git working tree)
cmds:
- task: generate-load-contract-bindings
- task: check-clean-branch
check-generate-mocks:
desc: Checks that generated mocks are up-to-date (requires a clean git working tree)
cmds:
- task: generate-mocks
- task: check-clean-branch
check-go-mod-tidy:
desc: Checks that go.mod and go.sum are up-to-date (requires a clean git working tree)
cmds:
- cmd: go mod tidy
- task: check-clean-branch
generate-mocks:
desc: Generates testing mocks
cmds:
- cmd: grep -lr -E '^// Code generated by MockGen\. DO NOT EDIT\.$' . | xargs -r rm
- cmd: go generate -run "go.uber.org/mock/mockgen" ./...
generate-canoto:
desc: Generates canoto
cmd: go generate -run "github.com/StephenButtolph/canoto/canoto" ./...
generate-load-contract-bindings:
desc: Generates load contract bindings
cmds:
- cmd: grep -lr -E '^// Code generated - DO NOT EDIT\.$' tests/load/c | xargs -r rm
- cmd: go generate ./tests/load/c/...
ginkgo-build:
desc: Runs ginkgo against the current working directory
cmd: ./bin/ginkgo build {{.USER_WORKING_DIR}}
install-nix:
desc: Installs nix with the determinate systems installer
cmd: curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
lint:
desc: Runs static analysis tests of golang code
cmd: ./scripts/lint.sh
lint-action:
desc: Runs actionlint to check sanity of github action configuration
cmd: ./scripts/actionlint.sh
lint-all:
desc: Runs all lint checks in parallel
deps:
- lint
- lint-action
- lint-shell
lint-all-ci:
desc: Runs all lint checks one-by-one
cmds:
- task: lint
- task: lint-action
- task: lint-shell
lint-shell:
desc: Runs shellcheck to check sanity of shell scripts
cmd: ./scripts/shellcheck.sh
test-bootstrap-monitor-e2e:
desc: Runs bootstrap monitor e2e tests
cmd: bash -x ./scripts/tests.e2e.bootstrap_monitor.sh
test-build-antithesis-images-node:
desc: Tests the build of antithesis images for the node test setup
env:
TEST_SETUP: node
cmds:
- task: build-race
- cmd: go run ./tests/antithesis/node --node-path=./build/node --duration=120s
- cmd: bash -x ./scripts/tests.build_antithesis_images.sh
test-build-antithesis-images-xsvm:
desc: Tests the build of antithesis images for the xsvm test setup
env:
TEST_SETUP: xsvm
cmds:
- task: build-race
- task: build-xsvm
- cmd: go run ./tests/antithesis/xsvm --node-path=./build/node --duration=120s
- cmd: bash -x ./scripts/tests.build_antithesis_images.sh
test-build-image:
# On mac, docker/podman/lima should work out-of-the-box.
# On linux, requires qemu (e.g. apt -y install qemu-system qemu-user-static).
desc: Runs test of cross-platform docker image build
cmd: bash -x scripts/tests.build_image.sh
test-e2e:
desc: Runs e2e tests
cmds:
- task: build
- task: build-xsvm
- cmd: bash -x ./scripts/tests.e2e.sh {{.CLI_ARGS}}
test-e2e-ci:
desc: Runs e2e tests [serially with race detection enabled]
env:
E2E_SERIAL: 1
cmds:
- task: build-race
- task: build-xsvm
- cmd: bash -x ./scripts/tests.e2e.sh {{.CLI_ARGS}}
test-e2e-existing-ci:
desc: Runs e2e tests with an existing network [serially with race detection enabled]
env:
E2E_SERIAL: 1
cmds:
- task: build-race
- task: build-xsvm
- cmd: bash -x ./scripts/tests.e2e.existing.sh {{.CLI_ARGS}}
test-e2e-kube:
desc: Runs e2e tests against a network deployed to kube
cmds:
- cmd: bash -x ./scripts/tests.e2e.kube.sh {{.CLI_ARGS}}
test-e2e-kube-ci:
desc: Runs e2e tests against a network deployed to kube [serially]
env:
E2E_SERIAL: 1
cmds:
- task: test-e2e-kube
# To use a different fuzz time, run `task test-fuzz FUZZTIME=[value in seconds]`.
# A value of `-1` will run until it encounters a failing output.
test-fuzz:
desc: Runs each fuzz test for 10 seconds
vars:
FUZZTIME: '{{.FUZZTIME| default "10"}}'
cmd: ./scripts/build_fuzz.sh {{.FUZZTIME}}
test-fuzz-long:
desc: Runs each fuzz test for 180 seconds
vars:
FUZZTIME: '{{.FUZZTIME| default "180"}}'
cmd: ./scripts/build_fuzz.sh {{.FUZZTIME}}
test-fuzz-merkledb:
desc: Runs each merkledb fuzz test for 15 minutes
vars:
FUZZTIME: '{{.FUZZTIME| default "900"}}'
cmd: ./scripts/build_fuzz.sh {{.FUZZTIME}} ./x/merkledb
test-load:
desc: Runs load tests
cmds:
- task: generate-load-contract-bindings
- task: build
- cmd: go run ./tests/load/c/main --node-path=./build/node {{.CLI_ARGS}}
test-load2:
desc: Runs second iteration of load tests
cmds:
- task: build
- cmd: go run ./tests/load2/main --node-path=./build/node {{.CLI_ARGS}}
test-load-exclusive:
desc: Runs load tests against kube with exclusive scheduling
cmds:
- cmd: go run ./tests/load/c/main --runtime=kube --kube-use-exclusive-scheduling {{.CLI_ARGS}}
test-load-kube:
desc: Runs load tests against a kubernetes cluster
cmds:
- task: generate-load-contract-bindings
- cmd: go run ./tests/load/c/main --runtime=kube {{.CLI_ARGS}}
test-load-kube-kind:
desc: Runs load tests against a kind cluster
cmds:
- task: generate-load-contract-bindings
- cmd: bash -x ./scripts/tests.load.kube.kind.sh {{.CLI_ARGS}}
test-unit:
desc: Runs unit tests
# Invoking with bash ensures compatibility with CI execution on Windows
cmd: bash ./scripts/build_test.sh
test-upgrade:
desc: Runs upgrade tests
cmds:
- task: build
- cmd: bash -x ./scripts/tests.upgrade.sh {{.CLI_ARGS}}