Skip to content
Open
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -19,3 +19,4 @@ Session.vim
*~
ts_build
bitcore-lib.js
bitcore-test.local.config.json
59 changes: 2 additions & 57 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM node:18-bullseye
FROM node:22-bookworm

# Install Chrome

Expand All @@ -20,62 +20,7 @@ RUN set -x \
&& npm -v \
&& google-chrome --version


RUN npm i -g npm@8.19.3

WORKDIR /bitcore

Comment thread
kajoseph marked this conversation as resolved.
# Add source
COPY lerna.json ./
COPY package*.json ./

COPY ./packages/bitcore-cli/package.json ./packages/bitcore-cli/package.json
COPY ./packages/bitcore-cli/package-lock.json ./packages/bitcore-cli/package-lock.json

COPY ./packages/bitcore-client/package.json ./packages/bitcore-client/package.json
COPY ./packages/bitcore-client/package-lock.json ./packages/bitcore-client/package-lock.json

COPY ./packages/bitcore-build/package.json ./packages/bitcore-build/package.json
COPY ./packages/bitcore-build/package-lock.json ./packages/bitcore-build/package-lock.json

COPY ./packages/bitcore-lib-cash/package.json ./packages/bitcore-lib-cash/package.json
COPY ./packages/bitcore-lib-cash/package-lock.json ./packages/bitcore-lib-cash/package-lock.json

COPY ./packages/bitcore-lib/package.json ./packages/bitcore-lib/package.json
COPY ./packages/bitcore-lib/package-lock.json ./packages/bitcore-lib/package-lock.json

COPY ./packages/bitcore-mnemonic/package.json ./packages/bitcore-mnemonic/package.json
COPY ./packages/bitcore-mnemonic/package-lock.json ./packages/bitcore-mnemonic/package-lock.json

COPY ./packages/bitcore-node/package.json ./packages/bitcore-node/package.json
COPY ./packages/bitcore-node/package-lock.json ./packages/bitcore-node/package-lock.json

COPY ./packages/bitcore-p2p-cash/package.json ./packages/bitcore-p2p-cash/package.json
COPY ./packages/bitcore-p2p-cash/package-lock.json ./packages/bitcore-p2p-cash/package-lock.json

COPY ./packages/bitcore-p2p/package.json ./packages/bitcore-p2p/package.json
COPY ./packages/bitcore-p2p/package-lock.json ./packages/bitcore-p2p/package-lock.json

COPY ./packages/bitcore-wallet-client/package.json ./packages/bitcore-wallet-client/package.json
COPY ./packages/bitcore-wallet-client/package-lock.json ./packages/bitcore-wallet-client/package-lock.json

COPY ./packages/bitcore-wallet-service/package.json ./packages/bitcore-wallet-service/package.json
COPY ./packages/bitcore-wallet-service/package-lock.json ./packages/bitcore-wallet-service/package-lock.json

COPY ./packages/crypto-wallet-core/package.json ./packages/crypto-wallet-core/package.json
COPY ./packages/crypto-wallet-core/package-lock.json ./packages/crypto-wallet-core/package-lock.json

COPY ./packages/bitcore-lib-ltc/package.json ./packages/bitcore-lib-ltc/package.json
COPY ./packages/bitcore-lib-ltc/package-lock.json ./packages/bitcore-lib-ltc/package-lock.json

COPY ./packages/bitcore-lib-doge/package.json ./packages/bitcore-lib-doge/package.json
COPY ./packages/bitcore-lib-doge/package-lock.json ./packages/bitcore-lib-doge/package-lock.json

COPY ./packages/bitcore-p2p-doge/package.json ./packages/bitcore-p2p-doge/package.json
COPY ./packages/bitcore-p2p-doge/package-lock.json ./packages/bitcore-p2p-doge/package-lock.json


RUN npm install --ignore-scripts
RUN npm run bootstrap
ADD . .
RUN npm run compile
RUN npm ci
5 changes: 4 additions & 1 deletion bitcore-test.config.js
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
/* eslint-disable @typescript-eslint/no-require-imports */

const fs = require('fs');
const testConfig = require('./bitcore-test.config.json');

testConfig.bitcoreNode.chains.BTC.regtest.trustedPeers[0].host = 'bitcoin';
Expand All @@ -20,4 +23,4 @@ testConfig.bitcoreNode.chains.XRP.testnet.provider.host = 'rippled';
testConfig.bitcoreNode.chains.XRP.testnet.provider.port = 6006;
testConfig.bitcoreNode.chains.XRP.testnet.provider.dataHost = 'rippled';

module.exports = testConfig;
fs.writeFileSync('./bitcore-test.local.config.json', JSON.stringify(testConfig, null, 2));
36 changes: 23 additions & 13 deletions ci.sh
Original file line number Diff line number Diff line change
@@ -1,24 +1,34 @@
#!/bin/bash

# NOTE: The CI used to use this but it doesn't anymore because the CI pipeline started timing out. We moved most of the CI pipeline logic to the .circleci/config.yml file
# This is still useful for local testing, though.
for arg in "$@"; do
if [ "$arg" == "--help" ] || [ "$arg" == "-h" ]; then
echo "Usage: $0 <build|run|down> [build | run: <command>|chains]"
echo " build: Builds the Docker images."
echo " run \<command\>: Runs all blockchains OR a command in the test_runner container using the local docker-compose configuration."
echo " down: Shuts down containers and removes volumes."
echo ""
echo "Examples:"
echo " $0 build # Builds the Docker images for local environment"
echo " $0 run 'npm run ci:bitcore-node' # Runs 'npm run ci:bitcore-node' in the test_runner container using local configuration"
echo " $0 run chains # Starts all blockchains needed for testing"
echo " $0 down # Shuts down containers and removes volumes"
exit 0
fi
done

if [ "$1" == "build" ]; then
env="$2"
if [ -z $2 ]; then
env="ci"
fi
if [ "$env" = "ci" ]; then
docker-compose -f docker-compose.test.base.yml -f docker-compose.test.$env.yml build
elif [ "$env" = "local" ]; then
docker compose -f docker-compose.test.base.yml -f docker-compose.test.$env.yml build
docker compose -f docker-compose.test.base.yml -f docker-compose.test.local.yml build
elif [ "$1" = "run" ]; then
node bitcore-test.config.js
if [ "$2" = "chains" ]; then
docker compose -f docker-compose.test.base.yml -f docker-compose.test.ci.yml up -d
else
echo "Unknown environment '$env'. Expected 'ci' or 'local'."
docker compose -f docker-compose.test.base.yml -f docker-compose.test.local.yml run --entrypoint "$2" test_runner
fi
elif [ "$1" = "local" ]; then
docker compose -f docker-compose.test.base.yml -f docker-compose.test.local.yml run --entrypoint "$1" test_runner
elif [ "$1" = "down" ]; then
docker compose -f docker-compose.test.base.yml -f docker-compose.test.local.yml down -v
docker container rm $(docker container ls -qa --filter name=bitcore-test_runner-run-*) &>/dev/null
docker rmi bitcore-test_runner:latest
else
echo "Missing expected parameter. The first parameter should be 'build', 'local', or 'down'."
fi
4 changes: 3 additions & 1 deletion docker-compose.test.local.yml
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,15 @@ services:
build:
context: .
dockerfile: Dockerfile
volumes:
- .:/bitcore
ports:
- 8100:8100
- 3000:3000
environment:
- DB_HOST=db
- DB_NAME=bitcore-test
- BITCORE_CONFIG_PATH=../../../../bitcore-test.config.js
- BITCORE_CONFIG_PATH=/bitcore/bitcore-test.local.config.json
depends_on:
- db
- bitcoin
Expand Down
2 changes: 1 addition & 1 deletion docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
services:
database:
image: mongo:3.4-jessie
image: mongo:3.6.23-jessie
ports:
- 27017:27017
volumes:
Expand Down
3 changes: 2 additions & 1 deletion packages/bitcore-node/test/integration/models/wallet.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { intAfterHelper, intBeforeHelper } from '../../helpers/integration';
describe('Wallet Model', function() {
// eslint-disable-next-line @typescript-eslint/no-this-alias
const suite = this;
this.timeout(50000);
this.timeout(Math.max(this['_timeout'] || 0, 50000));

let lockedWallet: Wallet;
const walletName = 'Test Wallet';
Expand All @@ -27,6 +27,7 @@ describe('Wallet Model', function() {
chainConfig = config.chains[chain][network] as IUtxoNetworkConfig;
creds = chainConfig.rpc;
rpc = new AsyncRPC(creds.username, creds.password, creds.host, creds.port);
await Wallet.deleteWallet({ name: walletName });
await intBeforeHelper();
});

Expand Down
4 changes: 2 additions & 2 deletions packages/bitcore-node/test/integration/websocket.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ describe('Websockets', function() {

// eslint-disable-next-line @typescript-eslint/no-this-alias
const suite = this;
this.timeout(60000);
this.timeout(Math.max(this['_timeout'] || 0, 60000));

before(async function() {
chainConfig = config.chains[chain][network] as IUtxoNetworkConfig;
Expand Down Expand Up @@ -112,7 +112,7 @@ describe('Websockets', function() {
}
});

it('should get websocket events', async () => {
it.only('should get websocket events', async () => {
Comment thread
kajoseph marked this conversation as resolved.
Outdated
socket.emit('room', '/BTC/regtest/inv');
let hasSeenTxEvent = false;
let hasSeenBlockEvent = false;
Expand Down