Add GitHub Actions CI workflow for unit tests#1414
Open
etimofeeva wants to merge 49 commits intomasterfrom
Open
Add GitHub Actions CI workflow for unit tests#1414etimofeeva wants to merge 49 commits intomasterfrom
etimofeeva wants to merge 49 commits intomasterfrom
Conversation
rpc fetching in sequential loop tends to be a bottleneck, so processEventsForBlock and getInternalDataForBlock now run concurrently Closes: #1381
…output, invalid vout index and block-not-found
There are 2 json.Unmarshal(raw) of the whole block to get header and transactions which is very inefficient, it can be done in one pass Closes: #1384
25e4727 to
75b57c3
Compare
Contributor
|
@etimofeeva I set the VARs into GH, so please read it like this for the connectivity and integration tests : |
Contributor
|
@etimofeeva you need to rebase it on the branch fix-closing-rocksdb-on-shutdown-signal which has connectivity tests done the same way as unit test or integration tests there is : and |
Replace bash/curl connectivity tests with the Go-based connectivity test suite from the integration test framework. The CI now uses 'make test-connectivity' which runs TestIntegration/.*/connectivity via go test, matching the same pattern as unit and integration tests. Backend URLs are read from GitHub Actions variables (BB_RPC_URL_HTTP_*, BB_RPC_URL_WS_*) and forwarded into Docker by the Makefile's BB_RPC_ENV.
36c87b7 to
b7d2415
Compare
- Add workflow_dispatch trigger with inputs: coin_filter, run_unit_tests, run_connectivity_tests, run_integration_tests - coin_filter accepts regex (e.g. 'bitcoin', 'ethereum', 'bitcoin|ethereum|bsc') - Integration tests (rpc + sync) are manual-only (default off) since they are heavy and require live backends - Connectivity tests run automatically on push/PR, or manually with filter - Unit tests can be skipped in manual runs to speed up targeted testing
UTXO chains (bitcoin, bcash, dogecoin, litecoin, zcash) use internal backends unreachable from GitHub-hosted runners. Removed them from the CI env blocks so connectivity and integration tests only run against publicly reachable EVM endpoints (quicknode). UTXO chains are still fully tested on the dev server where internal backends are accessible.
The Go test framework runs ALL coins listed in tests.json with 'connectivity' enabled, falling back to default config URLs when env vars are absent. This exposed internal infrastructure (127.0.0.1 defaults and sldev.cz URLs) in CI logs. Now both connectivity-tests and integration-tests always apply an EVM-only coin filter (avalanche|bsc|arbitrum|base|ethereum|optimism|polygon) unless a manual workflow_dispatch provides a custom coin_filter. UTXO chains remain fully testable on the dev server.
The BB_RPC_URL_HTTP_ethereum GitHub variable still pointed to an internal sldev.cz backend. Removed ethereum from CI env blocks and EVM_COINS filter until a public endpoint is configured. Remaining CI-tested chains: avalanche, bsc, arbitrum, base, optimism, polygon.
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
No description provided.