Files
evm/Taskfile.yml
2025-08-01 01:23:42 +00:00

177 lines
5.8 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'
env:
BASEDIR: '{{.BASEDIR | default "/tmp/e2e-test"}}'
LUXD_BUILD_PATH: '{{.LUXD_BUILD_PATH | default "/tmp/e2e-test/luxd"}}'
DATA_DIR: '{{.DATA_DIR | default "/tmp/e2e-test/precompile-data"}}'
tasks:
default: ./scripts/run_task.sh --list
actionlint:
desc: Validate GitHub Actions workflows and ensure scripts use run_task.sh for reproducibility
cmd: ./scripts/actionlint.sh # tests.yml
build:
desc: Compile Subnet EVM binary with git commit and static linking flags
cmd: ./scripts/build.sh # tests.yml
build-antithesis-images:
desc: Build Docker images for antithesis testing including luxd node and evm builder images
cmd: bash -x ./scripts/build_antithesis_images.sh # publish_antithesis_images.yml
build-bench-precompiles:
desc: Run benchmark tests for precompile contracts with timeout and coverage
cmd: ./scripts/build_bench_precompiles.sh # bench.yml
build-docker-image:
desc: Build multi-platform Docker image with luxd integration and optional publishing
cmd: ./scripts/build_docker_image.sh # publish_docker.yml
build-test:
desc: Run all Go tests with retry logic for flaky tests, race detection, and coverage reporting
cmd: ./scripts/build_test.sh # tests.yml
check-luxd-version:
desc: Ensure consistent luxd version by updating and checking for changes
cmds:
- task: update-luxd-version
- cmd: git diff --exit-code
check-clean-branch:
desc: Checks that the git working tree is clean
cmds:
- cmd: git add --all
- cmd: git update-index --really-refresh >> /dev/null
- cmd: git status --short # Show the status of the working tree.
- cmd: git diff-index --quiet HEAD # Exits if any uncommitted changes are found.
check-generate-codec:
desc: Checks that generated codec files are up-to-date (requires a clean git working tree)
cmds:
- task: generate-codec
- 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
coverage:
desc: Display test coverage statistics from coverage.out file
cmd: ./scripts/coverage.sh # tests.yml
generate-codec:
desc: Generates fjl/gencodec files
cmds:
- cmd: grep -lr -E '^// Code generated by github\.com\/fjl\/gencodec\. DO NOT EDIT\.$' . | xargs -r rm
- cmd: go generate -run "github.com/fjl/gencodec" ./...
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" ./...
install-luxd-release:
desc: Download and install Luxd release binary for testing, with fallback to building from source
cmd: ./scripts/install_luxd_release.sh # tests.yml
lint:
desc: Run golangci-lint and check for allowed Ethereum imports in Go code
cmd: ./scripts/lint.sh
lint-all:
desc: Runs all lint checks in parallel
deps:
- lint
- actionlint
- shellcheck
- check-generate-codec
- check-generate-mocks
lint-all-ci:
desc: Runs all lint checks one-by-one
cmds:
- task: lint
- task: actionlint
- task: shellcheck
- task: check-generate-codec
- task: check-generate-mocks
setup-contracts:
desc: Set up contracts by installing NPM dependencies, cleaning Hardhat cache, and compiling contracts
dir: ./contracts
cmds:
- cmd: npm ci
- cmd: npx hardhat clean
- cmd: npx hardhat compile
shellcheck:
desc: Run shellcheck static analysis on all shell scripts with version management
cmd: ./scripts/shellcheck.sh # tests.yml
test-build-antithesis-images:
desc: Test antithesis images build
cmd: bash -x scripts/tests.build_antithesis_images.sh
test-build-antithesis-images-ci: # consolidated test-build-antithesis-images
desc: Test antithesis images build with CI setup
cmds:
- task: install-luxd-release
- task: build
- cmd: go run ./tests/antithesis --luxd-path=/tmp/e2e-test/luxd/luxd --duration=60s
- task: test-build-antithesis-images
test-build-image:
desc: Test docker image build
cmd: bash -x scripts/tests.build_docker_image.sh # tests.yml
test-e2e-load:
desc: Run end-to-end load tests using Ginkgo test framework
cmd: ./scripts/run_ginkgo_load.sh # tests.yml
test-e2e-load-ci: # consolidated test-e2e-load
desc: Run E2E load tests with CI setup
cmds:
- task: install-luxd-release
- task: build
- task: test-e2e-load
test-e2e-precompile:
desc: Run end-to-end precompile tests using Ginkgo with parallel execution
cmd: bash ./scripts/run_ginkgo_precompile.sh # tests.yml
test-e2e-precompile-ci: # consolidated test-e2e-precompile
desc: Run E2E precompile tests with CI setup
cmds:
- task: install-luxd-release
- task: build
- task: test-e2e-precompile
test-e2e-warp:
desc: Run end-to-end warp tests using Ginkgo test framework
cmd: ./scripts/run_ginkgo_warp.sh # tests.yml
test-e2e-warp-ci: # consolidated test-e2e-warp
desc: Run E2E warp tests with CI setup
cmds:
- task: install-luxd-release
- task: build
- task: test-e2e-warp
update-luxd-version:
desc: Update Luxd version in go.mod and sync GitHub Actions workflow custom action version
cmd: bash -x ./scripts/update_luxd_version.sh # tests.yml