Skip to content

ci: upload bin artifacts for RISC-V esp32 chips in user build - #903

Merged
HaoboGu merged 1 commit into
mainfrom
fix/user-build-esp-bin-artifacts
Jul 4, 2026
Merged

ci: upload bin artifacts for RISC-V esp32 chips in user build#903
HaoboGu merged 1 commit into
mainfrom
fix/user-build-esp-bin-artifacts

Conversation

@HaoboGu

@HaoboGu HaoboGu commented Jul 4, 2026

Copy link
Copy Markdown
Collaborator

Problem

RISC-V esp32 chips (esp32c3/c6/h2) don't match the build_esp gate (chip_name == 'esp32s3'), so they run in the generic build job. The build succeeds — cargo-make auto-installs cargo-espflash, and the template's uf2 task produces .bin images — but the job only uploads rmk/*.uf2 and rmk/*.hex, so no artifacts appear.

Reported by @peterjc for an esp32h2 split build: https://github.com/peterjc/rmk-pico-keyboards/actions/runs/28672157097/job/85037673964

Fix

  • Add an Upload bin artifacts step (rmk/*.bin) to the generic build job, gated to esp32 chips.
  • Gate the uf2/hex upload steps to non-esp32 chips, removing the misleading "No files were found" warnings.

build_esp stays gated on exactly esp32s3 — it exists for the Xtensa/espup toolchain, which RISC-V esp32 chips don't need.

Companion fix in rmk-template names the split esp32 images <project>-central.bin/<project>-peripheral.bin instead of hardcoded central.bin/peripheral.bin: rmk-rs/rmk-template#24

Verification

  • actionlint: no new findings vs. main (11 pre-existing info-level shellcheck notes on both).
  • Generated an esp32h2 split project from the updated template locally and ran cargo make uf2 --release: produced Fly_Half_ESP32H2-central.bin and Fly_Half_ESP32H2-peripheral.bin, which the new rmk/*.bin glob matches.

RISC-V esp32 chips (c3/c6/h2) build in the generic job but espflash
produces .bin images, which only build_esp (esp32s3) uploaded. Add a
bin upload step and gate uf2/hex uploads to non-esp32 chips.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@HaoboGu
HaoboGu merged commit 8dbbf1e into main Jul 4, 2026
52 checks passed
@github-actions

github-actions Bot commented Jul 4, 2026

Copy link
Copy Markdown

Size Report

Example main PR Diff .text .data .bss
use_config/nrf52832_ble 394.8 KiB 394.8 KiB +0.00% ⬇️ -8 0 0
use_config/nrf52840_ble 443.3 KiB 443.3 KiB +0.00% ⬇️ -8 0 0
use_config/nrf52840_ble_split (central) 492.5 KiB 492.5 KiB +0.00% ⬆️ +20 0 0
use_config/nrf52840_ble_split (peripheral) 316.9 KiB 316.9 KiB +0.00% ⬆️ +12 0 0
use_config/pi_pico_w_ble 667.7 KiB 667.9 KiB +0.03% ⬆️ +268 0 0
use_config/rp2040 148.5 KiB 148.5 KiB +0.00% ⬆️ +4 0 0
use_config/rp2040_split (central) 162.1 KiB 162.1 KiB +0.00% 0 0 0
use_config/rp2040_split (peripheral) 27.8 KiB 27.8 KiB +0.01% ⬆️ +4 0 0
use_config/stm32f1 63.0 KiB 63.0 KiB +0.00% ⬆️ +4 0 0
use_config/stm32h7 100.0 KiB 100.0 KiB +0.00% 0 0 0
use_rust/nrf52832_ble 382.2 KiB 382.2 KiB +0.00% 0 0 0
use_rust/nrf52840_ble 438.6 KiB 438.6 KiB +0.00% ⬆️ +4 0 0
use_rust/nrf52840_ble_split (central) 501.8 KiB 501.8 KiB +0.00% ⬆️ +8 0 0
use_rust/nrf52840_ble_split (peripheral) 313.3 KiB 313.3 KiB +0.00% ⬆️ +4 0 0
use_rust/pi_pico_w_ble 668.2 KiB 668.2 KiB +0.00% ⬇️ -24 0 0
use_rust/rp2040 148.0 KiB 148.0 KiB +0.00% ⬆️ +8 0 0
use_rust/rp2040_split (central) 160.8 KiB 160.8 KiB +0.00% ⬇️ -4 0 0
use_rust/rp2040_split (peripheral) 28.1 KiB 28.1 KiB +0.01% ⬆️ +4 0 0
use_rust/stm32f1 62.9 KiB 62.9 KiB +0.00% 0 0 0
use_rust/stm32h7 122.3 KiB 122.3 KiB +0.00% 0 0 0
use_config/nrf52832_ble — 394.8 KiB → 394.8 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 364956	   4588	  34760	 404304	  62b50	rmk-nrf52832

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 364964	   4588	  34760	 404312	  62b58	rmk-nrf52832

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +374  [ = ]       0    .debug_str
  +9.1%      +6  [ = ]       0    [Unmapped]
  -0.0%      -8  -0.0%      -8    .text
  -0.2%     -16  [ = ]       0    .debug_abbrev
  -0.0%    -156  [ = ]       0    .debug_line
  -0.0%    -892  [ = ]       0    .debug_info
  -0.0%    -692  -0.0%      -8    TOTAL
use_config/nrf52840_ble — 443.3 KiB → 443.3 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 397912	   4596	  51416	 453924	  6ed24	rmk-nrf52840

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 397920	   4596	  51416	 453932	  6ed2c	rmk-nrf52840

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +491  [ = ]       0    .debug_str
  +0.0%    +180  [ = ]       0    .debug_info
  +0.0%     +91  [ = ]       0    .debug_line
  +0.7%     +55  [ = ]       0    .debug_abbrev
   +19%     +11  [ = ]       0    [Unmapped]
  -0.0%      -8  -0.0%      -8    .text
  +0.0%    +820  -0.0%      -8    TOTAL
use_config/nrf52840_ble_split (central) — 492.5 KiB → 492.5 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 452848	   4652	  46808	 504308	  7b1f4	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 452828	   4652	  46808	 504288	  7b1e0	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0% +1.20Ki  [ = ]       0    .debug_str
  +0.0%     +32  [ = ]       0    .debug_ranges
  +0.0%     +32  [ = ]       0    .symtab
  +0.0%     +25  [ = ]       0    .strtab
  +0.0%     +20  [ = ]       0    .debug_frame
  +0.0%     +20  +0.0%     +20    .text
   +37%     +14  [ = ]       0    [Unmapped]
  +0.0%      +8  [ = ]       0    .debug_aranges
  -0.1%    -253  [ = ]       0    .debug_line
  -0.1% -1.00Ki  [ = ]       0    .debug_loc
  -0.1% -2.16Ki  [ = ]       0    .debug_info
  -0.0% -2.06Ki  +0.0%     +20    TOTAL
use_config/nrf52840_ble_split (peripheral) — 316.9 KiB → 316.9 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 292936	   4468	  27152	 324556	  4f3cc	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 292924	   4468	  27152	 324544	  4f3c0	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +178  [ = ]       0    .debug_info
  +0.0%     +12  +0.0%     +12    .text
  +0.0%      +2  [ = ]       0    .debug_line
 -19.0%     -12  [ = ]       0    [Unmapped]
  -0.1% -1.36Ki  [ = ]       0    .debug_str
  -0.0% -1.18Ki  +0.0%     +12    TOTAL
use_config/pi_pico_w_ble — 667.7 KiB → 667.9 KiB (+0.03% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 629340	      0	  54604	 683944	  a6fa8	rmk-pi-pico-w

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 629072	      0	  54604	 683676	  a6e9c	rmk-pi-pico-w

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1%    +696  [ = ]       0    .debug_loc
  +0.2%    +509  [ = ]       0    .strtab
  +0.0%    +396  [ = ]       0    .debug_info
  +0.1%    +325  [ = ]       0    .debug_line
  +0.1%    +320  [ = ]       0    .debug_ranges
  +0.1%    +268  +0.1%    +268    .text
  +0.1%     +80  [ = ]       0    .symtab
  +0.2%     +68  [ = ]       0    .debug_frame
  +0.0%     +16  [ = ]       0    .debug_aranges
 -21.2%     -14  [ = ]       0    [Unmapped]
  -0.0%    -236  [ = ]       0    .debug_str
  +0.0% +2.37Ki  +0.0%    +268    TOTAL
use_config/rp2040 — 148.5 KiB → 148.5 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 136528	      0	  15540	 152068	  25204	rmk-rp2040

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 136524	      0	  15540	 152064	  25200	rmk-rp2040

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +261  [ = ]       0    .debug_info
  +0.1%    +114  [ = ]       0    .debug_line
   +97%     +33  [ = ]       0    [Unmapped]
  +0.0%      +4  +0.0%      +4    .text
  -0.0%     -32  [ = ]       0    .debug_loc
  -0.0%     -56  [ = ]       0    .debug_str
  +0.0%    +324  +0.0%      +4    TOTAL
use_config/rp2040_split (central) — 162.1 KiB → 162.1 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 149572	      0	  16388	 165960	  28848	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 149572	      0	  16388	 165960	  28848	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
 +10.0%      +4  [ = ]       0    [Unmapped]
  -0.0%     -14  [ = ]       0    .debug_line
  -0.0%     -30  [ = ]       0    .debug_loc
  -0.0%    -185  [ = ]       0    .debug_info
  -0.0%    -211  [ = ]       0    .debug_str
  -0.0%    -436  [ = ]       0    TOTAL
use_config/rp2040_split (peripheral) — 27.8 KiB → 27.8 KiB (+0.01% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  25596	     60	   2796	  28452	   6f24	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  25592	     60	   2796	  28448	   6f20	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%      +4  [ = ]       0    .debug_str
  +0.1%      +4  +0.1%      +4    .rodata
  -6.6%      -4  [ = ]       0    [Unmapped]
  +0.0%      +4  +0.0%      +4    TOTAL
use_config/stm32f1 — 63.0 KiB → 63.0 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  56956	     28	   7520	  64504	   fbf8	rmk-stm32f1

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  56952	     28	   7520	  64500	   fbf4	rmk-stm32f1

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.1%    +321  [ = ]       0    .debug_info
  +0.0%      +5  [ = ]       0    .debug_line
  +0.0%      +4  +0.0%      +4    .text
  -0.1%    -490  [ = ]       0    .debug_str
  -0.0%    -160  +0.0%      +4    TOTAL
use_config/stm32h7 — 100.0 KiB → 100.0 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  92396	    268	   9760	 102424	  19018	rmk-stm32h7

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  92396	    268	   9760	 102424	  19018	rmk-stm32h7

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%      +7  [ = ]       0    .debug_line
  -0.0%    -291  [ = ]       0    .debug_str
  -0.0%    -284  [ = ]       0    TOTAL
use_rust/nrf52832_ble — 382.2 KiB → 382.2 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 353016	   4588	  33744	 391348	  5f8b4	rmk-nrf52832

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 353016	   4588	  33744	 391348	  5f8b4	rmk-nrf52832

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +367  [ = ]       0    .debug_str
  -0.0%     -10  [ = ]       0    .debug_loc
  -0.0%     -16  [ = ]       0    .debug_line
  -0.2%     -18  [ = ]       0    .debug_abbrev
  -0.0%    -723  [ = ]       0    .debug_info
  -0.0%    -400  [ = ]       0    TOTAL
use_rust/nrf52840_ble — 438.6 KiB → 438.6 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 397588	   4596	  46904	 449088	  6da40	rmk-nrf52840

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 397584	   4596	  46904	 449084	  6da3c	rmk-nrf52840

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +387  [ = ]       0    .debug_str
  +0.1%    +228  [ = ]       0    .debug_line
   +60%     +28  [ = ]       0    [Unmapped]
  +0.0%      +4  +0.0%      +4    .text
  -0.0%      -2  [ = ]       0    .debug_loc
  -0.0%    -109  [ = ]       0    .debug_info
  +0.0%    +536  +0.0%      +4    TOTAL
use_rust/nrf52840_ble_split (central) — 501.8 KiB → 501.8 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 456684	   4652	  52552	 513888	  7d760	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 456676	   4652	  52552	 513880	  7d758	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0% +1.16Ki  [ = ]       0    .debug_str
  +0.1%    +357  [ = ]       0    .debug_line
  +0.0%     +30  [ = ]       0    .debug_loc
  +0.0%      +8  +0.0%      +8    .text
  +0.0%      +1  [ = ]       0    .strtab
 -17.2%     -11  [ = ]       0    [Unmapped]
  -0.0%     -48  [ = ]       0    .debug_info
  +0.0% +1.48Ki  +0.0%      +8    TOTAL
use_rust/nrf52840_ble_split (peripheral) — 313.3 KiB → 313.3 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 290920	   4468	  25400	 320788	  4e514	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 290916	   4468	  25400	 320784	  4e510	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%      +4  +0.0%      +4    .text
  +0.0%      +2  [ = ]       0    .debug_line
  -0.0%      -2  [ = ]       0    .debug_loc
 -10.3%      -6  [ = ]       0    [Unmapped]
  -0.0%    -130  [ = ]       0    .debug_info
  -0.0%    -484  [ = ]       0    .debug_str
  -0.0%    -616  +0.0%      +4    TOTAL
use_rust/pi_pico_w_ble — 668.2 KiB → 668.2 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 629504	      0	  54748	 684252	  a70dc	rmk-pi-pico-w

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 629528	      0	  54748	 684276	  a70f4	rmk-pi-pico-w

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0% +1.36Ki  [ = ]       0    .debug_str
 -11.3%      -6  [ = ]       0    [Unmapped]
  -0.0%     -24  -0.0%     -24    .text
  -0.0%    -104  [ = ]       0    .debug_ranges
  -0.0%    -158  [ = ]       0    .debug_line
  -0.1%    -814  [ = ]       0    .debug_loc
  -0.0%    -959  [ = ]       0    .debug_info
  -0.0%    -672  -0.0%     -24    TOTAL
use_rust/rp2040 — 148.0 KiB → 148.0 KiB (+0.00% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 136184	      0	  15412	 151596	  2502c	rmk-rp2040

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 136176	      0	  15412	 151588	  25024	rmk-rp2040

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%    +260  [ = ]       0    .debug_info
  +0.0%     +84  [ = ]       0    .debug_line
  +0.0%      +8  +0.0%      +8    .text
  -9.4%      -6  [ = ]       0    [Unmapped]
  -0.0%     -40  [ = ]       0    .debug_str
  -0.0%     -42  [ = ]       0    .debug_loc
  +0.0%    +264  +0.0%      +8    TOTAL
use_rust/rp2040_split (central) — 160.8 KiB → 160.8 KiB (+0.00% ⬇️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 148456	      0	  16172	 164628	  28314	central

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 148460	      0	  16172	 164632	  28318	central

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +7.9%      +3  [ = ]       0    [Unmapped]
  +0.0%      +2  [ = ]       0    .debug_line
  -0.0%      -4  -0.0%      -4    .text
  -0.0%     -32  [ = ]       0    .debug_loc
  -0.0%    -313  [ = ]       0    .debug_str
  -0.0%    -508  [ = ]       0    .debug_info
  -0.0%    -852  -0.0%      -4    TOTAL
use_rust/rp2040_split (peripheral) — 28.1 KiB → 28.1 KiB (+0.01% ⬆️)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  25656	     60	   3060	  28776	   7068	peripheral

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  25652	     60	   3060	  28772	   7064	peripheral

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +0.0%      +4  [ = ]       0    .debug_str
  +0.1%      +4  +0.1%      +4    .rodata
  +0.0%      +1  [ = ]       0    .strtab
  -7.5%      -5  [ = ]       0    [Unmapped]
  +0.0%      +4  +0.0%      +4    TOTAL
use_rust/stm32f1 — 62.9 KiB → 62.9 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
  56892	     28	   7496	  64416	   fba0	rmk-stm32f1

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
  56892	     28	   7496	  64416	   fba0	rmk-stm32f1

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
  +1.7%      +1  [ = ]       0    [Unmapped]
  -0.0%     -27  [ = ]       0    .debug_line
  -0.0%    -206  [ = ]       0    .debug_info
  -0.1%    -748  [ = ]       0    .debug_str
  -0.1%    -980  [ = ]       0    TOTAL
use_rust/stm32h7 — 122.3 KiB → 122.3 KiB (+0.00%)

cargo size (PR):

   text	   data	    bss	    dec	    hex	filename
 109188	    324	  15692	 125204	  1e914	rmk-stm32h7

cargo size (main):

   text	   data	    bss	    dec	    hex	filename
 109188	    324	  15692	 125204	  1e914	rmk-stm32h7

Bloaty diff (PR vs main):

    FILE SIZE        VM SIZE    
 --------------  -------------- 
 -11.9%      -5  [ = ]       0    [Unmapped]
  -0.0%     -75  [ = ]       0    .debug_info
  -0.1%    -161  [ = ]       0    .debug_line
  -0.0%    -735  [ = ]       0    .debug_str
  -0.0%    -976  [ = ]       0    TOTAL

@peterjc

peterjc commented Jul 4, 2026

Copy link
Copy Markdown
Contributor

Worked for me just now using peterjc/rmk-pico-keyboards@ed79a25 after I did a full re-run of the GitHub Actions - thank you!

Screenshot 2026-07-04 at 21 19 00

@HaoboGu
HaoboGu deleted the fix/user-build-esp-bin-artifacts branch July 16, 2026 02:20
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