mirror of
https://github.com/luxfi/node.git
synced 2026-07-27 03:39:39 +00:00
259 lines
7.5 KiB
YAML
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}}
|