Skip to content

ci: add Docker image caching to build_all and macro_coverage jobs#56

Merged
CamilleTTT merged 4 commits into
ToyotaInfoTech:mainfrom
BenGardiner:copilot/docker-error-fix
Jun 3, 2026
Merged

ci: add Docker image caching to build_all and macro_coverage jobs#56
CamilleTTT merged 4 commits into
ToyotaInfoTech:mainfrom
BenGardiner:copilot/docker-error-fix

Conversation

@BenGardiner

Copy link
Copy Markdown
Contributor

which should prevent the 'random' build failures

@github-actions

github-actions Bot commented Jun 3, 2026

Copy link
Copy Markdown
Contributor

🔨 Build & Macro Coverage Report

Default Builds — Hex File Sizes

ECU Debug (tag 15.0) Debug (tag 2.1.1) Release (tag 15.0) Release (tag 2.1.1)
ECUA 520 KiB (532736 bytes) 520 KiB (532691 bytes) 349 KiB (358103 bytes) 349 KiB (358005 bytes)
ECUB 338 KiB (346808 bytes) 338 KiB (346808 bytes) 200 KiB (205119 bytes) 200 KiB (205074 bytes)
ECUC 319 KiB (326844 bytes) 319 KiB (326844 bytes) 179 KiB (184238 bytes) 179 KiB (184177 bytes)
ECUD 329 KiB (337231 bytes) 329 KiB (337231 bytes) 186 KiB (191455 bytes) 186 KiB (191211 bytes)

Macro Coverage Build Results

Variant Macros Changed Result Warnings
gsusb +ENABLE_GSUSB ✅ Pass 0
gsusb_and_bb +ENABLE_GSUSB +ENABLE_BITBANG ✅ Pass 0
i2c +ENABLE_I2C ✅ Pass 0
j1939 +ENABLE_J1939_MODE ✅ Pass 0
j1939_showcase_mode +ENABLE_J1939_MODE +RAMN_SHOWCASE_MODE ✅ Pass 0
kwp +ENABLE_KWP ✅ Pass 0
no_debug ENABLE_USB_DEBUGENABLE_JOYSTICK_CONTROLSENABLE_SCREENENABLE_CHIP8GENERATE_RUNTIME_STATS ✅ Pass 0
no_dynamic_bitrate ENABLE_DYNAMIC_BITRATE ✅ Pass 0
no_extras ENABLE_J1979ENABLE_MINICTFENABLE_CHIP8ENABLE_SCREENENABLE_SPI ✅ Pass 0
no_uds ENABLE_UDSENABLE_UDS_REPROGRAMMING ✅ Pass 0
uart +ENABLE_UARTENABLE_CDCENABLE_USB ✅ Pass 0
usb_autodetect +ENABLE_USB_AUTODETECT ✅ Pass 0
watchdog +WATCHDOG_ENABLE ✅ Pass 0

Source Code Compile Coverage

  • Total .c source lines: 21370
  • Lines compiled in ≥1 configuration: 20014 (~94%)
  • ENABLE_ macro coverage: 23/23 (100.0%) macros tested in both ON and OFF states
Full ENABLE_ Macro Coverage Table
# Macro Tested ON Tested OFF Covered
1 ENABLE_ADC default (ECUB, ECUC, ECUD) default (ECUA)
2 ENABLE_BITBANG default (ECUA), variant: gsusb_and_bb default (ECUB, ECUC, ECUD)
3 ENABLE_CDC default (ECUA) default (ECUB, ECUC, ECUD), variant: uart
4 ENABLE_CHIP8 default (ECUA) default (ECUB, ECUC, ECUD), variant: no_debug, variant: no_extras
5 ENABLE_DYNAMIC_BITRATE default (ECUA, ECUB, ECUC, ECUD) variant: no_dynamic_bitrate
6 ENABLE_GSUSB variant: gsusb, variant: gsusb_and_bb default (ECUA, ECUB, ECUC, ECUD)
7 ENABLE_I2C variant: i2c default (ECUA, ECUB, ECUC, ECUD)
8 ENABLE_J1939_MODE variant: j1939, variant: j1939_showcase_mode default (ECUA, ECUB, ECUC, ECUD)
9 ENABLE_J1979 default (ECUA, ECUB, ECUC, ECUD) variant: no_extras
10 ENABLE_JOYSTICK_CONTROLS default (ECUA) default (ECUB, ECUC, ECUD), variant: no_debug
11 ENABLE_KWP variant: kwp default (ECUA, ECUB, ECUC, ECUD)
12 ENABLE_MINICTF default (ECUA, ECUD) default (ECUB, ECUC), variant: no_extras
13 ENABLE_SCREEN default (ECUA) default (ECUB, ECUC, ECUD), variant: no_debug, variant: no_extras
14 ENABLE_SPI default (ECUA, ECUD) default (ECUB, ECUC), variant: no_extras
15 ENABLE_UART variant: uart default (ECUA, ECUB, ECUC, ECUD)
16 ENABLE_UDS default (ECUA, ECUB, ECUC, ECUD) variant: no_uds
17 ENABLE_UDS_REPROGRAMMING default (ECUA, ECUB, ECUC, ECUD) variant: no_uds
18 ENABLE_USB default (ECUA) default (ECUB, ECUC, ECUD), variant: uart
19 ENABLE_USB_AUTODETECT variant: usb_autodetect default (ECUA, ECUB, ECUC, ECUD)
20 ENABLE_USB_DEBUG default (ECUA) default (ECUB, ECUC, ECUD), variant: no_debug
21 ENABLE_XCP default (ECUB, ECUC, ECUD) default (ECUA)
22 GENERATE_RUNTIME_STATS default (ECUA, ECUB, ECUC, ECUD) variant: no_debug
23 WATCHDOG_ENABLE variant: watchdog default (ECUA, ECUB, ECUC, ECUD)

Copilot AI and others added 3 commits June 3, 2026 10:10
The warm_cache job runs first, pulls the Docker image once, and saves it
to the Actions cache. All downstream build_all and macro_coverage matrix
jobs then restore from cache and docker-load, avoiding parallel pulls
that hit Docker Hub rate limits.
- Add `prepare` job that reads _version.sh default tag, merges with
  CUBEIDE_EXTRA_TAGS env (space-separated, currently "15.0"), deduplicates,
  and outputs a JSON array for downstream matrix expansion.
- Convert `warm_cache` to a matrix job that caches each Docker image.
- Add `cubeide_docker_tag` matrix dimension to `build_all` so it builds
  across all declared versions.
- `macro_coverage` uses the _version.sh default tag only.
- Artifact names now include the Docker tag to avoid collisions.
- `commit_firmware` downloads firmware built with the default tag.
@BenGardiner

Copy link
Copy Markdown
Contributor Author

regarding versions:

  1. _version.sh / .bat contents will always be built as a version.
  2. CI workflows will additionally test other versions included in teh yaml ("15.0" right now)

@CamilleTTT CamilleTTT merged commit 7a89eff into ToyotaInfoTech:main Jun 3, 2026
23 checks passed
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.

3 participants