Skip to content
Open
Show file tree
Hide file tree
Changes from all 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 () => {
socket.emit('room', '/BTC/regtest/inv');
let hasSeenTxEvent = false;
let hasSeenBlockEvent = false;
Expand Down