Remove container and test blockchains downloading backends executables

This commit is contained in:
Riccardo Casatta 2021-06-18 14:28:40 +02:00
parent 696647b893
commit f4ecfa0d49
No known key found for this signature in database
GPG Key ID: FD986A969E450397
4 changed files with 36 additions and 22 deletions

View File

@ -76,19 +76,19 @@ jobs:
test-blockchains:
name: Test ${{ matrix.blockchain.name }}
runs-on: ubuntu-16.04
runs-on: ubuntu-20.04
strategy:
fail-fast: false
matrix:
blockchain:
- name: electrum
container: bitcoindevkit/electrs
- name: rpc
container: bitcoindevkit/electrs
container: ${{ matrix.blockchain.container }}
- name: esplora
env:
ELECTRS_EXE: /root/electrs
BITCOIND_EXE: /root/bitcoind
BITCOIN_VER: 0.21.0
ELECTRS_RELEASE_URL: https://github.com/RCasatta/electrsd/releases/download/release_0.3.0
ELECTRS_VER: electrs_ubuntu-20.04_v0.8.10.zip
ELECTRS_ESPLORA_VER: electrs_esplora_ubuntu-20.04_a33e97e1a1fc63fa9c20a116bb92579bbf43b254.zip
steps:
- name: Checkout
uses: actions/checkout@v2
@ -100,16 +100,25 @@ jobs:
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ github.job }}-${{ hashFiles('**/Cargo.toml','**/Cargo.lock') }}
- 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
- name: Set default toolchain
run: $HOME/.cargo/bin/rustup default 1.53.0 # STABLE
- name: Set profile
run: $HOME/.cargo/bin/rustup set profile minimal
- name: Update toolchain
run: $HOME/.cargo/bin/rustup update
- name: Setup rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true
- name: Download electrs
run: wget ${{ env.ELECTRS_RELEASE_URL }}/${{ env.ELECTRS_VER }} && unzip ${{ env.ELECTRS_VER }} && chmod +x ./electrs
if: ${{ matrix.blockchain.name != 'esplora' }}
- name: Download electrs esplora
run: wget ${{ env.ELECTRS_RELEASE_URL }}/${{ env.ELECTRS_ESPLORA_VER }} && unzip ${{ env.ELECTRS_ESPLORA_VER }} && chmod +x ./electrs
if: ${{ matrix.blockchain.name == 'esplora' }}
- name: Set ELECTRS_EXE env
run: echo "ELECTRS_EXE=${{ github.workspace }}/electrs" >> $GITHUB_ENV
- name: Show electrs options
run: ${{ env.ELECTRS_EXE }} --help
- name: Set BITCOIND_EXE env
run: echo "BITCOIND_EXE=${{ github.workspace }}/bitcoin-${{ env.BITCOIN_VER }}/bin/bitcoind" >> $GITHUB_ENV
- name: Install bitcoind
run: curl https://bitcoincore.org/bin/bitcoin-core-$BITCOIN_VER/bitcoin-$BITCOIN_VER-x86_64-linux-gnu.tar.gz | tar -xvz bitcoin-$BITCOIN_VER/bin/bitcoind
- name: Test
run: $HOME/.cargo/bin/cargo test --features test-${{ matrix.blockchain.name }},test-blockchains --no-default-features ${{ matrix.blockchain.name }}::bdk_blockchain_tests

View File

@ -62,15 +62,14 @@ rpc = ["bitcoincore-rpc"]
test-blockchains = ["bitcoincore-rpc", "electrum-client"]
test-electrum = ["electrum"]
test-rpc = ["rpc"]
test-esplora = ["esplora"]
test-esplora = ["esplora", "electrsd/legacy"]
test-md-docs = ["electrum"]
[dev-dependencies]
lazy_static = "1.4"
env_logger = "0.7"
clap = "2.33"
bitcoind = "0.11.0"
electrsd = { version="0.3.0", features = ["trigger"] }
electrsd = { version="0.4.0", features = ["trigger"] }
[[example]]
name = "address_validator"

View File

@ -419,6 +419,6 @@ impl_error!(bitcoin::hashes::hex::Error, Hex, EsploraError);
#[cfg(feature = "test-blockchains")]
crate::bdk_blockchain_tests! {
fn test_instance(test_client: &TestClient) -> EsploraBlockchain {
EsploraBlockchain::new(test_client.electrsd.esplora_url.as_ref().unwrap(), None)
EsploraBlockchain::new(&format!("http://{}",test_client.electrsd.esplora_url.as_ref().unwrap()), None)
}
}

View File

@ -5,8 +5,8 @@ use bitcoin::hashes::sha256d;
use bitcoin::{Address, Amount, Script, Transaction, Txid};
pub use bitcoincore_rpc::bitcoincore_rpc_json::AddressType;
pub use bitcoincore_rpc::{Auth, Client as RpcClient, RpcApi};
use bitcoind::BitcoinD;
use core::str::FromStr;
use electrsd::bitcoind::BitcoinD;
use electrsd::ElectrsD;
pub use electrum_client::{Client as ElectrumClient, ElectrumApi};
#[allow(unused_imports)]
@ -25,7 +25,13 @@ impl TestClient {
pub fn new(bitcoind_exe: String, electrs_exe: String) -> Self {
debug!("launching {} and {}", &bitcoind_exe, &electrs_exe);
let bitcoind = BitcoinD::new(bitcoind_exe).unwrap();
let electrsd = ElectrsD::new(electrs_exe, &bitcoind, false, false).unwrap(); // TODO http_enabled should be true only for esplora
#[cfg(feature = "test-esplora")]
let http_enabled = true;
#[cfg(not(feature = "test-esplora"))]
let http_enabled = false;
let electrsd = ElectrsD::new(electrs_exe, &bitcoind, false, http_enabled).unwrap();
let node_address = bitcoind.client.get_new_address(None, None).unwrap();
bitcoind