Skip to content

Deduplicate ci.yml from #795#804

Closed
Sjors wants to merge 33 commits intobitcoin-core:masterfrom
Sjors:2025/07/fix-ci-dedup
Closed

Deduplicate ci.yml from #795#804
Sjors wants to merge 33 commits intobitcoin-core:masterfrom
Sjors:2025/07/fix-ci-dedup

Conversation

@Sjors
Copy link
Copy Markdown
Member

@Sjors Sjors commented Aug 29, 2025

Trying to deduplicate ci.yml from #795...

Also fixing Coldcard jobs so we only clone that giga repo once.
Scherm­afbeelding 2025-08-29 om 18 03 20

Sjors and others added 26 commits July 22, 2025 10:54
```
error: "/home/runner/.rustup/toolchains/nightly-x86_64-unknown-linux-gnu/lib/rustlib/src/rust/library/Cargo.lock" does not exist, unable to build with the standard library, try:
        rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu
```

https://github.com/bitcoin-core/HWI/actions/runs/16440824447/job/46462763374?pr=795
We can now use the main esp-idf toochain to install the appropriate
version of the qemu emulator, rather than building it ourselves from
source.  Mirrors change recently made to Jade repo.
See e.g. https://github.com/bitcoin-core/HWI/actions/runs/16440824447/job/46463441252

```
work/bitcoin/build/bin/bitcoind: /lib/x86_64-linux-gnu/libc.so.6: version `GLIBC_2.38' not found (required by work/bitcoin/build/bin/bitcoind)
````

Job lingered for 45 minutes.
Manually re-applied the patch after the original code seems to have
moved around a bit.
```
ERROR: coldcard: test_signtx (test_device.TestSignTx.test_signtx) (addrtypes=['legacy'], multisig_types=['legacy'], external=True, op_return=False)
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/__w/HWI/HWI/test/test_device.py", line 588, in test_signtx
    self._test_signtx(addrtypes, multisig_types, external, op_return)
  File "/__w/HWI/HWI/test/test_device.py", line 576, in _test_signtx
    self._generate_and_finalize(True, psbt)
  File "/__w/HWI/HWI/test/test_device.py", line 403, in _generate_and_finalize
    self.assertTrue(first_sign_res["signed"])
                    ~~~~~~~~~~~~~~^^^^^^^^^^
KeyError: 'signed'
```
This reverts commit edab2af.

The always() option is too powerfull. The next commit implements
an alternative solution to the original issue.
This ensures the failure to build a simulator for one device
doesn't abort running jobs for the others. They're still grouped
by manufacturer.

Alternative to bitcoin-core#743.
Build failure on ubuntu-latest:

```
../py/stackctrl.c: In function ‘mp_stack_ctrl_init’:
../py/stackctrl.c:32:32: error: storing the address of local variable ‘stack_dummy’ in ‘mp_state_ctx.thread.stack_top’ [-Werror=dangling-pointer=]
   32 |     MP_STATE_THREAD(stack_top) = (char *)&stack_dummy;
../py/stackctrl.c:31:18: note: ‘stack_dummy’ declared here
   31 |     volatile int stack_dummy;
      |                  ^~~~~~~~~~~
In file included from ../py/runtime.h:29,
                 from ../py/stackctrl.c:27:
../py/mpstate.h:282:23: note: ‘mp_state_ctx’ declared here
  282 | extern mp_state_ctx_t mp_state_ctx;
      |                       ^~~~~~~~~~~~
cc1: all warnings being treated as errors
make: *** [../py/mkrules.mk:77: build/py/stackctrl.o] Error 1
```

Test failure (after downgrading build sim):

```
 File "/github/home/.cache/pypoetry/virtualenvs/hwi-crEDFiR--py3.9/lib/python3.9/site-packages/sdl2/dll.py", line 362, in <module>
    dll = DLL("SDL2", ["SDL2", "SDL2-2.0", "SDL2-2.0.0"], os.getenv("PYSDL2_DLL_PATH"))
  File "/github/home/.cache/pypoetry/virtualenvs/hwi-crEDFiR--py3.9/lib/python3.9/site-packages/sdl2/dll.py", line 253, in __init__
    raise RuntimeError("could not find any library for %s (%s)" %
RuntimeError: could not find any library for SDL2 (PYSDL2_DLL_PATH: unset)
```

https://github.com/bitcoin-core/HWI/actions/runs/16466809973/job/46548656293?pr=795
The build on ubuntu-latest succeeds, but the resulting binary uses
a too recent version of glibc for the test runners to handle.

This only seems to impact Trezor 1, but just downgrade for Trezor T
as well.
NanoS support has been dropped: LedgerHQ/app-bitcoin-new#262

NanoX also makes it possible to test MuSig2 in the future.

Keep NanoS for legacy.
@Sjors Sjors mentioned this pull request Aug 29, 2025
@Sjors Sjors force-pushed the 2025/07/fix-ci-dedup branch from 8959401 to 1808f3a Compare August 29, 2025 12:39
This adds support for BitBox02 Nova. It has the same API has BitBox02.
@Sjors Sjors force-pushed the 2025/07/fix-ci-dedup branch from 1808f3a to 6209b87 Compare August 29, 2025 12:56
@Sjors
Copy link
Copy Markdown
Member Author

Sjors commented Aug 29, 2025

Vibe coded a further reduction in size, though I had to correct quite a few things, so we'll see if it actually works...

@Sjors Sjors force-pushed the 2025/07/fix-ci-dedup branch 2 times, most recently from 41ca9e8 to 4b808ae Compare August 29, 2025 14:37
@Sjors
Copy link
Copy Markdown
Member Author

Sjors commented Aug 29, 2025

Let's see if boiling a few more oceans helps...

@Sjors Sjors force-pushed the 2025/07/fix-ci-dedup branch from 4b808ae to 8b55f28 Compare August 29, 2025 14:41
@Sjors Sjors force-pushed the 2025/07/fix-ci-dedup branch 4 times, most recently from 18f001d to 82b1c49 Compare August 29, 2025 16:20
Sjors and others added 5 commits August 29, 2025 18:25
Also fixes indentation.
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: Claude <claude@anthropic.com>
Co-authored-by: GPT-5 (Preview) <gpt5@example.com>
Co-authored-by: GPT-5 (Preview) <gpt5@example.com>
@Sjors Sjors force-pushed the 2025/07/fix-ci-dedup branch from 82b1c49 to 6cb6054 Compare August 29, 2025 16:31
@Sjors
Copy link
Copy Markdown
Member Author

Sjors commented Aug 29, 2025

Folding this into #795.

@Sjors Sjors closed this Aug 29, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants