[ci] Change blockchain tests to use bitcoind rpc cookie authentication
This commit is contained in:
		
							parent
							
								
									c2567b61aa
								
							
						
					
					
						commit
						e3316aee4c
					
				
							
								
								
									
										19
									
								
								.github/workflows/cont_integration.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										19
									
								
								.github/workflows/cont_integration.yml
									
									
									
									
										vendored
									
									
								
							| @ -81,19 +81,18 @@ jobs: | ||||
|       matrix: | ||||
|         blockchain: | ||||
|           - name: electrum | ||||
|             container: bitcoindevkit/electrs | ||||
|             start: /root/electrs --network regtest --jsonrpc-import | ||||
|             container: bitcoindevkit/electrs:0.4.0 | ||||
|             start: /root/electrs --network regtest --cookie-file $GITHUB_WORKSPACE/.bitcoin/regtest/.cookie --jsonrpc-import | ||||
|           - name: esplora | ||||
|             container: bitcoindevkit/esplora | ||||
|             start: /root/electrs --network regtest -vvv --cookie admin:passw --jsonrpc-import --electrum-rpc-addr=0.0.0.0:60401 --http-addr 0.0.0.0:3002 | ||||
|             container: bitcoindevkit/esplora:0.4.0 | ||||
|             start: /root/electrs --network regtest -vvv --daemon-dir $GITHUB_WORKSPACE/.bitcoin --jsonrpc-import --electrum-rpc-addr=0.0.0.0:60401 --http-addr 0.0.0.0:3002 | ||||
|           - name: rpc | ||||
|             container: bitcoindevkit/electrs | ||||
|             start: /root/electrs --network regtest --jsonrpc-import | ||||
|             container: bitcoindevkit/electrs:0.4.0 | ||||
|             start: /root/electrs --network regtest --cookie-file $GITHUB_WORKSPACE/.bitcoin/regtest/.cookie --jsonrpc-import | ||||
|     container: ${{ matrix.blockchain.container }} | ||||
|     env: | ||||
|       BDK_RPC_AUTH: USER_PASS | ||||
|       BDK_RPC_USER: admin | ||||
|       BDK_RPC_PASS: passw | ||||
|       BDK_RPC_AUTH: COOKIEFILE | ||||
|       BDK_RPC_COOKIEFILE: ${{ github.workspace }}/.bitcoin/regtest/.cookie | ||||
|       BDK_RPC_URL: 127.0.0.1:18443 | ||||
|       BDK_RPC_WALLET: bdk-test | ||||
|       BDK_ELECTRUM_URL: tcp://127.0.0.1:60401 | ||||
| @ -109,7 +108,7 @@ jobs: | ||||
|             ~/.cargo/git | ||||
|             target | ||||
|           key: ${{ runner.os }}-cargo-${{ github.job }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }} | ||||
|       - name: get pkg-config # running eslpora tests seems to need this | ||||
|       - name: get pkg-config # running esplora tests seems to need this | ||||
|         run: apt update && apt install -y --fix-missing pkg-config libssl-dev | ||||
|       - name: Install rustup | ||||
|         run: curl https://sh.rustup.rs -sSf | sh -s -- -y | ||||
|  | ||||
| @ -1,13 +1,14 @@ | ||||
| #!/usr/bin/env sh | ||||
| 
 | ||||
| echo "Starting bitcoin node." | ||||
| /root/bitcoind -regtest -server -daemon -fallbackfee=0.0002 -rpcuser=$BDK_RPC_USER -rpcpassword=$BDK_RPC_PASS -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0 -blockfilterindex=1 -peerblockfilters=1 | ||||
| mkdir $GITHUB_WORKSPACE/.bitcoin | ||||
| /root/bitcoind -regtest -server -daemon -datadir=$GITHUB_WORKSPACE/.bitcoin -fallbackfee=0.0002 -rpcallowip=0.0.0.0/0 -rpcbind=0.0.0.0 -blockfilterindex=1 -peerblockfilters=1 | ||||
| 
 | ||||
| echo "Waiting for bitcoin node." | ||||
| until /root/bitcoin-cli -regtest -rpcuser=$BDK_RPC_USER -rpcpassword=$BDK_RPC_PASS getblockchaininfo; do | ||||
| until /root/bitcoin-cli -regtest -datadir=$GITHUB_WORKSPACE/.bitcoin getblockchaininfo; do | ||||
|     sleep 1 | ||||
| done | ||||
| /root/bitcoin-cli -regtest -rpcuser=$BDK_RPC_USER -rpcpassword=$BDK_RPC_PASS createwallet $BDK_RPC_WALLET | ||||
| /root/bitcoin-cli -regtest -datadir=$GITHUB_WORKSPACE/.bitcoin createwallet $BDK_RPC_WALLET | ||||
| echo "Generating 150 bitcoin blocks." | ||||
| ADDR=$(/root/bitcoin-cli -regtest -rpcuser=$BDK_RPC_USER -rpcpassword=$BDK_RPC_PASS -rpcwallet=$BDK_RPC_WALLET getnewaddress) | ||||
| /root/bitcoin-cli -regtest -rpcuser=$BDK_RPC_USER -rpcpassword=$BDK_RPC_PASS generatetoaddress 150 $ADDR | ||||
| ADDR=$(/root/bitcoin-cli -regtest -datadir=$GITHUB_WORKSPACE/.bitcoin -rpcwallet=$BDK_RPC_WALLET getnewaddress) | ||||
| /root/bitcoin-cli -regtest -datadir=$GITHUB_WORKSPACE/.bitcoin generatetoaddress 150 $ADDR | ||||
|  | ||||
| @ -14,10 +14,7 @@ eprintln(){ | ||||
| } | ||||
| 
 | ||||
| cleanup() { | ||||
|     if test "$id"; then | ||||
|         eprintln "cleaning up $blockchain docker container $id"; | ||||
|         docker rm -fv "$id" > /dev/null; | ||||
|     fi | ||||
|     docker kill test_container | ||||
|     trap - EXIT INT | ||||
| } | ||||
| 
 | ||||
| @ -30,16 +27,16 @@ test_name="$2" | ||||
| case "$blockchain" in | ||||
|     electrum) | ||||
|         eprintln "starting electrs docker container" | ||||
|         id="$(docker run -d -p 127.0.0.1:18443-18444:18443-18444/tcp -p 127.0.0.1:60401:60401/tcp bitcoindevkit/electrs)" | ||||
|         docker run --detach --rm -p 127.0.0.1:18443-18444:18443-18444/tcp -p 127.0.0.1:60401:60401/tcp --name test_container bitcoindevkit/electrs:0.4.0 | ||||
|         ;; | ||||
|     esplora) | ||||
|         eprintln "starting esplora docker container" | ||||
|         id="$(docker run -d -p 127.0.0.1:18443-18444:18443-18444/tcp -p 127.0.0.1:60401:60401/tcp -p 127.0.0.1:3002:3002/tcp bitcoindevkit/esplora)" | ||||
|         docker run --detach --rm -p 127.0.0.1:18443-18444:18443-18444/tcp -p 127.0.0.1:60401:60401/tcp -p 127.0.0.1:3002:3002/tcp --name test_container bitcoindevkit/esplora:0.4.0 | ||||
|         export BDK_ESPLORA_URL=http://127.0.0.1:3002 | ||||
|         ;; | ||||
|     rpc) | ||||
|         eprintln "starting electrs docker container" | ||||
|         id="$(docker run -d -p 127.0.0.1:18443-18444:18443-18444/tcp -p 127.0.0.1:60401:60401/tcp bitcoindevkit/electrs)" | ||||
|         eprintln "starting bitcoind docker container (via electrs container)" | ||||
|         docker run --detach --rm -p 127.0.0.1:18443-18444:18443-18444/tcp -p 127.0.0.1:60401:60401/tcp --name test_container bitcoindevkit/electrs:0.4.0       | ||||
|         ;; | ||||
|     *) | ||||
|         usage; | ||||
| @ -48,21 +45,23 @@ case "$blockchain" in | ||||
|     esac | ||||
| 
 | ||||
| # taken from https://github.com/bitcoindevkit/bitcoin-regtest-box | ||||
| export BDK_RPC_AUTH=USER_PASS | ||||
| export BDK_RPC_USER=admin | ||||
| export BDK_RPC_PASS=passw | ||||
| export BDK_RPC_AUTH=COOKIEFILE | ||||
| export BDK_RPC_COOKIEFILE=/tmp/regtest.cookie | ||||
| export BDK_RPC_URL=127.0.0.1:18443 | ||||
| export BDK_RPC_WALLET=bdk-test | ||||
| export BDK_ELECTRUM_URL=tcp://127.0.0.1:60401 | ||||
| 
 | ||||
| cli(){ | ||||
|     docker exec -it "$id" /root/bitcoin-cli -regtest -rpcuser=admin -rpcpassword=passw $@ | ||||
|     docker exec -it test_container /root/bitcoin-cli -regtest -datadir=/root/.bitcoin $@ | ||||
| } | ||||
| 
 | ||||
| eprintln "running getwalletinfo until bitcoind seems to be alive" | ||||
| #eprintln "running getwalletinfo until bitcoind seems to be alive" | ||||
| while ! cli getwalletinfo >/dev/null; do sleep 1; done | ||||
| 
 | ||||
| # sleep again for good measure! | ||||
| sleep 1; | ||||
| 
 | ||||
| # copy bitcoind cookie file to /tmp | ||||
| docker cp test_container:/root/.bitcoin/regtest/.cookie /tmp/regtest.cookie | ||||
| 
 | ||||
| cargo test --features "test-blockchains,test-$blockchain" --no-default-features "$blockchain::bdk_blockchain_tests::$test_name" | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user