Page MenuHomePhabricator

[CI] Improve handling of JS dependencies in build-configurations CI
Needs RevisionPublic

Authored by bytesofman on Thu, Dec 26, 16:03.

Details

Reviewers
Fabien
Group Reviewers
Restricted Project
Summary

The modular use of "DEPENDS_" variables made sense when we were dealing with only 1 or 2 dependencies. Now we have many, and also the order matters.

Refactor build-configurations.py to accept yml definitions of dependencies. Organize dependency actions in a specific yml file.

Test Plan
@bot ecash-herald-tests token-server-tests mock-chronik-client-tests b58-ts-tests chronik-client-tests ecash-lib-tests ecash-agora-tests ecashaddrjs-tests ecash-script-tests ecash-coinselect-tests ecash-agora-integration-tests ecash-lib-integration-tests chronik-client-integration-tests

Diff Detail

Repository
rABC Bitcoin ABC
Branch
ci-improvements-take-two
Lint
Lint Warnings
SeverityLocationCodeMessage
Warningcontrib/teamcity/build-configurations.py:429W291flake8 W291
Unit
No Test Coverage
Build Status
Buildable 31791
Build 63075: Build Diff
Build 63074: arc lint + arc unit

Event Timeline

js-mocha tests

@bot alias-server-tests ecash-herald-tests token-server-tests mock-chronik-client-tests b58-ts-tests chronik-client-tests ecash-lib-tests ecash-agora-tests ecashaddrjs-tests ecash-script-tests ecash-coinselect-tests

js-mocha-integration-tests

@bot ecash-agora-integration-tests ecash-lib-integration-tests chronik-client-integration-tests

Tail of the build log:

> mock-chronik-client@2.1.1 build
> tsc

/work/apps/alias-server /work/modules/mock-chronik-client /work/modules/chronik-client /work/modules/ecash-script /work/modules/ecashaddrjs /work/abc-ci-builds/alias-server-tests
npm warn deprecated har-validator@5.1.5: this library is no longer supported
npm warn deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm warn deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.

added 612 packages, and audited 616 packages in 6s

94 packages are looking for funding
  run `npm fund` for details

15 vulnerabilities (3 low, 7 moderate, 5 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
CI not configured to test build.

> alias-server@1.0.0 test
> mocha --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/alias-server-junit.xml --reporter-options testsuitesTitle=Alias Server Unit Tests --reporter-options rootSuiteTitle=Alias Server

Connected successfully to MongoDB server
Error in function updateServerState. MongoServerError: interrupted at shutdown
    at Connection.sendCommand (/work/apps/alias-server/node_modules/mongodb/lib/cmap/connection.js:290:27)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Connection.command (/work/apps/alias-server/node_modules/mongodb/lib/cmap/connection.js:317:26)
    at async Server.command (/work/apps/alias-server/node_modules/mongodb/lib/sdam/server.js:167:29)
    at async UpdateOneOperation.executeCommand (/work/apps/alias-server/node_modules/mongodb/lib/operations/command.js:73:16)
    at async UpdateOneOperation.execute (/work/apps/alias-server/node_modules/mongodb/lib/operations/update.js:55:21)
    at async UpdateOneOperation.execute (/work/apps/alias-server/node_modules/mongodb/lib/operations/update.js:69:21)
    at async tryOperation (/work/apps/alias-server/node_modules/mongodb/lib/operations/execute_operation.js:199:20)
    at async executeOperation (/work/apps/alias-server/node_modules/mongodb/lib/operations/execute_operation.js:69:16)
    at async Collection.updateOne (/work/apps/alias-server/node_modules/mongodb/lib/collection.js:204:16)
    at async Object.updateServerState (/work/apps/alias-server/src/db.js:28:92)
    at async initializeDb (/work/apps/alias-server/src/db.js:21:26)
    at async Context.<anonymous> (/work/apps/alias-server/test/app.test.js:35:18) {
  errorResponse: {
    ok: 0,
    errmsg: 'interrupted at shutdown',
    code: 11600,
    codeName: 'InterruptedAtShutdown'
  },
  ok: 0,
  code: 11600,
  codeName: 'InterruptedAtShutdown',
  [Symbol(errorLabels)]: Set(1) { 'ResetPool' }
}
Initialized serverState on app startup
Configured connection to database ecashAliases
Connected successfully to MongoDB server
Initialized serverState on app startup
Configured connection to database ecashAliases
Build alias-server-tests timed out after 3600.0s

Tail of the build log:

> mock-chronik-client@2.1.1 build
> tsc

/work/apps/alias-server /work/modules/mock-chronik-client /work/modules/chronik-client /work/modules/ecash-script /work/modules/ecashaddrjs /work/abc-ci-builds/alias-server-tests
npm warn deprecated har-validator@5.1.5: this library is no longer supported
npm warn deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142
npm warn deprecated uuid@3.4.0: Please upgrade  to version 7 or higher.  Older versions may use Math.random() in certain circumstances, which is known to be problematic.  See https://v8.dev/blog/math-random for details.

added 612 packages, and audited 616 packages in 6s

94 packages are looking for funding
  run `npm fund` for details

15 vulnerabilities (3 low, 7 moderate, 5 high)

To address issues that do not require attention, run:
  npm audit fix

To address all issues (including breaking changes), run:
  npm audit fix --force

Run `npm audit` for details.
CI not configured to test build.

> alias-server@1.0.0 test
> mocha --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/alias-server-junit.xml --reporter-options testsuitesTitle=Alias Server Unit Tests --reporter-options rootSuiteTitle=Alias Server

Connected successfully to MongoDB server
Error in function updateServerState. MongoServerError: interrupted at shutdown
    at Connection.sendCommand (/work/apps/alias-server/node_modules/mongodb/lib/cmap/connection.js:290:27)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async Connection.command (/work/apps/alias-server/node_modules/mongodb/lib/cmap/connection.js:317:26)
    at async Server.command (/work/apps/alias-server/node_modules/mongodb/lib/sdam/server.js:167:29)
    at async UpdateOneOperation.executeCommand (/work/apps/alias-server/node_modules/mongodb/lib/operations/command.js:73:16)
    at async UpdateOneOperation.execute (/work/apps/alias-server/node_modules/mongodb/lib/operations/update.js:55:21)
    at async UpdateOneOperation.execute (/work/apps/alias-server/node_modules/mongodb/lib/operations/update.js:69:21)
    at async tryOperation (/work/apps/alias-server/node_modules/mongodb/lib/operations/execute_operation.js:199:20)
    at async executeOperation (/work/apps/alias-server/node_modules/mongodb/lib/operations/execute_operation.js:69:16)
    at async Collection.updateOne (/work/apps/alias-server/node_modules/mongodb/lib/collection.js:204:16)
    at async Object.updateServerState (/work/apps/alias-server/src/db.js:28:92)
    at async initializeDb (/work/apps/alias-server/src/db.js:21:26)
    at async Context.<anonymous> (/work/apps/alias-server/test/app.test.js:35:18) {
  errorResponse: {
    ok: 0,
    errmsg: 'interrupted at shutdown',
    code: 11600,
    codeName: 'InterruptedAtShutdown'
  },
  ok: 0,
  code: 11600,
  codeName: 'InterruptedAtShutdown',
  [Symbol(errorLabels)]: Set(1) { 'ResetPool' }
}
Initialized serverState on app startup
Configured connection to database ecashAliases
Connected successfully to MongoDB server
Initialized serverState on app startup
Configured connection to database ecashAliases
Build alias-server-tests timed out after 3600.0s

the timeout failure here does not appear related to this CI patch. running alias-server-tests again in isolation to confirm

Fabien requested changes to this revision.Thu, Dec 26, 21:30
Fabien added a subscriber: Fabien.

I like the top level API, but this can be simplified a bit. See suggestions.

contrib/teamcity/build-configurations.py
172 ↗(On Diff #51747)

See my other comment: you probably want to insert a build step for each dependency instead.

contrib/teamcity/build-configurations.yml
758 ↗(On Diff #51747)

I prefer depends over dependencies. This can be used for some pre-build script as well and the syntax still remains correct

contrib/teamcity/dependencies.yml
1 ↗(On Diff #51747)

I don't think you need this file at all. These "dependencies" can actually be simple builds with a script instead of adding a new syntax.
.+ No new file, no new syntax
.+ These simple builds can be called by the bot if needed
.+ You can use a template to avoid the boilerplate if needed
.+ You can easily imagine making dependencies recursive. This is easy to define in the yaml, a bit more difficult to handle in the python (let's not do that for this diff)
.- The build file is a bit longer ?

This revision now requires changes to proceed.Thu, Dec 26, 21:30
bytesofman marked an inline comment as done.

Simplifying by removing dependencies.yml and its custom methods, instead creating script steps for the dependencies, parsing these before building

bytesofman marked an inline comment as done.

lint

Much better logic. I am not totally sure if my implementation here is the right approach (parsing dependencies, making new BuildConfigurations for each one, adding to steps), though I was able to get it to work locally.

test here

js-mocha tests and js-mocha-integration-tests

@bot alias-server-tests ecash-herald-tests token-server-tests mock-chronik-client-tests b58-ts-tests chronik-client-tests ecash-lib-tests ecash-agora-tests ecashaddrjs-tests ecash-script-tests ecash-coinselect-tests ecash-agora-integration-tests ecash-lib-integration-tests chronik-client-integration-tests

contrib/teamcity/build-configurations.py
134 ↗(On Diff #51763)

not sure if I really want to be doing this. But without it, ran into errors w/ these directories not existing.

@bot alias-server-tests ecash-herald-tests token-server-tests mock-chronik-client-tests b58-ts-tests chronik-client-tests ecash-lib-tests ecash-agora-tests ecashaddrjs-tests ecash-script-tests ecash-coinselect-tests ecash-agora-integration-tests ecash-lib-integration-tests chronik-client-integration-tests

Tail of the build log:

   Compiling unicode-ident v1.0.14
   Compiling typenum v1.17.0
   Compiling version_check v0.9.5
   Compiling wasm-bindgen-shared v0.2.92
   Compiling shlex v1.3.0
   Compiling once_cell v1.20.2
   Compiling bumpalo v3.16.0
   Compiling log v0.4.22
   Compiling cfg-if v1.0.0
   Compiling thiserror v2.0.4
   Compiling wasm-bindgen v0.2.92
   Compiling abc-rust-lint v0.1.0 (/work/chronik/abc-rust-lint)
   Compiling cc v1.2.3
   Compiling generic-array v0.14.7
   Compiling quote v1.0.37
   Compiling syn v2.0.90
   Compiling ecash-secp256k1-sys v0.10.0 (/work/modules/ecash-secp256k1/ecash-secp256k1-sys)
   Compiling crypto-common v0.1.6
   Compiling block-buffer v0.10.4
   Compiling digest v0.10.7
   Compiling ripemd v0.1.3
   Compiling sha2 v0.10.8
   Compiling wasm-bindgen-backend v0.2.92
   Compiling ecash-secp256k1 v0.30.0 (/work/modules/ecash-secp256k1)
   Compiling thiserror-impl v2.0.4
   Compiling wasm-bindgen-macro-support v0.2.92
   Compiling wasm-bindgen-macro v0.2.92
   Compiling ecash-lib-wasm v0.1.0 (/work/modules/ecash-lib-wasm)
    Finished release-wasm [optimized] target(s) in 8.25s
Test depends on ecash-lib. Building TypeScript...
/work/modules/ecash-lib /work/abc-ci-builds/ecash-herald-tests

added 365 packages, and audited 369 packages in 2s

60 packages are looking for funding
  run `npm fund` for details

2 vulnerabilities (1 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-lib@1.2.0 build
> tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist

../chronik-client/proto/chronik.ts(2,18): error TS2307: Cannot find module 'long' or its corresponding type declarations.
../chronik-client/proto/chronik.ts(3,17): error TS2307: Cannot find module 'protobufjs/minimal' or its corresponding type declarations.
../chronik-client/src/ChronikClient.ts(5,35): error TS2307: Cannot find module 'ecashaddrjs' or its corresponding type declarations.
../chronik-client/src/ChronikClient.ts(6,23): error TS2307: Cannot find module 'isomorphic-ws' or its corresponding type declarations.
../chronik-client/src/ChronikClient.ts(7,21): error TS2307: Cannot find module 'ws' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(5,38): error TS2307: Cannot find module 'axios' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(6,23): error TS2307: Cannot find module 'isomorphic-ws' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(7,21): error TS2307: Cannot find module 'ws' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(186,35): error TS7006: Parameter 'x' implicitly has an 'any' type.
../chronik-client/src/failoverProxy.ts(270,32): error TS7006: Parameter 'e' implicitly has an 'any' type.
../chronik-client/src/failoverProxy.ts(276,30): error TS7006: Parameter 'e' implicitly has an 'any' type.
../chronik-client/src/failoverProxy.ts(294,33): error TS7006: Parameter 'msg' implicitly has an 'any' type.
Build ecash-herald-tests failed with exit code 2

Tail of the build log:

Build 'Bitcoin ABC Diffs / Diff Testing' #88868, branch 'refs/tags/phabricator/diff/51763'
Triggered 2024-12-27 15:22:20 by 'Phabricator Staging (phabricator-staging)'
Started 2024-12-27 15:27:40 on agent 'buildagent3'
Finished 2024-12-27 15:27:40 with status FAILURE 'Unable to collect changes'
VCS revisions: 'BitcoinABC_BitcoinAbcStaging' (Git, instance id 22): 'N/A' (checkout rules: '+:. => ./bitcoin-abc')
TeamCity URL https://build.bitcoinabc.org/buildConfiguration/BitcoinABC_BitcoinAbcStaging/875621 
TeamCity server version is 2024.12 (build 174331), server timezone: GMT (UTC)

[15:22:21]E: bt15 (5m:19s)
[15:22:21]i: TeamCity server version is 2024.12 (build 174331)
[15:22:21] : Finalize build settings
[15:22:21] : Collecting changes in 2 VCS roots
[15:22:21] :	 [Collecting changes in 2 VCS roots] VCS Root details
[15:22:21] :		 [VCS Root details] "Bitcoin ABC Staging" {instance id=22, parent internal id=3, parent id=BitcoinABC_BitcoinAbcStaging, description: "ssh://vcs@reviews.bitcoinabc.org:2221/source/bitcoin-abc-staging.git#refs/heads/master"}
[15:22:21] :		 [VCS Root details] "abc-infrastructure" {instance id=24, parent internal id=7, parent id=AutomatedDeployments_BitcoinAbcDeveloperTools_AbcInfrastructure, description: "ssh://vcs@reviews.bitcoinabc.org:2221/source/infrastructure.git#refs/heads/master"}
[15:22:21]i: Loading current repository state for VCS root 'Bitcoin ABC Staging'
[15:22:21]i:	 [Loading current repository state for VCS root 'Bitcoin ABC Staging'] VCS root 'Bitcoin ABC Staging': git -c credential.helper= -c credential.helper=/opt/teamcity/temp/credHelper454866839846679306.sh ls-remote origin
[15:22:21]i:	 [Loading current repository state for VCS root 'Bitcoin ABC Staging'] VCS root 'Bitcoin ABC Staging': kex_exchange_identification: Connection closed by remote host
[15:22:21]i:	 [Loading current repository state for VCS root 'Bitcoin ABC Staging'] VCS root 'Bitcoin ABC Staging': Connection closed by 51.161.87.173 port 2221
[15:22:21]i:	 [Loading current repository state for VCS root 'Bitcoin ABC Staging'] VCS root 'Bitcoin ABC Staging': fatal: Could not read from remote repository.
[15:22:21]i:	 [Loading current repository state for VCS root 'Bitcoin ABC Staging'] VCS root 'Bitcoin ABC Staging': 
[15:22:21]i:	 [Loading current repository state for VCS root 'Bitcoin ABC Staging'] VCS root 'Bitcoin ABC Staging': Please make sure you have the correct access rights
[15:22:21]i:	 [Loading current repository state for VCS root 'Bitcoin ABC Staging'] VCS root 'Bitcoin ABC Staging': and the repository exists.
[15:22:21]i: Loading current repository state for VCS root 'abc-infrastructure'
[15:22:21]i:	 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': git -c credential.helper= -c credential.helper=/opt/teamcity/temp/credHelper14258067258713786826.sh ls-remote origin
[15:22:21]i:	 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': Warning: Permanently added '[reviews.bitcoinabc.org]:2221' (ED25519) to the list of known hosts.
[15:22:21]i: Waiting for completion of current operations for the VCS root 'abc-infrastructure'
[15:22:21]i: Detecting changes in VCS root 'abc-infrastructure' (used in 'Bitcoin-ABC Infra Checkout', 'Extract Electrum ABC from ABC' and 5 other configurations)
[15:22:21]i: Will collect changes for 'abc-infrastructure' starting from revision 67cb737da3dd9cfb13955ae5c94d191b4bfcb771
[15:22:21] : Compute revision for 'abc-infrastructure' in Automated Deployments / Bitcoin ABC Infra / Bitcoin-ABC Infra Checkout
[15:22:21] :	 [Compute revision for 'abc-infrastructure' in Automated Deployments / Bitcoin ABC Infra / Bitcoin-ABC Infra Checkout] Upper limit revision: 67cb737da3dd9cfb13955ae5c94d191b4bfcb771
[15:22:21]i:	 [Compute revision for 'abc-infrastructure' in Automated Deployments / Bitcoin ABC Infra / Bitcoin-ABC Infra Checkout] MaxModId = 76957
[15:22:21] :	 [Compute revision for 'abc-infrastructure' in Automated Deployments / Bitcoin ABC Infra / Bitcoin-ABC Infra Checkout] Computed revision: 67cb737da3dd9cfb13955ae5c94d191b4bfcb771
[15:27:40] : The build is removed from the queue to be prepared for the start
[15:27:40]E: Failed to collect changes, error: git -c credential.helper= -c credential.helper=/opt/teamcity/temp/credHelper454866839846679306.sh ls-remote origin command failed.
exit code: 128
stderr: kex_exchange_identification: Connection closed by remote host
Connection closed by 51.161.87.173 port 2221
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists., VCS root: "Bitcoin ABC Staging" {instance id=22, parent internal id=3, parent id=BitcoinABC_BitcoinAbcStaging, description: "ssh://vcs@reviews.bitcoinabc.org:2221/source/bitcoin-abc-staging.git#refs/heads/master"}
[15:27:40]E: Failed to collect changes, error: git -c credential.helper= -c credential.helper=/opt/teamcity/temp/credHelper454866839846679306.sh ls-remote origin command failed.
exit code: 128
stderr: kex_exchange_identification: Connection closed by remote host
Connection closed by 51.161.87.173 port 2221
fatal: Could not read from remote repository.

Please make sure you have the correct access rights
and the repository exists., VCS root: "Bitcoin ABC Staging" {instance id=22, parent internal id=3, parent id=BitcoinABC_BitcoinAbcStaging, description: "ssh://vcs@reviews.bitcoinabc.org:2221/source/bitcoin-abc-staging.git#refs/heads/master"}
[15:27:40] : Build finished

Tail of the build log:

[549/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/peertablemodel.cpp.o
[550/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/trafficgraphwidget.cpp.o
[551/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/utilitydialog.cpp.o
[552/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin_locale.cpp.o
[553/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addressbookpage.cpp.o
[554/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroltreewidget.cpp.o
[555/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/splashscreen.cpp.o
[556/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/askpassphrasedialog.cpp.o
[557/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/createwalletdialog.cpp.o
[558/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/editaddressdialog.cpp.o
[559/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/openuridialog.cpp.o
[560/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/addresstablemodel.cpp.o
[561/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/rpcconsole.cpp.o
[562/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrimagewidget.cpp.o
[563/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/overviewpage.cpp.o
[564/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/coincontroldialog.cpp.o
[565/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/recentrequeststablemodel.cpp.o
[566/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionfilterproxy.cpp.o
[567/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receiverequestdialog.cpp.o
[568/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/receivecoinsdialog.cpp.o
[569/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondescdialog.cpp.o
[570/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsentry.cpp.o
[571/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentserver.cpp.o
[572/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionrecord.cpp.o
[573/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/signverifymessagedialog.cpp.o
[574/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiondesc.cpp.o
[575/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/sendcoinsdialog.cpp.o
[576/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactiontablemodel.cpp.o
[577/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodeltransaction.cpp.o
[578/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletframe.cpp.o
[579/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/paymentrequestplus.cpp.o
[580/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/transactionview.cpp.o
[581/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletmodel.cpp.o
[582/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletcontroller.cpp.o
[583/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/walletview.cpp.o
[584/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt-base.dir/qrc_bitcoin.cpp.o
[585/589] Linking CXX static library src/qt/libbitcoin-qt-base.a
[586/589] Automatic MOC for target bitcoin-qt
[587/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/bitcoin-qt_autogen/mocs_compilation.cpp.o
[588/589] Building CXX object src/qt/CMakeFiles/bitcoin-qt.dir/main.cpp.o
[589/589] Linking CXX executable src/qt/bitcoin-qt
/work/modules/chronik-client /work/abc-ci-builds/chronik-client-integration-tests

> chronik-client@2.1.1 prepublish
> npm run build


> chronik-client@2.1.1 build
> tsc

src/ChronikClient.ts(5,35): error TS2307: Cannot find module 'ecashaddrjs' or its corresponding type declarations.
test/integration/mempool_conflicts.ts(7,48): error TS2307: Cannot find module 'ecashaddrjs' or its corresponding type declarations.
test/integration/script_endpoints.ts(7,63): error TS2307: Cannot find module 'ecashaddrjs' or its corresponding type declarations.
test/integration/websocket.ts(7,35): error TS2307: Cannot find module 'ecashaddrjs' or its corresponding type declarations.
npm error code 2
npm error path /work/modules/chronik-client
npm error command failed
npm error command sh -c npm run build
npm error A complete log of this run can be found in: /root/.npm/_logs/2024-12-27T15_28_27_667Z-debug-0.log
Build chronik-client-integration-tests failed with exit code 2

Tail of the build log:

  requireStack: [
    '/work/modules/ecash-lib/src/initNodeJs.ts',
    '/work/modules/ecash-lib/tests/alp.test.ts'
  ]
}
-----------------------|---------|----------|---------|---------|-------------------
File                   | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
-----------------------|---------|----------|---------|---------|-------------------
All files              |    1.15 |      3.9 |    1.81 |    1.17 |                   
 ecash-lib             |       0 |        0 |       0 |       0 |                   
  eslint.config.js     |       0 |        0 |       0 |       0 |                   
 ecash-lib/src         |    2.11 |      6.6 |    3.89 |    2.14 |                   
  consts.ts            |       0 |      100 |     100 |       0 | 6-8               
  ecc.ts               |   42.85 |    83.33 |      20 |   42.85 | 23-31,36          
  hash.ts              |   55.55 |    83.33 |      20 |   55.55 | 14,17,20,24       
  index.ts             |       0 |        0 |       0 |       0 |                   
  indexBrowser.ts      |       0 |        0 |       0 |       0 |                   
  indexNodeJs.ts       |       0 |        0 |       0 |       0 |                   
  initBrowser.ts       |       0 |      100 |       0 |       0 | 11-13             
  initNodeJs.ts        |   42.85 |    83.33 |      50 |      50 | 7-11              
  op.ts                |       0 |        0 |       0 |       0 | 33-161            
  opcode.ts            |       0 |      100 |     100 |       0 | 10-154            
  script.ts            |       0 |        0 |       0 |       0 | 28-186            
  sigHashType.ts       |       0 |        0 |       0 |       0 | 19-183            
  tx.ts                |       0 |        0 |       0 |       0 | 21-176            
  txBuilder.ts         |       0 |        0 |       0 |       0 | 74-257            
  unsignedTx.ts        |       0 |        0 |       0 |       0 | 41-357            
 ecash-lib/src/address |       0 |        0 |       0 |       0 |                   
  address.ts           |       0 |        0 |       0 |       0 | 22-344            
  legacyaddr.ts        |       0 |        0 |       0 |       0 | 14-128            
 ecash-lib/src/io      |       0 |        0 |       0 |       0 |                   
  bytes.ts             |       0 |        0 |       0 |       0 | 13-64             
  hex.ts               |       0 |        0 |       0 |       0 | 5-68              
  int.ts               |       0 |        0 |       0 |       0 |                   
  str.ts               |       0 |      100 |       0 |       0 | 5-15              
  varsize.ts           |       0 |        0 |       0 |       0 | 14-47             
  writer.ts            |       0 |        0 |       0 |       0 |                   
  writerbytes.ts       |       0 |        0 |       0 |       0 | 21-79             
  writerlength.ts      |       0 |      100 |       0 |       0 | 16-41             
 ecash-lib/src/test    |       0 |        0 |       0 |       0 |                   
  testRunner.ts        |       0 |        0 |       0 |       0 | 17-207            
 ecash-lib/src/token   |       0 |        0 |       0 |       0 |                   
  alp.ts               |       0 |        0 |       0 |       0 | 13-145            
  common.ts            |       0 |      100 |     100 |       0 | 9-12              
  empp.ts              |       0 |        0 |       0 |       0 | 11-28             
  slp.ts               |       0 |        0 |       0 |       0 | 13-211            
-----------------------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='11']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='952']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='15']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='384']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='3']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='165']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='11']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='937']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-lib-integration-tests-junit.xml': No such file or directory
Build ecash-lib-integration-tests failed with exit code 1

Tail of the build log:

Run `npm audit` for details.

> ecash-agora@0.2.0 integration-tests
> mocha --import=tsx ./tests/*.test.ts --timeout 60000 --reporter mocha-junit-reporter --reporter-options mochaFile=test_results/ecash-agora-integration-tests-junit.xml --reporter-options testsuitesTitle=Ecash Agora Integration Tests --reporter-options rootSuiteTitle=Ecash Agora


 Exception during run: Error: Cannot find module '/work/modules/ecash-agora/node_modules/ecash-lib/dist/indexNodeJs.js'. Please verify that the package.json has a valid "main" entry
    at tryPackage (node:internal/modules/cjs/loader:487:19)
    at Module._findPath (node:internal/modules/cjs/loader:771:18)
    at Module._resolveFilename (node:internal/modules/cjs/loader:1211:27)
    at a._resolveFilename (/work/modules/ecash-agora/node_modules/tsx/dist/cjs/index.cjs:1:1729)
    at Module._load (node:internal/modules/cjs/loader:1051:27)
    at Module.require (node:internal/modules/cjs/loader:1311:19)
    at require (node:internal/modules/helpers:179:18)
    at chaiAsPromised (/work/modules/ecash-agora/tests/oneshot.test.ts:25:8)
    at Object.<anonymous> (/work/modules/ecash-agora/tests/oneshot.test.ts:706:2)
    at Module._compile (node:internal/modules/cjs/loader:1469:14)
    at Module.replacementCompile (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:60:13)
    at S (/work/modules/ecash-agora/node_modules/tsx/dist/cjs/index.cjs:1:1292)
    at Object.<anonymous> (/usr/lib/node_modules/nyc/node_modules/append-transform/index.js:64:4)
    at Module.load (node:internal/modules/cjs/loader:1288:32)
    at Module._load (node:internal/modules/cjs/loader:1104:12)
    at cjsLoader (node:internal/modules/esm/translators:346:17)
    at ModuleWrap.<anonymous> (node:internal/modules/esm/translators:286:7)
    at ModuleJob.run (node:internal/modules/esm/module_job:234:25)
    at async ModuleLoader.import (node:internal/modules/esm/loader:473:24)
    at async formattedImport (/work/modules/ecash-agora/node_modules/mocha/lib/nodejs/esm-utils.js:9:14)
    at async exports.requireOrImport (/work/modules/ecash-agora/node_modules/mocha/lib/nodejs/esm-utils.js:42:28)
    at async exports.loadFilesAsync (/work/modules/ecash-agora/node_modules/mocha/lib/nodejs/esm-utils.js:100:20)
    at async singleRun (/work/modules/ecash-agora/node_modules/mocha/lib/cli/run-helpers.js:125:3)
    at async exports.handler (/work/modules/ecash-agora/node_modules/mocha/lib/cli/run.js:370:5) {
  code: 'MODULE_NOT_FOUND',
  path: '/work/modules/ecash-agora/node_modules/ecash-lib/package.json',
  requestPath: 'ecash-lib'
}
------------|---------|----------|---------|---------|-------------------
File        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s 
------------|---------|----------|---------|---------|-------------------
All files   |       0 |        0 |       0 |       0 |                   
 ad.ts      |       0 |        0 |       0 |       0 | 33-146            
 agora.ts   |       0 |        0 |       0 |       0 | 54-914            
 consts.ts  |       0 |      100 |     100 |       0 | 8-11              
 index.ts   |       0 |        0 |       0 |       0 |                   
 oneshot.ts |       0 |        0 |       0 |       0 | 65-286            
 partial.ts |       0 |        0 |       0 |       0 | 204-1406          
------------|---------|----------|---------|---------|-------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='514']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='207']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='77']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='0']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='514']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-agora-integration-tests-junit.xml': No such file or directory
Build ecash-agora-integration-tests failed with exit code 1

Tail of the build log:

   Compiling unicode-ident v1.0.14
   Compiling typenum v1.17.0
   Compiling version_check v0.9.5
   Compiling wasm-bindgen-shared v0.2.92
   Compiling shlex v1.3.0
   Compiling bumpalo v3.16.0
   Compiling once_cell v1.20.2
   Compiling log v0.4.22
   Compiling wasm-bindgen v0.2.92
   Compiling cfg-if v1.0.0
   Compiling thiserror v2.0.4
   Compiling abc-rust-lint v0.1.0 (/work/chronik/abc-rust-lint)
   Compiling cc v1.2.3
   Compiling generic-array v0.14.7
   Compiling quote v1.0.37
   Compiling syn v2.0.90
   Compiling ecash-secp256k1-sys v0.10.0 (/work/modules/ecash-secp256k1/ecash-secp256k1-sys)
   Compiling crypto-common v0.1.6
   Compiling block-buffer v0.10.4
   Compiling digest v0.10.7
   Compiling sha2 v0.10.8
   Compiling ripemd v0.1.3
   Compiling wasm-bindgen-backend v0.2.92
   Compiling ecash-secp256k1 v0.30.0 (/work/modules/ecash-secp256k1)
   Compiling thiserror-impl v2.0.4
   Compiling wasm-bindgen-macro-support v0.2.92
   Compiling wasm-bindgen-macro v0.2.92
   Compiling ecash-lib-wasm v0.1.0 (/work/modules/ecash-lib-wasm)
    Finished release-wasm [optimized] target(s) in 8.03s
Test depends on ecash-lib. Building TypeScript...
/work/modules/ecash-lib /work/abc-ci-builds/ecash-agora-tests

added 365 packages, and audited 369 packages in 2s

60 packages are looking for funding
  run `npm fund` for details

2 vulnerabilities (1 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-lib@1.2.0 build
> tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist

../chronik-client/proto/chronik.ts(2,18): error TS2307: Cannot find module 'long' or its corresponding type declarations.
../chronik-client/proto/chronik.ts(3,17): error TS2307: Cannot find module 'protobufjs/minimal' or its corresponding type declarations.
../chronik-client/src/ChronikClient.ts(5,35): error TS2307: Cannot find module 'ecashaddrjs' or its corresponding type declarations.
../chronik-client/src/ChronikClient.ts(6,23): error TS2307: Cannot find module 'isomorphic-ws' or its corresponding type declarations.
../chronik-client/src/ChronikClient.ts(7,21): error TS2307: Cannot find module 'ws' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(5,38): error TS2307: Cannot find module 'axios' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(6,23): error TS2307: Cannot find module 'isomorphic-ws' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(7,21): error TS2307: Cannot find module 'ws' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(186,35): error TS7006: Parameter 'x' implicitly has an 'any' type.
../chronik-client/src/failoverProxy.ts(270,32): error TS7006: Parameter 'e' implicitly has an 'any' type.
../chronik-client/src/failoverProxy.ts(276,30): error TS7006: Parameter 'e' implicitly has an 'any' type.
../chronik-client/src/failoverProxy.ts(294,33): error TS7006: Parameter 'msg' implicitly has an 'any' type.
Build ecash-agora-tests failed with exit code 2
Fabien requested changes to this revision.Fri, Dec 27, 15:40

CI says it's not working

This revision now requires changes to proceed.Fri, Dec 27, 15:40

correct order of ecash-lib and chronik-client since ecash-lib takes chronik-client as a dev dependency, make sure deps are built for js-mocha-integration-tests builds

@bot alias-server-tests ecash-herald-tests token-server-tests mock-chronik-client-tests b58-ts-tests chronik-client-tests ecash-lib-tests ecash-agora-tests ecashaddrjs-tests ecash-script-tests ecash-coinselect-tests ecash-agora-integration-tests ecash-lib-integration-tests chronik-client-integration-tests

Tail of the build log:

Build 'Bitcoin ABC Diffs / Diff Testing' #N/A, branch 'refs/tags/phabricator/diff/51779'
Triggered 2024-12-27 17:36:48 by 'Phabricator Staging (phabricator-staging)'
Started 2024-12-27 17:37:16 on agent 'N/A'
Finished 2024-12-27 17:37:16 with status FAILURE 'Snapshot dependency failed to start: Automated Deployments / Bitcoin ABC Infra / Bitcoin-ABC Infra Checkout'
VCS revisions: 'BitcoinABC_BitcoinAbcStaging' (Git, instance id 22): 'c577c56ff01a4c43678feedc2e0b832d42321af2' (branch: 'refs/tags/phabricator/diff/51779', checkout rules: '+:. => ./bitcoin-abc')
TeamCity URL https://build.bitcoinabc.org/buildConfiguration/BitcoinABC_BitcoinAbcStaging/875722 
TeamCity server version is 2024.12 (build 174331), server timezone: GMT (UTC)

[17:36:48]W: bt15 (28s)
[17:36:48]i: TeamCity server version is 2024.12 (build 174331)
[17:36:48] : Finalize build settings
[17:36:48] : Collecting changes in 2 VCS roots
[17:36:48] :	 [Collecting changes in 2 VCS roots] VCS Root details
[17:36:48] :		 [VCS Root details] "Bitcoin ABC Staging" {instance id=22, parent internal id=3, parent id=BitcoinABC_BitcoinAbcStaging, description: "ssh://vcs@reviews.bitcoinabc.org:2221/source/bitcoin-abc-staging.git#refs/heads/master"}
[17:36:48] :		 [VCS Root details] "abc-infrastructure" {instance id=24, parent internal id=7, parent id=AutomatedDeployments_BitcoinAbcDeveloperTools_AbcInfrastructure, description: "ssh://vcs@reviews.bitcoinabc.org:2221/source/infrastructure.git#refs/heads/master"}
[17:36:48]i: Loading current repository state for VCS root 'Bitcoin ABC Staging' (2s)
[17:36:48]i:	 [Loading current repository state for VCS root 'Bitcoin ABC Staging'] Loading current repository state for VCS root 'abc-infrastructure' (2s)
[17:36:48]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'Bitcoin ABC Staging': git -c credential.helper= -c credential.helper=/opt/teamcity/temp/credHelper2542330062646903861.sh ls-remote origin
[17:36:48]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': git -c credential.helper= -c credential.helper=/opt/teamcity/temp/credHelper8942563570774158620.sh ls-remote origin
[17:36:48]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': kex_exchange_identification: Connection closed by remote host
[17:36:48]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': Connection closed by 51.161.87.173 port 2221
[17:36:48]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': fatal: Could not read from remote repository.
[17:36:48]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': 
[17:36:48]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': Please make sure you have the correct access rights
[17:36:48]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'abc-infrastructure': and the repository exists.
[17:36:48]i:		 [Loading current repository state for VCS root 'abc-infrastructure'] VCS root 'Bitcoin ABC Staging': Warning: Permanently added '[reviews.bitcoinabc.org]:2221' (ED25519) to the list of known hosts.
[17:36:49]i: Waiting for completion of current operations for the VCS root 'Bitcoin ABC Staging'
[17:36:50]i: Detecting changes in VCS root 'Bitcoin ABC Staging' (used in 'Diff Testing', 'Staging Checkout Dummy')
[17:36:50]i: Will collect changes for 'Bitcoin ABC Staging' starting from revision d627305b3ddbf7f825c3e19b4c9185e41e5ca0dd
[17:36:50] : Compute revision for 'Bitcoin ABC Staging'
[17:36:50] :	 [Compute revision for 'Bitcoin ABC Staging'] Upper limit revision: c577c56ff01a4c43678feedc2e0b832d42321af2
[17:36:50]i:	 [Compute revision for 'Bitcoin ABC Staging'] MaxModId = 76983
[17:36:50] :	 [Compute revision for 'Bitcoin ABC Staging'] Computed revision: c577c56ff01a4c43678feedc2e0b832d42321af2
[17:37:16]W: Build was removed from the queue with comment: This build has not been started because some of the builds it depends on failed to start

@bot ecash-agora-integration-tests

Tail of the build log:

   Compiling unicode-ident v1.0.14
   Compiling version_check v0.9.5
   Compiling typenum v1.17.0
   Compiling wasm-bindgen-shared v0.2.92
   Compiling shlex v1.3.0
   Compiling once_cell v1.20.2
   Compiling bumpalo v3.16.0
   Compiling log v0.4.22
   Compiling wasm-bindgen v0.2.92
   Compiling thiserror v2.0.4
   Compiling cfg-if v1.0.0
   Compiling abc-rust-lint v0.1.0 (/work/chronik/abc-rust-lint)
   Compiling cc v1.2.3
   Compiling generic-array v0.14.7
   Compiling quote v1.0.37
   Compiling syn v2.0.90
   Compiling ecash-secp256k1-sys v0.10.0 (/work/modules/ecash-secp256k1/ecash-secp256k1-sys)
   Compiling crypto-common v0.1.6
   Compiling block-buffer v0.10.4
   Compiling digest v0.10.7
   Compiling sha2 v0.10.8
   Compiling ripemd v0.1.3
   Compiling wasm-bindgen-backend v0.2.92
   Compiling ecash-secp256k1 v0.30.0 (/work/modules/ecash-secp256k1)
   Compiling thiserror-impl v2.0.4
   Compiling wasm-bindgen-macro-support v0.2.92
   Compiling wasm-bindgen-macro v0.2.92
   Compiling ecash-lib-wasm v0.1.0 (/work/modules/ecash-lib-wasm)
    Finished release-wasm [optimized] target(s) in 8.27s
Test depends on ecash-lib. Building TypeScript...
/work/modules/ecash-lib /work/abc-ci-builds/ecash-agora-tests

added 365 packages, and audited 369 packages in 2s

60 packages are looking for funding
  run `npm fund` for details

2 vulnerabilities (1 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-lib@1.2.0 build
> tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist

../chronik-client/proto/chronik.ts(2,18): error TS2307: Cannot find module 'long' or its corresponding type declarations.
../chronik-client/proto/chronik.ts(3,17): error TS2307: Cannot find module 'protobufjs/minimal' or its corresponding type declarations.
../chronik-client/src/ChronikClient.ts(5,35): error TS2307: Cannot find module 'ecashaddrjs' or its corresponding type declarations.
../chronik-client/src/ChronikClient.ts(6,23): error TS2307: Cannot find module 'isomorphic-ws' or its corresponding type declarations.
../chronik-client/src/ChronikClient.ts(7,21): error TS2307: Cannot find module 'ws' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(5,38): error TS2307: Cannot find module 'axios' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(6,23): error TS2307: Cannot find module 'isomorphic-ws' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(7,21): error TS2307: Cannot find module 'ws' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(186,35): error TS7006: Parameter 'x' implicitly has an 'any' type.
../chronik-client/src/failoverProxy.ts(270,32): error TS7006: Parameter 'e' implicitly has an 'any' type.
../chronik-client/src/failoverProxy.ts(276,30): error TS7006: Parameter 'e' implicitly has an 'any' type.
../chronik-client/src/failoverProxy.ts(294,33): error TS7006: Parameter 'msg' implicitly has an 'any' type.
Build ecash-agora-tests failed with exit code 2

rebase (removing alias-server-tests)

@bot ecash-herald-tests token-server-tests mock-chronik-client-tests b58-ts-tests chronik-client-tests ecash-lib-tests ecash-agora-tests ecashaddrjs-tests ecash-script-tests ecash-coinselect-tests ecash-agora-integration-tests ecash-lib-integration-tests chronik-client-integration-tests

Tail of the build log:

   Compiling unicode-ident v1.0.14
   Compiling version_check v0.9.5
   Compiling typenum v1.17.0
   Compiling wasm-bindgen-shared v0.2.92
   Compiling shlex v1.3.0
   Compiling once_cell v1.20.2
   Compiling bumpalo v3.16.0
   Compiling log v0.4.22
   Compiling thiserror v2.0.4
   Compiling cfg-if v1.0.0
   Compiling wasm-bindgen v0.2.92
   Compiling abc-rust-lint v0.1.0 (/work/chronik/abc-rust-lint)
   Compiling cc v1.2.3
   Compiling generic-array v0.14.7
   Compiling quote v1.0.37
   Compiling syn v2.0.90
   Compiling ecash-secp256k1-sys v0.10.0 (/work/modules/ecash-secp256k1/ecash-secp256k1-sys)
   Compiling crypto-common v0.1.6
   Compiling block-buffer v0.10.4
   Compiling digest v0.10.7
   Compiling ripemd v0.1.3
   Compiling sha2 v0.10.8
   Compiling wasm-bindgen-backend v0.2.92
   Compiling ecash-secp256k1 v0.30.0 (/work/modules/ecash-secp256k1)
   Compiling thiserror-impl v2.0.4
   Compiling wasm-bindgen-macro-support v0.2.92
   Compiling wasm-bindgen-macro v0.2.92
   Compiling ecash-lib-wasm v0.1.0 (/work/modules/ecash-lib-wasm)
    Finished release-wasm [optimized] target(s) in 5.76s
Test depends on ecash-lib. Building TypeScript...
/work/modules/ecash-lib /work/abc-ci-builds/ecash-agora-tests

added 365 packages, and audited 369 packages in 2s

60 packages are looking for funding
  run `npm fund` for details

2 vulnerabilities (1 moderate, 1 high)

To address all issues, run:
  npm audit fix

Run `npm audit` for details.

> ecash-lib@1.2.0 build
> tsc && tsc -p ./tsconfig.build.json && cp -r ./src/ffi ./dist

../chronik-client/proto/chronik.ts(2,18): error TS2307: Cannot find module 'long' or its corresponding type declarations.
../chronik-client/proto/chronik.ts(3,17): error TS2307: Cannot find module 'protobufjs/minimal' or its corresponding type declarations.
../chronik-client/src/ChronikClient.ts(5,35): error TS2307: Cannot find module 'ecashaddrjs' or its corresponding type declarations.
../chronik-client/src/ChronikClient.ts(6,23): error TS2307: Cannot find module 'isomorphic-ws' or its corresponding type declarations.
../chronik-client/src/ChronikClient.ts(7,21): error TS2307: Cannot find module 'ws' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(5,38): error TS2307: Cannot find module 'axios' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(6,23): error TS2307: Cannot find module 'isomorphic-ws' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(7,21): error TS2307: Cannot find module 'ws' or its corresponding type declarations.
../chronik-client/src/failoverProxy.ts(186,35): error TS7006: Parameter 'x' implicitly has an 'any' type.
../chronik-client/src/failoverProxy.ts(270,32): error TS7006: Parameter 'e' implicitly has an 'any' type.
../chronik-client/src/failoverProxy.ts(276,30): error TS7006: Parameter 'e' implicitly has an 'any' type.
../chronik-client/src/failoverProxy.ts(294,33): error TS7006: Parameter 'msg' implicitly has an 'any' type.
Build ecash-agora-tests failed with exit code 2

chronik-client is a dev dep of ecash-lib, add for ecash-agora-tests

@bot ecash-herald-tests token-server-tests mock-chronik-client-tests b58-ts-tests chronik-client-tests ecash-lib-tests ecash-agora-tests ecashaddrjs-tests ecash-script-tests ecash-coinselect-tests ecash-agora-integration-tests ecash-lib-integration-tests chronik-client-integration-tests

Tail of the build log:

File                        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s            
----------------------------|---------|----------|---------|---------|------------------------------
All files                   |   28.33 |     26.4 |   28.35 |   44.85 |                              
 ecash-lib                  |       0 |        0 |       0 |       0 |                              
  eslint.config.js          |       0 |        0 |       0 |       0 |                              
 ecash-lib/dist/ffi         |       0 |        0 |       0 |       0 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |       0 |        0 |       0 |       0 | 1-264                        
 ecash-lib/src              |   35.84 |     28.6 |   39.24 |   68.05 |                              
  consts.ts                 |       0 |      100 |     100 |       0 | 6-8                          
  ecc.ts                    |   30.76 |    83.33 |   22.22 |   57.14 | 23-31                        
  hash.ts                   |   47.05 |    83.33 |   44.44 |   88.88 | 14                           
  index.ts                  |       0 |        0 |       0 |       0 |                              
  indexBrowser.ts           |       0 |        0 |       0 |       0 |                              
  indexNodeJs.ts            |       0 |        0 |       0 |       0 |                              
  initBrowser.ts            |       0 |      100 |       0 |       0 | 11-13                        
  initNodeJs.ts             |   53.84 |      100 |   66.66 |   85.71 | 12                           
  op.ts                     |   20.13 |    23.33 |   36.36 |   39.47 | ...4,107,109,117-122,133-161 
  opcode.ts                 |    50.2 |    83.33 |     100 |     100 | 1                            
  script.ts                 |   28.97 |    20.58 |   31.03 |   51.78 | ...1-122,133,143,153,175-186 
  sigHashType.ts            |      40 |       25 |   46.15 |   78.94 | 26-38                        
  tx.ts                     |   47.25 |    45.23 |   47.61 |   87.23 | 110,114,123-125,144          
  txBuilder.ts              |   40.64 |    32.69 |   54.54 |   80.21 | ...1,154,173-178,183,253-257 
  unsignedTx.ts             |   25.27 |       16 |   30.76 |   46.15 | ...9,312,320,326-329,345,357 
 ecash-lib/src/address      |   11.35 |    15.15 |    5.12 |   22.41 |                              
  address.ts                |   10.95 |    11.36 |    3.22 |   21.05 | ...3,239-240,255-256,266-344 
  legacyaddr.ts             |   12.04 |    22.72 |    12.5 |      25 | 15-19,23-38,70-111,124-128   
 ecash-lib/src/ffi          |   28.26 |    15.94 |   16.98 |   28.98 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |    61.9 |       55 |   39.13 |   62.75 | ...1,197-215,237,250-251,255 
 ecash-lib/src/io           |   30.45 |       41 |    38.7 |   58.77 |                              
  bytes.ts                  |    3.77 |     62.5 |    6.66 |     7.4 | 13-64                        
  hex.ts                    |   41.55 |       50 |   44.44 |   82.35 | 41-45,50,58                  
  int.ts                    |       0 |        0 |       0 |       0 |                              
  str.ts                    |   46.15 |    83.33 |      40 |   85.71 | 15                           
  varsize.ts                |   16.32 |    21.05 |      40 |      32 | 14-24,40-47                  
  writer.ts                 |       0 |        0 |       0 |       0 |                              
  writerbytes.ts            |   42.37 |    40.62 |   53.33 |   83.33 | 33,43,53,63,79               
  writerlength.ts           |   53.33 |    83.33 |   53.84 |     100 | 1                            
 ecash-lib/src/test         |   44.93 |    36.23 |   47.05 |   86.84 |                              
  testRunner.ts             |   44.93 |    36.23 |   47.05 |   86.84 | 73-75,87-89,112,123,166,203  
 ecash-lib/src/token        |   31.48 |    28.44 |   28.57 |   60.11 |                              
  alp.ts                    |    42.5 |    53.12 |   43.47 |   82.92 | 110-123,142                  
  common.ts                 |   54.54 |    83.33 |     100 |     100 | 1                            
  empp.ts                   |   52.17 |       60 |   57.14 |   91.66 | 12                           
  slp.ts                    |   14.76 |     7.35 |       4 |    28.2 | ...7,174-178,185-197,201-211 
----------------------------|---------|----------|---------|---------|------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='796']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='2809']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='239']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='905']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='129']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='455']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='776']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='1730']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-lib-integration-tests-junit.xml': No such file or directory
Build ecash-lib-integration-tests failed with exit code 1

Tail of the build log:

File                        | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s            
----------------------------|---------|----------|---------|---------|------------------------------
All files                   |   28.33 |     26.4 |   28.35 |   44.85 |                              
 ecash-lib                  |       0 |        0 |       0 |       0 |                              
  eslint.config.js          |       0 |        0 |       0 |       0 |                              
 ecash-lib/dist/ffi         |       0 |        0 |       0 |       0 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |       0 |        0 |       0 |       0 | 1-264                        
 ecash-lib/src              |   35.84 |     28.6 |   39.24 |   68.05 |                              
  consts.ts                 |       0 |      100 |     100 |       0 | 6-8                          
  ecc.ts                    |   30.76 |    83.33 |   22.22 |   57.14 | 23-31                        
  hash.ts                   |   47.05 |    83.33 |   44.44 |   88.88 | 14                           
  index.ts                  |       0 |        0 |       0 |       0 |                              
  indexBrowser.ts           |       0 |        0 |       0 |       0 |                              
  indexNodeJs.ts            |       0 |        0 |       0 |       0 |                              
  initBrowser.ts            |       0 |      100 |       0 |       0 | 11-13                        
  initNodeJs.ts             |   53.84 |      100 |   66.66 |   85.71 | 12                           
  op.ts                     |   20.13 |    23.33 |   36.36 |   39.47 | ...4,107,109,117-122,133-161 
  opcode.ts                 |    50.2 |    83.33 |     100 |     100 | 1                            
  script.ts                 |   28.97 |    20.58 |   31.03 |   51.78 | ...1-122,133,143,153,175-186 
  sigHashType.ts            |      40 |       25 |   46.15 |   78.94 | 26-38                        
  tx.ts                     |   47.25 |    45.23 |   47.61 |   87.23 | 110,114,123-125,144          
  txBuilder.ts              |   40.64 |    32.69 |   54.54 |   80.21 | ...1,154,173-178,183,253-257 
  unsignedTx.ts             |   25.27 |       16 |   30.76 |   46.15 | ...9,312,320,326-329,345,357 
 ecash-lib/src/address      |   11.35 |    15.15 |    5.12 |   22.41 |                              
  address.ts                |   10.95 |    11.36 |    3.22 |   21.05 | ...3,239-240,255-256,266-344 
  legacyaddr.ts             |   12.04 |    22.72 |    12.5 |      25 | 15-19,23-38,70-111,124-128   
 ecash-lib/src/ffi          |   28.26 |    15.94 |   16.98 |   28.98 |                              
  ecash_lib_wasm_browser.js |       0 |        0 |       0 |       0 | 3-336                        
  ecash_lib_wasm_nodejs.js  |    61.9 |       55 |   39.13 |   62.75 | ...1,197-215,237,250-251,255 
 ecash-lib/src/io           |   30.45 |       41 |    38.7 |   58.77 |                              
  bytes.ts                  |    3.77 |     62.5 |    6.66 |     7.4 | 13-64                        
  hex.ts                    |   41.55 |       50 |   44.44 |   82.35 | 41-45,50,58                  
  int.ts                    |       0 |        0 |       0 |       0 |                              
  str.ts                    |   46.15 |    83.33 |      40 |   85.71 | 15                           
  varsize.ts                |   16.32 |    21.05 |      40 |      32 | 14-24,40-47                  
  writer.ts                 |       0 |        0 |       0 |       0 |                              
  writerbytes.ts            |   42.37 |    40.62 |   53.33 |   83.33 | 33,43,53,63,79               
  writerlength.ts           |   53.33 |    83.33 |   53.84 |     100 | 1                            
 ecash-lib/src/test         |   44.93 |    36.23 |   47.05 |   86.84 |                              
  testRunner.ts             |   44.93 |    36.23 |   47.05 |   86.84 | 73-75,87-89,112,123,166,203  
 ecash-lib/src/token        |   31.48 |    28.44 |   28.57 |   60.11 |                              
  alp.ts                    |    42.5 |    53.12 |   43.47 |   82.92 | 110-123,142                  
  common.ts                 |   54.54 |    83.33 |     100 |     100 | 1                            
  empp.ts                   |   52.17 |       60 |   57.14 |   91.66 | 12                           
  slp.ts                    |   14.76 |     7.35 |       4 |    28.2 | ...7,174-178,185-197,201-211 
----------------------------|---------|----------|---------|---------|------------------------------

##teamcity[blockOpened name='Code Coverage Summary']
##teamcity[buildStatisticValue key='CodeCoverageAbsBCovered' value='796']
##teamcity[buildStatisticValue key='CodeCoverageAbsBTotal' value='2809']
##teamcity[buildStatisticValue key='CodeCoverageAbsRCovered' value='239']
##teamcity[buildStatisticValue key='CodeCoverageAbsRTotal' value='905']
##teamcity[buildStatisticValue key='CodeCoverageAbsMCovered' value='129']
##teamcity[buildStatisticValue key='CodeCoverageAbsMTotal' value='455']
##teamcity[buildStatisticValue key='CodeCoverageAbsLCovered' value='776']
##teamcity[buildStatisticValue key='CodeCoverageAbsLTotal' value='1730']
##teamcity[blockClosed name='Code Coverage Summary']
mv: cannot stat 'test_results/ecash-lib-integration-tests-junit.xml': No such file or directory
Build ecash-lib-integration-tests failed with exit code 1

deps build, looks like a flakiness failure, possibly some kind of race condition in writing the coverage report file. will test this one again

@bot ecash-lib-integration-tests

Fabien requested changes to this revision.Sat, Dec 28, 09:14
Fabien added inline comments.
contrib/teamcity/build-configurations.py
162 ↗(On Diff #51790)

I don't dee any reason for this dependency system to obly apply to script builds. This could also be very useful for e.g. docker builds. Just create the dependencies step unconditionnally

This revision now requires changes to proceed.Sat, Dec 28, 09:14
contrib/teamcity/build-configurations.py
162 ↗(On Diff #51790)

Actually I think this is not the right approach. The python already knows how to convert a build into steps, including all the edge cases. You should leverage that and recursively use that feature for dependencies