]> Untitled Git - bdk/commitdiff
Remove container and test blockchains downloading backends executables
authorRiccardo Casatta <riccardo@casatta.it>
Fri, 18 Jun 2021 12:28:40 +0000 (14:28 +0200)
committerRiccardo Casatta <riccardo@casatta.it>
Tue, 29 Jun 2021 09:34:48 +0000 (11:34 +0200)
.github/workflows/cont_integration.yml
Cargo.toml
src/blockchain/esplora.rs
src/testutils/blockchain_tests.rs

index b2fee531e27623161e4169903ec38f97dc044521..e78e152c96a27daecfb294d34dfb2751d61cf212 100644 (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
 
index af9dc5975bdf2a41c0eae05b0898c8ada9c5cf1a..133c0a69ff2f63816cb57ecf4cc52a18c89c2ad3 100644 (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"
index d866992d7d805e5c62082d984572f001a3ec47b7..dce7f836d7c55da5865770d81bd4d8a48a005b6e 100644 (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)
     }
 }
index 588e0e659b7143695675e916bc7f341e2c7ce5e6..12f96dd91b5314865d4da0f0087d64c1b72107d0 100644 (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