forked from jl777/SuperNET
-
Notifications
You must be signed in to change notification settings - Fork 115
refactor(ci): split docker tests into feature-gated parallel suites #2707
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
Show all changes
103 commits
Select commit
Hold shift + click to select a range
37cf876
feat(tests): add docker-compose infrastructure for test nodes
shamardy d8f614d
feat(tests): add docker test harness support for compose mode
shamardy 43235ee
fix(tests): add required env vars to docker-compose test nodes
shamardy af8d5cd
feat(tests): add health checks when loading docker env metadata
shamardy dac3d28
ci(tests): use docker-compose for docker test nodes
shamardy b35eac9
docs(tests): update docker test documentation
shamardy 9083e1b
ci(docker-tests): split SLP tests into separate feature-flagged job
shamardy 951d36d
fix(ci): add skip env vars for SLP-only docker test job
shamardy b470973
fix(docker-tests): copy coin config files in compose mode
shamardy 9316a37
fix(ci): use test filtering for SLP docker tests
shamardy 3dadd27
fix(docker-tests): move cross-chain swap tests to separate module
shamardy 8db6ddb
fix(docker-tests): correct volume mount paths for cosmos/sia nodes
shamardy 3390cf1
fix(docker): remove healthchecks from Cosmos containers
shamardy 195b52d
ci(docker-tests): split Sia tests into separate feature-flagged job
shamardy 5a08df9
fix(docker-tests): copy ZOMBIE config in compose mode
shamardy f0e4d70
fix(docker): add network config arg to Sia container in compose mode
shamardy 93384b3
fix(sia-tests): mine enough blocks for maturity in balance test
shamardy 8864b8d
fix(docker): remove Sia persistent volume to match testcontainers beh…
shamardy 07ee581
docs(ai): add fmt and clippy reminders to common pitfalls
shamardy 4840604
debug(sia): add logging to diagnose CI test failure
shamardy fe1caa5
fix(sia-tests): add indexer delay for address balance test
shamardy 551c208
feat(docker-tests): add ETH test split with docker-tests-eth feature
shamardy dca59c1
fix(docker-tests): add missing import and remove unused code in eth_d…
shamardy b047473
fix(docker-tests): move ETH-only helpers to eth_docker_tests module
shamardy d8e94cb
feat(docker-tests): add roadmap and plan for docker tests refactor an…
shamardy c89a444
fix(docker-tests): replace tautological assertions in watcher test
shamardy 4bcd8aa
fix(docker-tests): use metadata RPC URL for Geth health check
shamardy f641ce6
fix(docker-tests): use stable path for Qtum config in compose mode
shamardy 9b7ac8e
refactor(docker-tests): centralize metadata file path resolution
shamardy caf86c2
feat(docker-tests): add semantic Geth contract bytecode validation
shamardy 0b956e4
refactor(docker-tests): add container service name constants and labe…
shamardy b436f31
refactor(docker-tests): centralize ETH contract address formatting wi…
shamardy fc68be0
refactor(docker-tests): reorganize helpers and fix critical issues
shamardy d92d0ee
refactor(docker-tests): move qtum_docker_node to helper layer
shamardy 21d5547
feat(docker-tests): implement module gating with feature flags
shamardy ed44192
refactor(docker-tests): extract UTXO swap tests to dedicated module
shamardy 4029351
refactor(docker-tests): extract trade preimage tests to UTXO module
shamardy 58ed592
refactor(docker-tests): extract UTXO ordermatching tests to dedicated…
shamardy 664e235
docs(docker-tests): sync documentation with current code state
shamardy 12c37d0
refactor(docker-tests): extract ETH-only tests and fix test categoriz…
shamardy ec2edfb
refactor(docker-tests): audit and fix test module placement
shamardy 20b9ae7
docs(docker-tests): complete Phase 2.4 feature gate verification
shamardy 7eb4a17
ci(docker-tests): add Phase 3 CI jobs for split test suites
shamardy 701c0fe
fix(docker-tests): gate Sia tests on docker-tests-sia feature
shamardy af9ca60
fix(ci): add UTXO nodes to Sia docker tests job
shamardy b5617aa
docs(docker-tests): document cross-dependency issues blocking Phase 3…
shamardy b254bc3
fix(docker-tests): add runtime guards to trade_base_rel for chain iso…
shamardy a5e5464
docs(docker-tests): add Phase 8 for final documentation update
shamardy a5789ce
docs(docker-tests): update plan with CI failure analysis and resoluti…
shamardy ca14021
fix(ci): add UTXO nodes to QRC20 docker tests job
shamardy e2122de
fix(ci): add zcash params fetch to QRC20 and Sia docker tests jobs
shamardy 9e6f4e5
fix(docker-tests): fix swap contract address case sensitivity in ETH …
shamardy 47d6426
refactor(swap): remove unused reward_amount field from TakerSwapMut
shamardy e072f61
fix(watcher): remove upper bound check for non-exact reward validation
shamardy 7e71d59
fix(watcher): apply reward overpay factor at payment time for gas vol…
shamardy 31060d7
refactor(swap): remove unused watcher_reward from extract_secret and …
shamardy d67bdbb
fix(clippy): remove unfulfilled ptr_offset_with_cast lint expectation
shamardy bebfbca
fix(clippy): add workarounds for Rust 1.92 unused_assignments false p…
shamardy 99d71f8
feat(watchers): gate ETH watcher code and tests behind feature flags
shamardy 93879c6
fix(ci): use correct env var for disabling ETH docker in watchers tests
shamardy 768cc86
fix(watchers): gate ETH-specific code in shared test helpers behind f…
shamardy 1aeb5f2
feat(ci): add docker-tests-all feature and remove monolithic job
shamardy c14d5f9
refactor(tests): extract docker test runner to dedicated module
shamardy 64d99e5
chore(ci): remove unused _KDF_NO_*_DOCKER env vars from workflows
shamardy fb1e059
fix(tests): add docker-tests-integration to runner cfg gates
shamardy c17ce79
docs(plans): update docker-tests-split with Phase 7 validation results
shamardy 753fc5d
refactor(docker-tests): consolidate helpers and remove ReuseMetadata …
shamardy c64e59e
refactor(ci): split ordermatch tests and add workflow display names
shamardy 912a56f
refactor(ci): convert unit and integration tests to matrix jobs
shamardy fc7770e
refactor(ci): extract docker tests to reusable workflow
shamardy d9643fe
refactor(ci): use matrix for docker tests instead of reusable workflow
shamardy 19e514d
fix(docker-tests): resolve feature gate and import errors for Sia, Or…
shamardy 51c59f5
fix(docker-tests): ordermatch tests don't need ETH containers
shamardy 985a96e
fix(docker-tests): add feature gates to eliminate unused item warnings
shamardy 2763d4b
fix(docker-tests): eliminate warnings by reorganizing code
shamardy 4d1e725
fix(docker-tests): eliminate tendermint and integration feature warnings
shamardy 0237dff
fix(docker-tests): fix integration feature warnings and UTXO setup
shamardy f4fc47f
fix(docker-tests): migrate swap v2 tests from Sepolia to local Geth
shamardy a89b296
chore(docker-tests): migrate docker images to gleec organization
shamardy 1a4f298
docs(docker-tests): complete Phase 7 documentation update
shamardy 9c8ccbd
fix(docker-tests): use tolerance for QRC20 max taker vol balance check
shamardy ad7ebf6
chore(docker-tests): cleanup stale comments and documentation
shamardy cc1ee1f
refactor(docker-tests): split runner and extract SLP helpers
shamardy 12eb5ab
refactor(docker-tests): make SLP self-contained and simplify utxo.rs
shamardy 9d713e4
fix(tests): update extract_secret test to match new error message
shamardy 825e8d3
Merge branch 'dev' into tests/split-docker-tests
shamardy 2c30210
fix(tests): make test_antispam_scan_endpoints less flaky
shamardy cdd6d7c
test(ci): ignore flaky Electrum and orderbook sync tests
shamardy 3111a82
fix(tests): replace fixed sleeps with condition-based polling in bloc…
shamardy 25f2179
fix(tests): update BTC SPV starting header to Dec 2024
shamardy e0695ee
refactor(tests): rename docker-tests-swaps-utxo to docker-tests-swaps
shamardy dda7c87
test(nft): exclude flaky external API tests from WASM and ignore on n…
shamardy e16abb3
fix(docker): remove unused qtum-data and zombie-data volumes
shamardy c63f886
refactor(docker-tests): remove unnecessary fallback in resolve_compos…
shamardy 4b90282
fix(tests): use approximate comparison in test_update_maker_order
shamardy 2a4db4c
fix(ci): add --skip-sia to Tendermint docker tests
shamardy 5282d49
docs(docker-tests): update setup instructions
shamardy 3bf085e
test(coins): ignore lp_price tests requiring external API
shamardy f523d79
chore(ci): use consistent fetch-params permalink
shamardy a5339a2
revert(ci): use v0.8.1 for fetch-params (testblockchain needs sprout …
shamardy 022423f
fix(tests): batch order removals to avoid history timeout flakiness
shamardy f6d4017
style(test_helpers): apply cargo fmt formatting
shamardy 56d87ad
fix(tests): use activation addresses for ETH HD message signing test
shamardy File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,222 @@ | ||
| # Docker Compose file for KDF test nodes | ||
| # | ||
| # Usage: | ||
| # Start all nodes: docker compose -f .docker/test-nodes.yml up -d | ||
| # Start specific: docker compose -f .docker/test-nodes.yml --profile utxo up -d | ||
| # Stop all: docker compose -f .docker/test-nodes.yml down -v | ||
| # View logs: docker compose -f .docker/test-nodes.yml logs -f <service> | ||
| # | ||
| # Profiles: | ||
| # - utxo: MYCOIN, MYCOIN1 (basic UTXO testing) | ||
| # - slp: FORSLP (BCH/SLP token testing) | ||
| # - qrc20: QTUM (Qtum/QRC20 testing) | ||
| # - evm: GETH (Ethereum/ERC20 testing) | ||
| # - zombie: ZOMBIE (Zcash-based testing) | ||
| # - cosmos: NUCLEUS, ATOM, IBC-RELAYER (Tendermint/IBC testing) | ||
| # - sia: SIA (Sia testing) | ||
| # | ||
| # Node groups are controlled via compose profiles (see above). | ||
| # | ||
| # For CI/local reuse: | ||
| # KDF_DOCKER_COMPOSE_ENV=1 - Test harness attaches to running containers | ||
|
|
||
| name: kdf-test-nodes | ||
|
|
||
| services: | ||
| # ============================================================================ | ||
| # UTXO Test Nodes | ||
| # ============================================================================ | ||
|
|
||
| mycoin: | ||
| image: docker.io/gleec/testblockchain:multiarch | ||
| profiles: ["utxo", "all"] | ||
| container_name: kdf-mycoin | ||
| ports: | ||
| - "8000:8000" | ||
| environment: | ||
| - CHAIN=MYCOIN | ||
| - CLIENTS=2 | ||
| - COIN=Komodo | ||
| - COIN_RPC_PORT=8000 | ||
| - DAEMON_URL=http://test:test@127.0.0.1:7000 | ||
| - TEST_ADDY=R9imXLs1hEcU9KbFDQq2hJEEJ1P5UoekaF | ||
| - TEST_WIF=UqqW7f766rADem9heD8vSBvvrdfJb3zg5r8du9rJxPtccjWf7RG9 | ||
| - TEST_PUBKEY=021607076d7a2cb148d542fb9644c04ffc22d2cca752f80755a0402a24c567b17a | ||
| volumes: | ||
| - ${ZCASH_PARAMS_PATH:-~/.zcash-params}:/root/.zcash-params:ro | ||
mariocynicys marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| healthcheck: | ||
| test: ["CMD", "curl", "-sf", "http://localhost:8000"] | ||
| interval: 5s | ||
| timeout: 3s | ||
| retries: 30 | ||
| start_period: 10s | ||
|
|
||
| mycoin1: | ||
| image: docker.io/gleec/testblockchain:multiarch | ||
| profiles: ["utxo", "all"] | ||
| container_name: kdf-mycoin1 | ||
| ports: | ||
| - "8001:8001" | ||
| environment: | ||
| - CHAIN=MYCOIN1 | ||
| - CLIENTS=2 | ||
| - COIN=Komodo | ||
| - COIN_RPC_PORT=8001 | ||
| - DAEMON_URL=http://test:test@127.0.0.1:7000 | ||
| - TEST_ADDY=R9imXLs1hEcU9KbFDQq2hJEEJ1P5UoekaF | ||
| - TEST_WIF=UqqW7f766rADem9heD8vSBvvrdfJb3zg5r8du9rJxPtccjWf7RG9 | ||
| - TEST_PUBKEY=021607076d7a2cb148d542fb9644c04ffc22d2cca752f80755a0402a24c567b17a | ||
| volumes: | ||
| - ${ZCASH_PARAMS_PATH:-~/.zcash-params}:/root/.zcash-params:ro | ||
| healthcheck: | ||
| test: ["CMD", "curl", "-sf", "http://localhost:8001"] | ||
| interval: 5s | ||
| timeout: 3s | ||
| retries: 30 | ||
| start_period: 10s | ||
|
|
||
| # ============================================================================ | ||
| # BCH/SLP Test Node | ||
| # ============================================================================ | ||
|
|
||
| forslp: | ||
| image: docker.io/gleec/testblockchain:multiarch | ||
| profiles: ["slp", "all"] | ||
| container_name: kdf-forslp | ||
| ports: | ||
| - "10000:10000" | ||
| environment: | ||
| - CHAIN=FORSLP | ||
| - CLIENTS=2 | ||
| - COIN=Komodo | ||
| - COIN_RPC_PORT=10000 | ||
| - DAEMON_URL=http://test:test@127.0.0.1:7000 | ||
| - TEST_ADDY=R9imXLs1hEcU9KbFDQq2hJEEJ1P5UoekaF | ||
| - TEST_WIF=UqqW7f766rADem9heD8vSBvvrdfJb3zg5r8du9rJxPtccjWf7RG9 | ||
| - TEST_PUBKEY=021607076d7a2cb148d542fb9644c04ffc22d2cca752f80755a0402a24c567b17a | ||
| volumes: | ||
| - ${ZCASH_PARAMS_PATH:-~/.zcash-params}:/root/.zcash-params:ro | ||
| healthcheck: | ||
| test: ["CMD", "curl", "-sf", "http://localhost:10000"] | ||
| interval: 5s | ||
| timeout: 3s | ||
| retries: 30 | ||
| start_period: 10s | ||
|
|
||
| # ============================================================================ | ||
| # Qtum/QRC20 Test Node | ||
| # ============================================================================ | ||
|
|
||
| qtum: | ||
| image: docker.io/gleec/qtumregtest:latest | ||
| profiles: ["qrc20", "all"] | ||
| container_name: kdf-qtum | ||
| ports: | ||
| - "9000:9000" | ||
| environment: | ||
| - CLIENTS=2 | ||
| - COIN_RPC_PORT=9000 | ||
| - ADDRESS_LABEL=MM2_ADDRESS_LABEL | ||
| - FILL_MEMPOOL=true | ||
| healthcheck: | ||
| test: ["CMD-SHELL", "qtum-cli -rpcport=9000 getblockchaininfo || exit 1"] | ||
| interval: 5s | ||
| timeout: 3s | ||
| retries: 30 | ||
| start_period: 15s | ||
|
|
||
| # ============================================================================ | ||
| # Ethereum/Geth Dev Node | ||
| # ============================================================================ | ||
|
|
||
| geth: | ||
| image: docker.io/ethereum/client-go:stable | ||
| profiles: ["evm", "all"] | ||
| container_name: kdf-geth | ||
| ports: | ||
| - "8545:8545" | ||
| command: ["--dev", "--http", "--http.addr=0.0.0.0", "--http.api=eth,net,web3,personal,debug", "--http.corsdomain=*"] | ||
| healthcheck: | ||
| test: ["CMD-SHELL", "wget -qO- http://localhost:8545 --post-data='{\"jsonrpc\":\"2.0\",\"method\":\"eth_blockNumber\",\"params\":[],\"id\":1}' --header='Content-Type: application/json' || exit 1"] | ||
| interval: 3s | ||
| timeout: 3s | ||
| retries: 30 | ||
| start_period: 5s | ||
|
|
||
| # ============================================================================ | ||
| # Zcash-based (Zombie) Test Node | ||
| # ============================================================================ | ||
|
|
||
| zombie: | ||
| image: docker.io/gleec/zombietestrunner:multiarch | ||
| profiles: ["zombie", "all"] | ||
| container_name: kdf-zombie | ||
| ports: | ||
| - "7090:7090" | ||
| environment: | ||
| - COIN_RPC_PORT=7090 | ||
| volumes: | ||
| - ${ZCASH_PARAMS_PATH:-~/.zcash-params}:/root/.zcash-params:ro | ||
| healthcheck: | ||
| test: ["CMD", "curl", "-sf", "http://localhost:7090"] | ||
| interval: 5s | ||
| timeout: 3s | ||
| retries: 60 | ||
| start_period: 30s | ||
|
|
||
| # ============================================================================ | ||
| # Cosmos/Tendermint Test Nodes (use host network for IBC) | ||
| # ============================================================================ | ||
|
|
||
| nucleus: | ||
| image: docker.io/gleec/nucleusd:latest | ||
| profiles: ["cosmos", "all"] | ||
| container_name: kdf-nucleus | ||
| network_mode: host | ||
| volumes: | ||
| - ${KDF_CONTAINER_RUNTIME_DIR:-./container-runtime}/nucleus-testnet-data:/root/.nucleus | ||
|
|
||
| atom: | ||
| image: docker.io/gleec/gaiad:kdf-ci | ||
| profiles: ["cosmos", "all"] | ||
| container_name: kdf-atom | ||
| network_mode: host | ||
| volumes: | ||
| - ${KDF_CONTAINER_RUNTIME_DIR:-./container-runtime}/atom-testnet-data:/root/.gaia | ||
|
|
||
| ibc-relayer: | ||
| image: docker.io/gleec/ibc-relayer:kdf-ci | ||
| profiles: ["cosmos", "all"] | ||
| container_name: kdf-ibc-relayer | ||
| network_mode: host | ||
| volumes: | ||
| - ${KDF_CONTAINER_RUNTIME_DIR:-./container-runtime}/ibc-relayer-data:/root/.relayer | ||
| depends_on: | ||
| nucleus: | ||
| condition: service_started | ||
| atom: | ||
| condition: service_started | ||
|
|
||
| # ============================================================================ | ||
| # Sia Test Node | ||
| # ============================================================================ | ||
|
|
||
| sia: | ||
| image: ghcr.io/siafoundation/walletd:latest | ||
| profiles: ["sia", "all"] | ||
| container_name: kdf-sia | ||
| ports: | ||
| - "9980:9980" | ||
| environment: | ||
| - WALLETD_CONFIG_FILE=/config/walletd.yml | ||
| command: ["-network=/config/ci_network.json", "-debug"] | ||
| volumes: | ||
| - ${KDF_CONTAINER_RUNTIME_DIR:-./container-runtime}/sia-config:/config:ro | ||
| # No persistent volume for /data - use ephemeral storage like testcontainers | ||
| # to ensure fresh state each run and avoid address indexer lag issues | ||
| healthcheck: | ||
| test: ["CMD-SHELL", "wget -qO- --header='Authorization: Basic cGFzc3dvcmQ=' http://localhost:9980/api/state || exit 1"] | ||
| interval: 5s | ||
| timeout: 3s | ||
| retries: 30 | ||
| start_period: 10s | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.