# 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