[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:
|
matrix:
|
||||||
blockchain:
|
blockchain:
|
||||||
- name: electrum
|
- name: electrum
|
||||||
container: bitcoindevkit/electrs
|
container: bitcoindevkit/electrs:0.4.0
|
||||||
start: /root/electrs --network regtest --jsonrpc-import
|
start: /root/electrs --network regtest --cookie-file $GITHUB_WORKSPACE/.bitcoin/regtest/.cookie --jsonrpc-import
|
||||||
- name: esplora
|
- name: esplora
|
||||||
container: bitcoindevkit/esplora
|
container: bitcoindevkit/esplora:0.4.0
|
||||||
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
|
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
|
- name: rpc
|
||||||
container: bitcoindevkit/electrs
|
container: bitcoindevkit/electrs:0.4.0
|
||||||
start: /root/electrs --network regtest --jsonrpc-import
|
start: /root/electrs --network regtest --cookie-file $GITHUB_WORKSPACE/.bitcoin/regtest/.cookie --jsonrpc-import
|
||||||
container: ${{ matrix.blockchain.container }}
|
container: ${{ matrix.blockchain.container }}
|
||||||
env:
|
env:
|
||||||
BDK_RPC_AUTH: USER_PASS
|
BDK_RPC_AUTH: COOKIEFILE
|
||||||
BDK_RPC_USER: admin
|
BDK_RPC_COOKIEFILE: ${{ github.workspace }}/.bitcoin/regtest/.cookie
|
||||||
BDK_RPC_PASS: passw
|
|
||||||
BDK_RPC_URL: 127.0.0.1:18443
|
BDK_RPC_URL: 127.0.0.1:18443
|
||||||
BDK_RPC_WALLET: bdk-test
|
BDK_RPC_WALLET: bdk-test
|
||||||
BDK_ELECTRUM_URL: tcp://127.0.0.1:60401
|
BDK_ELECTRUM_URL: tcp://127.0.0.1:60401
|
||||||
@ -109,7 +108,7 @@ jobs:
|
|||||||
~/.cargo/git
|
~/.cargo/git
|
||||||
target
|
target
|
||||||
key: ${{ runner.os }}-cargo-${{ github.job }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }}
|
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
|
run: apt update && apt install -y --fix-missing pkg-config libssl-dev
|
||||||
- name: Install rustup
|
- name: Install rustup
|
||||||
run: curl https://sh.rustup.rs -sSf | sh -s -- -y
|
run: curl https://sh.rustup.rs -sSf | sh -s -- -y
|
||||||
|
@ -1,13 +1,14 @@
|
|||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
echo "Starting bitcoin node."
|
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."
|
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
|
sleep 1
|
||||||
done
|
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."
|
echo "Generating 150 bitcoin blocks."
|
||||||
ADDR=$(/root/bitcoin-cli -regtest -rpcuser=$BDK_RPC_USER -rpcpassword=$BDK_RPC_PASS -rpcwallet=$BDK_RPC_WALLET getnewaddress)
|
ADDR=$(/root/bitcoin-cli -regtest -datadir=$GITHUB_WORKSPACE/.bitcoin -rpcwallet=$BDK_RPC_WALLET getnewaddress)
|
||||||
/root/bitcoin-cli -regtest -rpcuser=$BDK_RPC_USER -rpcpassword=$BDK_RPC_PASS generatetoaddress 150 $ADDR
|
/root/bitcoin-cli -regtest -datadir=$GITHUB_WORKSPACE/.bitcoin generatetoaddress 150 $ADDR
|
||||||
|
@ -14,10 +14,7 @@ eprintln(){
|
|||||||
}
|
}
|
||||||
|
|
||||||
cleanup() {
|
cleanup() {
|
||||||
if test "$id"; then
|
docker kill test_container
|
||||||
eprintln "cleaning up $blockchain docker container $id";
|
|
||||||
docker rm -fv "$id" > /dev/null;
|
|
||||||
fi
|
|
||||||
trap - EXIT INT
|
trap - EXIT INT
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -30,16 +27,16 @@ test_name="$2"
|
|||||||
case "$blockchain" in
|
case "$blockchain" in
|
||||||
electrum)
|
electrum)
|
||||||
eprintln "starting electrs docker container"
|
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)
|
esplora)
|
||||||
eprintln "starting esplora docker container"
|
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
|
export BDK_ESPLORA_URL=http://127.0.0.1:3002
|
||||||
;;
|
;;
|
||||||
rpc)
|
rpc)
|
||||||
eprintln "starting electrs docker container"
|
eprintln "starting bitcoind docker container (via electrs 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
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
usage;
|
usage;
|
||||||
@ -48,21 +45,23 @@ case "$blockchain" in
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
# taken from https://github.com/bitcoindevkit/bitcoin-regtest-box
|
# taken from https://github.com/bitcoindevkit/bitcoin-regtest-box
|
||||||
export BDK_RPC_AUTH=USER_PASS
|
export BDK_RPC_AUTH=COOKIEFILE
|
||||||
export BDK_RPC_USER=admin
|
export BDK_RPC_COOKIEFILE=/tmp/regtest.cookie
|
||||||
export BDK_RPC_PASS=passw
|
|
||||||
export BDK_RPC_URL=127.0.0.1:18443
|
export BDK_RPC_URL=127.0.0.1:18443
|
||||||
export BDK_RPC_WALLET=bdk-test
|
export BDK_RPC_WALLET=bdk-test
|
||||||
export BDK_ELECTRUM_URL=tcp://127.0.0.1:60401
|
export BDK_ELECTRUM_URL=tcp://127.0.0.1:60401
|
||||||
|
|
||||||
cli(){
|
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
|
while ! cli getwalletinfo >/dev/null; do sleep 1; done
|
||||||
|
|
||||||
# sleep again for good measure!
|
# sleep again for good measure!
|
||||||
sleep 1;
|
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"
|
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