mirror of
https://github.com/luxfi/evm.git
synced 2026-09-24 00:27:44 +00:00
177 lines
5.8 KiB
YAML
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
|