Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14864119
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
28 KB
Subscribers
None
View Options
diff --git a/contrib/teamcity/build-configurations.yml b/contrib/teamcity/build-configurations.yml
index 3cc905bb2..cc5c8e780 100644
--- a/contrib/teamcity/build-configurations.yml
+++ b/contrib/teamcity/build-configurations.yml
@@ -1,1024 +1,1024 @@
---
# Templates can be referenced in builds to avoid duplication
templates:
guix_builds:
script: |
"${TOPLEVEL}/contrib/teamcity/guix.sh"
timeout: 14400
artifacts:
guix-results: ''
check+secp256k1:
targets:
- - all
- install
- install-secp256k1
- - check
- check-secp256k1
- check-functional
diff-node:
runOnDiffRegex:
- cmake/
- src/
- test/
- CMakeLists.txt
secp256k1:
runOnDiffRegex:
- src/secp256k1/
Werror: true
targets:
- - secp256k1
- install-secp256k1
- - check-secp256k1
ibd:
targets:
- - bitcoind
post_build: |
"${TOPLEVEL}/contrib/teamcity/ibd.sh" -disablewallet -debug=net
timeout: 28800
artifacts:
ibd/debug.log: log/debug.log
ibd-no-assumevalid-checkpoint:
targets:
- - bitcoind
post_build: |
"${TOPLEVEL}/contrib/teamcity/ibd.sh" -disablewallet -assumevalid=0 -checkpoints=0 -debug=net
timeout: 28800
artifacts:
ibd/debug.log: log/debug.log
# This template expects the following environment variables to be set:
# - JS_PROJECT_ROOT: the root directory for the js project being tested,
# relative to the repository top level (no trailing /).
# - DEPENDS_MOCK_CHRONIK_CLIENT: "true" if these tests require
# the mock-chronik-client library, otherwise unset
# - DEPENDS_ECASH_LIB_WASM: "true" if these tests require ecash-lib-wasm
# to be built, otherwise unset
# - DEPENDS_CHRONIK_CLIENT: "true" if these tests require chronik-client
# to be build, otherwise unset
js-mocha:
artifacts:
coverage.tar.gz: coverage.tar.gz
script: |
# Convert hyphen separated words to space separated capitalized words
project_to_suite() {
HYPHEN_SEPARATED=$1
WORD_SEPARATED=($(echo "${HYPHEN_SEPARATED//-/ }"))
echo "${WORD_SEPARATED[@]^}"
}
PROJECT_NAME="$(basename ${JS_PROJECT_ROOT})"
TEST_SUITE_NAME="$(project_to_suite ${PROJECT_NAME})"
# Install ecashaddrjs dependencies if this test uses them
if [ -z "${DEPENDS_ECASHADDRJS+x}" ] ; then
echo "Test does not depend on ecashaddrjs, skipping ecashaddrjs dependencies..."
else
echo "Test depends on ecashaddrjs. Installing ecashaddrjs dependencies..."
pushd "${TOPLEVEL}/modules/ecashaddrjs"
npm ci
npm run build
fi
# Install mock-chronik-client dependencies if this test uses them
if [ -z "${DEPENDS_MOCK_CHRONIK_CLIENT+x}" ] ; then
echo "Test does not depend on mock-chronik-client, skipping mock-chronik-client dependencies..."
else
echo "Test depends on mock-chronik-client. Installing mock-chronik-client dependencies..."
pushd "${TOPLEVEL}/modules/mock-chronik-client"
npm ci
fi
# Build ecash-lib-wasm for ecash-lib's WebAssembly part
if [ -z "${DEPENDS_ECASH_LIB_WASM+x}" ] ; then
echo "Test does not depend on ecash-lib-wasm, skipping"
else
echo "Test depends on ecash-lib-wasm. Building WebAssembly..."
pushd "${TOPLEVEL}/modules/ecash-lib-wasm"
./build-wasm.sh
fi
if [ -z "${DEPENDS_CHRONIK_CLIENT+x}" ] ; then
echo "Test does not depend on chronik-client"
else
echo "Test depends on chronik-client. Building TypeScript..."
pushd "${TOPLEVEL}/modules/chronik-client"
npm ci
fi
# Install ecash-script dependencies if this test uses them
if [ -z "${DEPENDS_ECASH_SCRIPT+x}" ] ; then
echo "Test does not depend on ecash-script, skipping ecash-script dependencies..."
else
echo "Test depends on ecash-script. Installing ecash-script dependencies..."
pushd "${TOPLEVEL}/modules/ecash-script"
npm ci
fi
# Install ecash-coinselect dependencies if this test uses them
if [ -z "${DEPENDS_ECASH_COINSELECT+x}" ] ; then
echo "Test does not depend on ecash-coinselect, skipping ecash-coinselect dependencies..."
else
echo "Test depends on ecash-coinselect. Installing ecash-coinselect dependencies..."
pushd "${TOPLEVEL}/modules/ecash-coinselect"
npm ci
fi
pushd "${TOPLEVEL}/${JS_PROJECT_ROOT}"
MOCHA_JUNIT_DIR="test_results"
MOCHA_JUNIT_PATH="${MOCHA_JUNIT_DIR}/${PROJECT_NAME}-junit.xml"
rm -rf "${MOCHA_JUNIT_DIR}" && mkdir -p "${MOCHA_JUNIT_DIR}"
npm ci
# Test build if this is a typescript app that builds
if [ -z "${RUN_NPM_BUILD+x}" ] ; then
echo "CI not configured to test build."
else
echo "CI configured to test build. Building..."
npm run build
fi
# Make sure the report is available even if the tests fail
move_junit_report() {
mv "${MOCHA_JUNIT_PATH}" "${BUILD_DIR}/"
}
trap "move_junit_report" EXIT
nyc \
--reporter=text \
--reporter=lcov \
--reporter=teamcity \
npm test -- \
--reporter mocha-junit-reporter \
--reporter-options mochaFile="${MOCHA_JUNIT_PATH}" \
--reporter-options testsuitesTitle="${TEST_SUITE_NAME} Unit Tests" \
--reporter-options rootSuiteTitle="${TEST_SUITE_NAME}"
# Generate a summary report
lcov \
--rc lcov_branch_coverage=1 \
--summary coverage/lcov.info \
> coverage/lcov-report/coverage-summary.txt 2>&1
pushd coverage/lcov-report
tar -czf ../coverage.tar.gz -- *
popd
mv coverage/coverage.tar.gz "${BUILD_DIR}/"
rm -rf coverage
# This template expect the following environment variables to be set:
# - JS_PROJECT_ROOT: the root directory for the js project being tested,
# relative to the repository top level (no trailing /).
js-mocha-integration-tests:
artifacts:
coverage.tar.gz: coverage.tar.gz
post_build: |
# Convert hyphen separated words to space separated capitalized words
project_to_suite() {
HYPHEN_SEPARATED=$1
WORD_SEPARATED=($(echo "${HYPHEN_SEPARATED//-/ }"))
echo "${WORD_SEPARATED[@]^}"
}
PROJECT_NAME="$(basename ${JS_PROJECT_ROOT})"
TEST_SUITE_NAME="$(project_to_suite ${PROJECT_NAME})"
# Install ecashaddrjs dependencies if this test uses them
if [ -z "${DEPENDS_ECASHADDRJS+x}" ] ; then
echo "Test does not depend on ecashaddrjs, skipping ecashaddrjs dependencies..."
else
echo "Test depends on ecashaddrjs. Installing ecashaddrjs dependencies..."
pushd "${TOPLEVEL}/modules/ecashaddrjs"
npm ci
npm run build
fi
# Build ecash-lib-wasm for ecash-lib's WebAssembly part
if [ -z "${DEPENDS_ECASH_LIB_WASM+x}" ] ; then
echo "Test does not depend on ecash-lib-wasm, skipping"
else
echo "Test depends on ecash-lib-wasm. Building WebAssembly..."
pushd "${TOPLEVEL}/modules/ecash-lib-wasm"
./build-wasm.sh
fi
if [ -z "${DEPENDS_CHRONIK_CLIENT+x}" ] ; then
echo "Test does not depend on chronik-client"
else
echo "Test depends on chronik-client. Building TypeScript..."
pushd "${TOPLEVEL}/modules/chronik-client"
npm ci
fi
if [ -z "${DEPENDS_ECASH_LIB+x}" ] ; then
echo "Test does not depend on ecash-lib"
else
echo "Test depends on ecash-lib. Building TypeScript..."
pushd "${TOPLEVEL}/modules/ecash-lib"
npm ci
npm run build
fi
pushd "${TOPLEVEL}/${JS_PROJECT_ROOT}"
MOCHA_JUNIT_DIR="test_results"
MOCHA_JUNIT_PATH="${MOCHA_JUNIT_DIR}/${PROJECT_NAME}-integration-tests-junit.xml"
rm -rf "${MOCHA_JUNIT_DIR}" && mkdir -p "${MOCHA_JUNIT_DIR}"
npm ci
# Make sure the report is available even if the tests fail
move_junit_report() {
mv "${MOCHA_JUNIT_PATH}" "${BUILD_DIR}/"
}
trap "move_junit_report" EXIT
nyc \
--reporter=text \
--reporter=lcov \
--reporter=teamcity \
npm run integration-tests -- \
--reporter mocha-junit-reporter \
--reporter-options mochaFile="${MOCHA_JUNIT_PATH}" \
--reporter-options testsuitesTitle="${TEST_SUITE_NAME} Integration Tests" \
--reporter-options rootSuiteTitle="${TEST_SUITE_NAME}"
# Generate a summary report
lcov \
--rc lcov_branch_coverage=1 \
--summary coverage/lcov.info \
> coverage/lcov-report/coverage-summary.txt 2>&1
pushd coverage/lcov-report
tar -czf ../coverage.tar.gz -- *
popd
mv coverage/coverage.tar.gz "${BUILD_DIR}/"
rm -rf coverage
# The build descriptions.
# If a script is defined, then this will be the only step to run.
# Otherwise a list of targets can be specified, grouped by parallel runs.
# Example:
# targets:
# - - build11
# - build12
# - - build21
# - build22
# Will run:
# ninja build11 build12
# ninja build21 build22
builds:
build-asan:
Werror: true
clang: true
fail_fast: true
cmake_flags:
- '-DCMAKE_CXX_FLAGS=-DARENA_DEBUG'
- '-DCRYPTO_USE_ASM=OFF'
- '-DENABLE_SANITIZERS=address'
templates:
- check+secp256k1
timeout: 2400
env:
ASAN_OPTIONS: log_path=stdout
LSAN_OPTIONS: log_path=stdout
build-bench:
runOnDiffRegex:
- src/bench/
Werror: true
targets:
- - all
- install-bitcoin-bench
- - bench-bitcoin
timeout: 1200
artifacts:
src/bench/BitcoinABC_Bench.csv: bench/BitcoinABC_Bench.csv
src/bench/BitcoinABC_Bench.json: bench/BitcoinABC_Bench.json
post_build: |
"${TOPLEVEL}/contrib/teamcity/nanobench_json_to_teamcity_messages.py" \
"Bitcoin ABC Benchmark" \
"${BUILD_DIR}/src/bench/BitcoinABC_Bench.json"
build-chronik:
runOnDiffRegex:
- chronik/
cmake_flags:
- '-DBUILD_BITCOIN_CHRONIK=ON'
targets:
- - check-crates
- - all
- install
- - check
- check-functional
build-chronik-plugins:
runOnDiffRegex:
- chronik/
cmake_flags:
- '-DBUILD_BITCOIN_CHRONIK=ON'
- '-DBUILD_BITCOIN_CHRONIK_PLUGINS=ON'
targets:
- - check-crates
- - all
- install
- - check
- check-functional
build-clang:
Werror: true
clang: true
targets:
- - all
- install
- install-secp256k1
- - check
- check-secp256k1
templates:
- diff-node
timeout: 1200
build-clang-tidy:
clang: true
cmake_flags:
- '-DENABLE_CLANG_TIDY=ON'
targets:
- - all
- - check
templates:
- diff-node
timeout: 1800
build-coverage:
gcc: true
cmake_flags:
- '-DENABLE_COVERAGE=ON'
- '-DENABLE_BRANCH_COVERAGE=ON'
targets:
- - coverage-check-extended
post_build: |
"${TOPLEVEL}/contrib/teamcity/upload-coverage.sh" check-extended
timeout: 4800
artifacts:
coverage.tar.gz: coverage.tar.gz
build-debug:
Werror: true
cmake_flags:
- '-DCMAKE_BUILD_TYPE=Debug'
templates:
- check+secp256k1
- diff-node
timeout: 1200
build-diff:
Werror: true
targets:
- - all
- install
- install-secp256k1
- - check-all
- check-upgrade-activated
templates:
- diff-node
timeout: 1200
build-docs:
targets:
- - doc-rpc
- doc-doxygen
post_build: |
xvfb-run -a -e /dev/stderr ninja install-manpages-html
timeout: 600
artifacts:
doc/*: doc
build-fuzzer:
runOnDiffRegex:
- src/test/fuzz/
- test/fuzz/
clang: true
Werror: true
cmake_flags:
- '-DENABLE_SANITIZERS=fuzzer'
targets:
- - bitcoin-fuzzers
build-ibd:
templates:
- ibd
build-ibd-no-assumevalid-checkpoint:
templates:
- ibd-no-assumevalid-checkpoint
build-linux32:
cross_build:
static_depends: linux32
toolchain: Linux32
cmake_flags:
- '-DBUILD_BITCOIN_CHRONIK=ON'
templates:
- check+secp256k1
timeout: 3600
build-linux64:
cross_build:
static_depends: linux64
toolchain: Linux64
cmake_flags:
- '-DBUILD_BITCOIN_CHRONIK=ON'
- '-DBUILD_BITCOIN_CHAINSTATE=ON'
templates:
- check+secp256k1
timeout: 3600
build-linux-aarch64:
cross_build:
static_depends: linux-aarch64
toolchain: LinuxAArch64
emulator: qemu-aarch64-static
cmake_flags:
- '-DBUILD_BITCOIN_CHRONIK=ON'
- '-DBUILD_BITCOIN_CHAINSTATE=ON'
# The ZMQ functional test will fail with qemu (due to a qemu limitation),
# so disable it to avoid the failure.
# Extracted from stderr:
# Unknown host QEMU_IFLA type: 50
# Unknown host QEMU_IFLA type: 51
# Unknown QEMU_IFLA_BRPORT type 33
- "-DBUILD_BITCOIN_ZMQ=OFF"
# This is an horrible hack to workaround a qemu bug:
# https://bugs.launchpad.net/qemu/+bug/1748612
# Qemu emits a message for unsupported features called by the guest.
# Because the output filtering is not working at all, it causes the
# qemu stderr to end up in the node stderr and fail the functional
# tests.
# Disabling the unsupported feature (here bypassing the config
# detection) fixes the issue.
# FIXME: get rid of the hack, either by using a better qemu version
# or by filtering stderr at the framework level.
- "-DHAVE_DECL_GETIFADDRS=OFF"
templates:
- check+secp256k1
timeout: 3600
env:
QEMU_LD_PREFIX: /usr/aarch64-linux-gnu
build-linux-arm:
cross_build:
static_depends: linux-arm
toolchain: LinuxARM
emulator: qemu-arm-static
cmake_flags:
- '-DBUILD_BITCOIN_CHRONIK=ON'
- '-DBUILD_BITCOIN_CHAINSTATE=ON'
# The ZMQ functional test will fail with qemu (due to a qemu limitation),
# so disable it to avoid the failure.
# Extracted from stderr:
# Unknown host QEMU_IFLA type: 50
# Unknown host QEMU_IFLA type: 51
# Unknown QEMU_IFLA_BRPORT type 33
- "-DBUILD_BITCOIN_ZMQ=OFF"
# This is an horrible hack to workaround a qemu bug:
# https://bugs.launchpad.net/qemu/+bug/1748612
# Qemu emits a message for unsupported features called by the guest.
# Because the output filtering is not working at all, it causes the
# qemu stderr to end up in the node stderr and fail the functional
# tests.
# Disabling the unsupported feature (here bypassing the config
# detection) fixes the issue.
# FIXME: get rid of the hack, either by using a better qemu version
# or by filtering stderr at the framework level.
- "-DHAVE_DECL_GETIFADDRS=OFF"
templates:
- check+secp256k1
timeout: 3600
env:
QEMU_LD_PREFIX: /usr/arm-linux-gnueabihf
build-make-generator:
generator:
name: 'Unix Makefiles'
command: make
flags:
- '-k'
templates:
- check+secp256k1
timeout: 1200
build-master:
cmake_flags:
- '-DBUILD_BITCOIN_CHAINSTATE=ON'
Werror: true
targets:
- - all
- install
- install-secp256k1
- - check-extended
- check-upgrade-activated-extended
- check-electrum
timeout: 4800
build-native-osx:
templates:
- check+secp256k1
timeout: 3600
build-osx:
cross_build:
static_depends: osx
toolchain: OSX
cmake_flags:
- '-DBUILD_BITCOIN_CHAINSTATE=ON'
# Uncomment to build Chronik once the cxx crate is working for OSX
# - '-DBUILD_BITCOIN_CHRONIK=ON'
targets:
- - all
- install
- install-secp256k1
- install-tests
post_build: |
export PYTHONPATH="${TOPLEVEL}/depends/x86_64-apple-darwin/native/lib/python3/dist-packages:${PYTHONPATH:-}"
ninja osx-dmg
timeout: 3600
artifacts:
Bitcoin-ABC.dmg: Bitcoin-ABC.dmg
build-secp256k1:
runOnDiffRegex:
- src/secp256k1/
cmake_flags:
- '-DSECP256K1_ENABLE_MODULE_ECDH=ON'
- '-DSECP256K1_ENABLE_MODULE_MULTISET=ON'
templates:
- secp256k1
timeout: 600
build-secp256k1-java:
runOnDiffRegex:
- src/secp256k1/
cmake_flags:
- '-DSECP256K1_ENABLE_MODULE_ECDH=ON'
- '-DSECP256K1_ENABLE_JNI=ON'
- '-DUSE_JEMALLOC=OFF'
templates:
- secp256k1
timeout: 600
build-secp256k1-bench:
runOnDiffRegex:
- src/secp256k1/
cmake_flags:
- '-DSECP256K1_ENABLE_MODULE_ECDH=ON'
- '-DSECP256K1_ENABLE_MODULE_MULTISET=ON'
targets:
- - install-secp256k1-bench
- - bench-secp256k1
timeout: 1200
build-tsan:
Werror: true
clang: true
fail_fast: true
cmake_flags:
- '-DENABLE_SANITIZERS=thread'
targets:
- - all
- install
- - check
- check-functional
timeout: 2400
env:
TSAN_OPTIONS: log_path=stdout
build-ubsan:
Werror: true
clang: true
fail_fast: true
cmake_flags:
- '-DENABLE_SANITIZERS=undefined'
templates:
- check+secp256k1
timeout: 2400
env:
UBSAN_OPTIONS: log_path=stdout
build-win64:
cross_build:
static_depends: win64
toolchain: Win64
cmake_flags:
- '-DBUILD_BITCOIN_CHRONIK=ON'
- '-DBUILD_BITCOIN_CHAINSTATE=ON'
- "-DBUILD_BITCOIN_SEEDER=OFF"
- "-DCPACK_STRIP_FILES=ON"
- "-DUSE_JEMALLOC=OFF"
targets:
- - all
- install
- install-secp256k1
# install-tests is broken on debian bullseye because the leveldb tests
# do not export any symbol and trigger a mingw linker bug:
# https://sourceware.org/bugzilla/show_bug.cgi?id=26588
# We still install most test suites so we can use the artifacts and run
# them on the native platform.
#- install-tests
- install-test-suite-bitcoin
- install-test-suite-bitcoin-qt
- install-test-suite-avalanche
- install-test-suite-pow
- - package
post_build: |
wine "${ARTIFACT_DIR}/bin/test_bitcoin.exe" --run_test=\!radix_tests,rcu_tests,denialofservice_tests/outbound_slow_chain_eviction
timeout: 3600
artifacts:
bitcoin-abc-*-x86_64-w64-mingw32.exe: bitcoin-abc-x86_64-w64-mingw32.exe
build-without-bip70:
Werror: true
cmake_flags:
- '-DENABLE_BIP70=OFF'
targets:
- - all
- install
- - check
- check-functional
timeout: 1800
build-without-cli:
Werror: true
cmake_flags:
- '-DBUILD_BITCOIN_CLI=OFF'
targets:
- - all
- install
- - check-functional
timeout: 1200
build-without-qt:
Werror: true
cmake_flags:
- '-DBUILD_BITCOIN_QT=OFF'
targets:
- - all
- install
- - check
timeout: 1200
build-without-wallet:
Werror: true
cmake_flags:
- '-DBUILD_BITCOIN_WALLET=OFF'
- '-DBUILD_BITCOIN_CHAINSTATE=ON'
targets:
- - all
- install
- - check
- check-functional
templates:
- diff-node
timeout: 1200
build-without-zmq:
Werror: true
cmake_flags:
- '-DBUILD_BITCOIN_ZMQ=OFF'
targets:
- - all
- install
- - check
- check-functional
timeout: 1800
check-buildbot:
runOnDiffRegex:
- contrib/buildbot/
targets:
- - check-buildbot
timeout: 600
check-seeds:
targets:
- - bitcoind
- bitcoin-cli
post_build: |
# Run on different ports to avoid a race where the rpc port used in the first run
# may not be closed in time for the second to start.
SEEDS_DIR="${TOPLEVEL}"/contrib/seeds
RPC_PORT=18832 "${SEEDS_DIR}"/check-seeds.sh main 80
RPC_PORT=18833 "${SEEDS_DIR}"/check-seeds.sh test 70
timeout: 600
check-source-control-tools:
cmake_flags:
- '-DENABLE_SOURCE_CONTROL_TOOLS_TESTS=ON'
targets:
- - check-source-control-tools
timeout: 600
guix-linux:
templates:
- guix_builds
env:
HOSTS: "x86_64-linux-gnu aarch64-linux-gnu arm-linux-gnueabihf"
guix-osx:
templates:
- guix_builds
env:
HOSTS: "x86_64-apple-darwin"
guix-win:
templates:
- guix_builds
env:
HOSTS: "x86_64-w64-mingw32"
lint-circular-dependencies:
runOnDiffRegex:
- src/
- test/lint/
script: |
"${TOPLEVEL}/test/lint/lint-circular-dependencies.sh"
cashtab-tests:
runOnDiffRegex:
- cashtab/
- modules/mock-chronik-client/
artifacts:
coverage.tar.gz: coverage.tar.gz
env:
# Any string will work, CI just needs to be defined
CI: 'teamcity'
JEST_SUITE_NAME: "Cashtab Test suites"
JEST_JUNIT_SUITE_NAME: "CashTab Unit Tests"
JEST_JUNIT_OUTPUT_DIR: "test/junit"
JEST_JUNIT_OUTPUT_NAME: "cashtab.xml"
script: |
# Cashtab tests depend on libraries hosted in the monorepo
# Install their dependencies (and build them, if necessary) before tests
# ecashaddrjs
echo "Installing ecashaddrjs dependencies..."
pushd "${TOPLEVEL}/modules/ecashaddrjs"
npm ci
npm run build
# mock-chronik-client
echo "Installing mock-chronik-client dependencies..."
pushd "${TOPLEVEL}/modules/mock-chronik-client"
npm ci
# chronik-client
echo "Installing chronik-client dependencies..."
pushd "${TOPLEVEL}/modules/chronik-client"
npm ci
npm run build
# ecash-script
echo "Installing ecash-script dependencies..."
pushd "${TOPLEVEL}/modules/ecash-script"
npm ci
# ecash-lib-wasm
pushd "${TOPLEVEL}/modules/ecash-lib-wasm"
./build-wasm.sh
# ecash-lib
pushd "${TOPLEVEL}/modules/ecash-lib"
npm ci
npm run build
- # ecash-agora
+ # ecash-agora
echo "Installing ecash-agora dependencies..."
pushd "${TOPLEVEL}/modules/ecash-agora"
npm ci
npm run build
pushd "${TOPLEVEL}/cashtab"
npm ci
npm run build
# Make sure the report is available even if the tests fail
move_junit_report() {
mv test "${BUILD_DIR}/"
}
trap "move_junit_report" EXIT
npm run test --coverage -- \
--reporters=default \
--reporters=jest-junit \
--coverageReporters=text \
--coverageReporters=lcov \
--coverageReporters=teamcity
# Generate a summary report
lcov \
--rc lcov_branch_coverage=1 \
--summary coverage/lcov.info \
> coverage/lcov-report/coverage-summary.txt 2>&1
pushd coverage/lcov-report
tar -czf ../coverage.tar.gz -- *
popd
mv coverage/coverage.tar.gz "${BUILD_DIR}/"
alias-server-tests:
runOnDiffRegex:
- apps/alias-server/
- modules/mock-chronik-client/
env:
JS_PROJECT_ROOT: apps/alias-server
DEPENDS_ECASHADDRJS: "true"
DEPENDS_ECASH_SCRIPT: "true"
DEPENDS_CHRONIK_CLIENT: "true"
DEPENDS_MOCK_CHRONIK_CLIENT: "true"
templates:
- js-mocha
ecash-herald-tests:
runOnDiffRegex:
- apps/ecash-herald/
- modules/mock-chronik-client/
env:
JS_PROJECT_ROOT: apps/ecash-herald
DEPENDS_MOCK_CHRONIK_CLIENT: "true"
DEPENDS_CHRONIK_CLIENT: "true"
DEPENDS_ECASH_SCRIPT: "true"
DEPENDS_ECASHADDRJS: "true"
templates:
- js-mocha
token-server-tests:
runOnDiffRegex:
- apps/token-server/
- modules/mock-chronik-client/
env:
JS_PROJECT_ROOT: apps/token-server
DEPENDS_MOCK_CHRONIK_CLIENT: "true"
DEPENDS_ECASHADDRJS: "true"
DEPENDS_CHRONIK_CLIENT: "true"
DEPENDS_ECASH_COINSELECT: "true"
RUN_NPM_BUILD: "true"
templates:
- js-mocha
mock-chronik-client-tests:
runOnDiffRegex:
- modules/mock-chronik-client/
env:
JS_PROJECT_ROOT: modules/mock-chronik-client
DEPENDS_ECASHADDRJS: "true"
templates:
- js-mocha
app-dev-examples:
runOnDiffRegex:
- apps/examples/
- modules/mock-chronik-client/
env:
JS_PROJECT_ROOT: apps/examples
DEPENDS_ECASHADDRJS: "true"
DEPENDS_CHRONIK_CLIENT: "true"
DEPENDS_MOCK_CHRONIK_CLIENT: "true"
DEPENDS_ECASH_COINSELECT: "true"
templates:
- js-mocha
chronik-client-tests:
runOnDiffRegex:
- modules/chronik-client/
env:
JS_PROJECT_ROOT: modules/chronik-client
DEPENDS_ECASHADDRJS: "true"
templates:
- js-mocha
ecash-lib-tests:
runOnDiffRegex:
- modules/ecash-lib/
- cashtab/
env:
JS_PROJECT_ROOT: modules/ecash-lib
RUN_NPM_BUILD: "true"
DEPENDS_ECASHADDRJS: "true"
DEPENDS_ECASH_LIB_WASM: "true"
DEPENDS_CHRONIK_CLIENT: "true"
templates:
- js-mocha
ecash-agora-integration-tests:
cmake_flags:
- '-DBUILD_BITCOIN_CHRONIK=ON'
targets:
- - all
runOnDiffRegex:
- chronik/
- modules/chronik-client/
- modules/ecash-agora/
- modules/ecash-lib/
env:
JS_PROJECT_ROOT: modules/ecash-agora
DEPENDS_ECASHADDRJS: "true"
DEPENDS_ECASH_LIB_WASM: "true"
DEPENDS_CHRONIK_CLIENT: "true"
DEPENDS_ECASH_LIB: "true"
templates:
- js-mocha-integration-tests
ecash-lib-integration-tests:
cmake_flags:
- '-DBUILD_BITCOIN_CHRONIK=ON'
targets:
- - all
runOnDiffRegex:
- chronik/
- modules/chronik-client/
- modules/ecash-lib/
env:
JS_PROJECT_ROOT: modules/ecash-lib
DEPENDS_ECASHADDRJS: "true"
DEPENDS_ECASH_LIB_WASM: "true"
DEPENDS_CHRONIK_CLIENT: "true"
templates:
- js-mocha-integration-tests
chronik-client-integration-tests:
cmake_flags:
- '-DBUILD_BITCOIN_CHRONIK=ON'
targets:
- - all
runOnDiffRegex:
- chronik/
- modules/chronik-client/
env:
JS_PROJECT_ROOT: modules/chronik-client
DEPENDS_ECASHADDRJS: "true"
templates:
- js-mocha-integration-tests
ecashaddrjs-tests:
runOnDiffRegex:
- modules/ecashaddrjs/
env:
JS_PROJECT_ROOT: modules/ecashaddrjs
templates:
- js-mocha
ecash-script-tests:
runOnDiffRegex:
- modules/ecash-script/
env:
JS_PROJECT_ROOT: modules/ecash-script
templates:
- js-mocha
ecash-coinselect-tests:
runOnDiffRegex:
- modules/ecash-coinselect/
env:
JS_PROJECT_ROOT: modules/ecash-coinselect
templates:
- js-mocha
electrum-tests:
runOnDiffRegex:
- electrum/
targets:
- - check-electrum
electrum-functional-tests:
script: |
pip3 install -r "${TOPLEVEL}/electrum/contrib/requirements/requirements.txt"
pip3 install -r "${TOPLEVEL}/electrum/contrib/requirements/requirements-regtest.txt"
pytest "${TOPLEVEL}/electrum/electrumabc/tests/regtest"
preview-e.cash:
docker:
context: web/e.cash
port: 3000
build_args:
- "PREVIEW_BUILD=next.preview.js"
preview-chronik.e.cash:
docker:
context: modules/
build_args:
- "NGINX_CONF=nginx-preview.conf"
preview-explorer:
docker:
context: web/explorer
port: 3035
preview-cashtab:
docker:
context: cashtab
build_args:
- "NGINX_CONF=nginx-preview.conf"
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Wed, May 21, 17:07 (42 m, 34 s)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
5865571
Default Alt Text
(28 KB)
Attached To
rABC Bitcoin ABC
Event Timeline
Log In to Comment