Skip to content

Conversation

Sjors
Copy link
Member

@Sjors Sjors commented Jul 22, 2025

Ensures the failure to build a simulator for one device doesn't abort running jobs for the others. They're still grouped by manufacturer.

It uses composite actions so it's hopefully too verbose.

Alternative approach to #743.

Builds on #795.

Scherm­afbeelding 2025-07-22 om 20 12 47

Sjors and others added 12 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.
CI fails with:

```
Traceback (most recent call last):
  File "/home/runner/work/HWI/HWI/test/work/keepkey-firmware/nanopb/generator/nanopb_generator.py", line 1816, in <module>
    main_plugin()
  File "/home/runner/work/HWI/HWI/test/work/keepkey-firmware/nanopb/generator/nanopb_generator.py", line 1796, in main_plugin
    other_files[fdesc.name] = parse_file(fdesc.name, fdesc, options)
                              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/runner/work/HWI/HWI/test/work/keepkey-firmware/nanopb/generator/nanopb_generator.py", line 1628, in parse_file
    Globals.separate_options = read_options_file(open(optfilename, "rU"))
                                                 ^^^^^^^^^^^^^^^^^^^^^^^
ValueError: invalid mode: 'rU'
--nanopb_out: protoc-gen-nanopb: Plugin failed with status code 1.
```

https://github.com/bitcoin-core/HWI/actions/runs/16440824447/job/46462763445

This was changed in:
nanopb/nanopb@01e9186

That's been in the releases since 0.4.6.
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.
@Sjors Sjors mentioned this pull request Jul 22, 2025
@Sjors Sjors force-pushed the 2025/07/ci-split branch from d2f71c3 to 5c52b74 Compare July 22, 2025 18:11
@Sjors Sjors mentioned this pull request Jul 22, 2025
@Sjors Sjors force-pushed the 2025/07/ci-split branch from 5c52b74 to b0a2f76 Compare July 23, 2025 06:48
@Sjors
Copy link
Member Author

Sjors commented Jul 23, 2025

This is definitely easier to work with...

I'll continue debugging here and then port the fixes to #795.

Scherm­afbeelding 2025-07-23 om 08 53 04

Sjors added 2 commits July 23, 2025 09:17
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.
@Sjors Sjors force-pushed the 2025/07/ci-split branch 2 times, most recently from a57942b to b5ad34e Compare July 23, 2025 07:21
Sjors added 5 commits July 23, 2025 09:25
On Ubuntu-latest the Speculos sim fails to build:

```
In file included from /home/runner/work/HWI/HWI/test/work/speculos/src/bolos/io/io.c:11:
/home/runner/work/HWI/HWI/test/work/speculos/src/bolos/io/mock/include/os_utils.h:17:22: error: static declaration of ‘strlcpy’ follows non-static declaration
   17 | static inline size_t strlcpy(char *dst, const char *src, size_t size)
      |                      ^~~~~~~
In file included from /home/runner/work/HWI/HWI/test/work/speculos/src/bolos/cx_hash.h:4,
                 from /home/runner/work/HWI/HWI/test/work/speculos/src/bolos/cx.h:11,
                 from /home/runner/work/HWI/HWI/test/work/speculos/src/emulate.h:15,
                 from /home/runner/work/HWI/HWI/test/work/speculos/src/bolos/io/io.c:10:
/usr/arm-linux-gnueabihf/include/string.h:506:15: note: previous declaration of ‘strlcpy’ with type ‘size_t(char * restrict,  const char * restrict,  size_t)’ {aka ‘unsigned int(char * restrict,  const char * restrict,  unsigned int)’}
  506 | extern size_t strlcpy (char *__restrict __dest,
      |               ^~~~~~~
make[2]: *** [src/CMakeFiles/emu.dir/build.make:737: src/CMakeFiles/emu.dir/bolos/io/io.c.o] Error 1
make[2]: Leaving directory '/home/runner/work/HWI/HWI/test/work/speculos/build'
make[1]: *** [CMakeFiles/Makefile2:1285: src/CMakeFiles/emu.dir/all] Error 2
make[1]: Leaving directory '/home/runner/work/HWI/HWI/test/work/speculos/build'
make: *** [Makefile:101: all] Error 2
make: Leaving directory '/home/runner/work/HWI/HWI/test/work/speculos/build'
```

See e.g. https://github.com/bitcoin-core/HWI/actions/runs/16463666304/job/46535976240
Upgrade both to bookworm
@Sjors Sjors force-pushed the 2025/07/ci-split branch from b5ad34e to 202d2db Compare July 23, 2025 07:46
@Sjors
Copy link
Member Author

Sjors commented Jul 23, 2025

Folding this into #795.

@Sjors Sjors closed this Jul 23, 2025
@Sjors Sjors reopened this Jul 23, 2025
@Sjors Sjors closed this Jul 23, 2025
@Sjors Sjors reopened this Jul 23, 2025
@Sjors Sjors force-pushed the 2025/07/ci-split branch from bc4b2d5 to 64268b7 Compare July 23, 2025 08:40
@Sjors Sjors closed this Jul 23, 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.

1 participant