Skip to content

[CI] Build the chip-cert-bins docker image used by the TH using github actions#72724

Open
greens wants to merge 1 commit into
project-chip:masterfrom
greens:feature/actions_sdk_build
Open

[CI] Build the chip-cert-bins docker image used by the TH using github actions#72724
greens wants to merge 1 commit into
project-chip:masterfrom
greens:feature/actions_sdk_build

Conversation

@greens

@greens greens commented Jun 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Aims to speed up creating of the chip-cert-bins image used by the test harness. (Current Dockerfile is this one: https://github.com/project-chip/connectedhomeip/blob/master/integrations/docker/images/chip-cert-bins/Dockerfile) Thanks to the parallelization, build times are about ~30 minutes, as opposed to 4 hours otherwise. With ccache, build times are about 7 minutes.

Uses a hybrid model where the various apps are each built first on their own machine, then those uploaded artifacts are copied to a final step which uses a modified Docker file to copy the files into the final image from the build context.

Testing

I downloaded and ran the image (emulated) locally against my test harness during dev. All images were created/uploaded against my fork, so permissions issues may arise here. Dev versions of the image can be found here: https://github.com/greens/connectedhomeip/pkgs/container/chip-cert-bins/versions

Possible future work

Build images are currently built here: https://github.com/project-chip/connectedhomeip/blob/master/.github/workflows/docker_img.yaml , which could easily be extended to also create an arm64 build image (as the cross-compilation image results in some apps needing to be built with clang). That way the tags could match the scheme used for the current build images, and the step could be removed here.

This file could also be extended to offer similar cache management inputs to the various test builds.

…ions

Uses a hybrid model where the various apps are each built first on their own machine, then those uploaded artifacts are copied to a final step which uses a modified Docker file to copy the files into the final image from the build context.
@greens

greens commented Jun 24, 2026

Copy link
Copy Markdown
Contributor Author

Re-opened now that I solved the missing python dependencies issue.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a new Dockerfile (Dockerfile-ci) and a targets configuration file (targets.json) to set up a minimal Ubuntu-based CI environment for Matter certification binaries. Feedback on the Dockerfile highlights two key improvements: replacing the inefficient and error-prone pip install command with a standard requirements.txt or virtual environment approach, and adding /root/apps to the system PATH instead of creating symbolic links in the root directory for cleaner execution.

Comment thread integrations/docker/images/chip-cert-bins/Dockerfile-ci
Comment thread integrations/docker/images/chip-cert-bins/Dockerfile-ci
@codecov

codecov Bot commented Jun 24, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 56.86%. Comparing base (d913454) to head (be50aad).
⚠️ Report is 64 commits behind head on master.

Additional details and impacted files
@@            Coverage Diff             @@
##           master   #72724      +/-   ##
==========================================
+ Coverage   56.07%   56.86%   +0.79%     
==========================================
  Files        1640     1639       -1     
  Lines      112563   112757     +194     
  Branches    13349    13123     -226     
==========================================
+ Hits        63115    64119    +1004     
+ Misses      49448    48638     -810     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@github-actions

github-actions Bot commented Jun 24, 2026

Copy link
Copy Markdown

PR #72724: Size comparison from f8ed35e to be50aad

Full report (33 builds for bl602, bl702, bl702l, cc13x4_26x4, cc32xx, efr32, esp32, nrfconnect, psoc6, qpg, realtek, stm32, telink)
platform target config section f8ed35e be50aad change % change
bl602 lighting-app bl602+mfd+littlefs+rpc FLASH 1098908 1098908 0 0.0
RAM 133418 133418 0 0.0
bl702 lighting-app bl702+eth FLASH 1085716 1085716 0 0.0
RAM 109029 109029 0 0.0
bl702l contact-sensor-app bl702l+mfd+littlefs FLASH 882208 882208 0 0.0
RAM 108596 108596 0 0.0
cc13x4_26x4 lighting-app LP_EM_CC1354P10_6 FLASH 777352 777352 0 0.0
RAM 103404 103404 0 0.0
lock-ftd LP_EM_CC1354P10_6 FLASH 790096 790096 0 0.0
RAM 108684 108684 0 0.0
pump-app LP_EM_CC1354P10_6 FLASH 739368 739368 0 0.0
RAM 97612 97612 0 0.0
pump-controller-app LP_EM_CC1354P10_6 FLASH 719540 719540 0 0.0
RAM 97644 97644 0 0.0
cc32xx air-purifier CC3235SF_LAUNCHXL FLASH 569646 569646 0 0.0
RAM 205112 205112 0 0.0
lock CC3235SF_LAUNCHXL FLASH 597198 597198 0 0.0
RAM 205272 205272 0 0.0
efr32 lighting-app BRD4187C FLASH 1094924 1094924 0 0.0
RAM 135256 135256 0 0.0
lock-app BRD4187C FLASH 995152 995152 0 0.0
RAM 131292 131292 0 0.0
BRD4338a FLASH 799793 799793 0 0.0
RAM 243432 243432 0 0.0
esp32 all-clusters-app c3devkit DRAM 99556 99556 0 0.0
FLASH 1626112 1626112 0 0.0
IRAM 94776 94776 0 0.0
nrfconnect all-clusters-app nrf52840dk_nrf52840 FLASH 844732 844732 0 0.0
RAM 157771 157771 0 0.0
psoc6 all-clusters cy8ckit_062s2_43012 FLASH 1750708 1750708 0 0.0
RAM 215492 215492 0 0.0
all-clusters-minimal cy8ckit_062s2_43012 FLASH 1626532 1626532 0 0.0
RAM 211604 211604 0 0.0
light cy8ckit_062s2_43012 FLASH 1470844 1470844 0 0.0
RAM 197436 197436 0 0.0
lock cy8ckit_062s2_43012 FLASH 1504292 1504292 0 0.0
RAM 225268 225268 0 0.0
qpg lighting-app qpg6200+debug FLASH 843140 843140 0 0.0
RAM 127908 127908 0 0.0
lock-app qpg6200+debug FLASH 782976 782976 0 0.0
RAM 118840 118840 0 0.0
realtek light-switch-app rtl8777g FLASH 689344 689344 0 0.0
RAM 101780 101780 0 0.0
lighting-app rtl8777g FLASH 730288 730288 0 0.0
RAM 102052 102052 0 0.0
stm32 light STM32WB5MM-DK FLASH 478968 478968 0 0.0
RAM 141492 141492 0 0.0
telink all-devices-app tl7218x FLASH 851100 851100 0 0.0
RAM 99060 99060 0 0.0
tlsr9118bdk40d FLASH 642700 642700 0 0.0
RAM 120192 120192 0 0.0
bridge-app tl7218x FLASH 734136 734136 0 0.0
RAM 97700 97700 0 0.0
light-app-ota-compress-lzma-factory-data tl3218x FLASH 800666 800666 0 0.0
RAM 42380 42380 0 0.0
light-app-ota-compress-lzma-shell-factory-data tl7218x FLASH 845806 845806 0 0.0
RAM 101492 101492 0 0.0
light-switch-app-ota-compress-lzma-factory-data tl7218x_retention FLASH 734688 734688 0 0.0
RAM 57824 57824 0 0.0
light-switch-app-ota-compress-lzma-shell-factory-data tlsr9528a FLASH 795776 795776 0 0.0
RAM 75176 75176 0 0.0
light-switch-app-ota-factory-data tl3218x_retention FLASH 734604 734604 0 0.0
RAM 34480 34480 0 0.0
lighting-app-ota-factory-data tlsr9118bdk40d FLASH 615198 615198 0 0.0
RAM 118508 118508 0 0.0
lighting-app-ota-rpc-factory-data-4mb tlsr9518adk80d FLASH 842022 842026 4 0.0
RAM 97376 97376 0 0.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants