Fix: add electrs health check to prevent CI race conditions #1678
Workflow file for this run
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
| name: CI Checks - Python Tests | |
| on: [push, pull_request] | |
| jobs: | |
| check-python: | |
| runs-on: ubuntu-latest | |
| env: | |
| LDK_NODE_PYTHON_DIR: bindings/python | |
| steps: | |
| - name: Checkout repository | |
| uses: actions/checkout@v4 | |
| - name: Setup Python | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: '3.10' | |
| - name: Generate Python bindings | |
| run: ./scripts/uniffi_bindgen_generate_python.sh | |
| - name: Start bitcoind and electrs | |
| run: docker compose up -d | |
| - name: Wait for services to be fully initialized | |
| run: | | |
| echo "Waiting for Bitcoin to be ready..." | |
| timeout 60 bash -c 'until docker exec ldk-node-bitcoin-1 bitcoin-cli -regtest -rpcuser=user -rpcpassword=pass getblockchaininfo > /dev/null 2>&1; do echo "Waiting for Bitcoin..."; sleep 3; done' | |
| echo "Bitcoin is ready" | |
| echo "Waiting for Esplora to be ready..." | |
| # Try to get Esplora's status with retries and a timeout | |
| timeout 90 bash -c 'until curl -s http://127.0.0.1:3002/blocks/tip/hash > /dev/null 2>&1; do echo "Waiting for Esplora..."; sleep 3; done' | |
| echo "Esplora is ready" | |
| # This is critical - give Esplora extra time to fully index after it starts accepting connections | |
| echo "Giving Esplora extra time to finish indexing..." | |
| sleep 10 | |
| - name: Install testing prerequisites | |
| run: | | |
| pip3 install requests | |
| - name: Run Python unit tests | |
| env: | |
| BITCOIN_CLI_BIN: "docker exec ldk-node-bitcoin-1 bitcoin-cli" | |
| BITCOIND_RPC_USER: "user" | |
| BITCOIND_RPC_PASSWORD: "pass" | |
| ESPLORA_ENDPOINT: "http://127.0.0.1:3002" | |
| run: | | |
| cd $LDK_NODE_PYTHON_DIR | |
| python3 -m unittest discover -s src/ldk_node |