summaryrefslogtreecommitdiff
path: root/firmware_builder.py
Commit message (Collapse)AuthorAgeFilesLines
* cq: Run hosts tests with the cros host compilerJeremy Bettis2023-04-211-0/+12
| | | | | | | | | | | | | | | | | | | In addition to the default x86_64-pc-linux-gnu- compiler, also build and run tests with the x86_64-cros-linux-gnu- toolchain. BRANCH=None BUG=None TEST=Ran with crrev/c/4439569 and it broke TEST=CQ Change-Id: I23b51e97b1205179ea3aecea686ed53eeb60f0ac Signed-off-by: Jeremy Bettis <jbettis@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4459084 Commit-Queue: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Yi Chou <yich@google.com> Commit-Queue: Yi Chou <yich@google.com> Tested-by: Jeremy Bettis <jbettis@chromium.org> Auto-Submit: Jeremy Bettis <jbettis@chromium.org>
* Taranza: Create initial EC imageYu-An Chen2023-04-211-0/+1
| | | | | | | | | | | | | | | | | Create the initial EC image for the taranza variant by copying the dibbi board EC files. More changes will be added later. BUG=b:277664211 BRANCH=none TEST=make BOARD=taranza Change-Id: I5b085ed96117e268fe0e5b30d0e5eb4cb7ae522a Signed-off-by: Yu-An Chen <yu-an.chen@quanta.corp-partner.google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4410551 Reviewed-by: Peter Marheine <pmarheine@chromium.org> Reviewed-by: Bob Moragues <moragues@chromium.org> Reviewed-by: Zhuohao Lee <zhuohao@chromium.org>
* cq: Build usb_updater2 in cqJeremy Bettis2023-03-061-0/+10
| | | | | | | | | | | | | | | | | | | | | | Add an explicit build of extra/usb_updater usb_updater2 to the EC cq. This should catch x86_64 problems in usb_updater2 faster, but won't catch other arch problems (those will be caught by pupr instead). BUG=None BRANCH=None TEST=Checked out snapshot 3585ff4421b2256294b1d3a6568adc5b936ff91c verified failure. Cherrypicked crrev/c/4311236, verified success. Cq-Depend: chromium:4311236 Change-Id: Ie65cb512723cbd189b8d8675b691e511b30da094 Signed-off-by: Jeremy Bettis <jbettis@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4312241 Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: caveh jalali <caveh@chromium.org> Commit-Queue: caveh jalali <caveh@chromium.org> Reviewed-by: Rob Barnes <robbarnes@google.com>
* cq: Print formatting commandsJeremy Bettis2023-02-071-11/+13
| | | | | | | | | | | | | | | | Print black and isort commands before running. BRANCH=None BUG=b:267757300 TEST=CQ Change-Id: I4cdd225a811effd4bf8feba20775281f9e66260a Signed-off-by: Jeremy Bettis <jbettis@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4226458 Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Eric Yilun Lin <yllin@google.com> Tested-by: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Eric Yilun Lin <yllin@google.com>
* ec: Use chromite isort configJeremy Bettis2023-02-031-4/+6
| | | | | | | | | | | | | | | | | | Remove the .isort.cfg from platform/ec and use the one from chromite instead. This should be compatible with cros format. BRANCH=None BUG=b:267757300 TEST=Ran firmware_builder.py Change-Id: Ice4955b6995bd1f9380e97f58e89efb7c1e8aeb1 Signed-off-by: Jeremy Bettis <jbettis@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4221928 Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* cq: Omit host and .d files from build artifactsJeremy Bettis2023-01-111-1/+3
| | | | | | | | | | | | | | | | | The script was excluding o.d files, but many of the .d files were not .o.d. Also omit the host directory, because it's all tests. BRANCH=None BUG=None TEST=Ran before and after change, compared artifacts. Change-Id: I50b5e0e16b47194f62b4b43f4576fd010576da4a Signed-off-by: Jeremy Bettis <jbettis@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4148770 Reviewed-by: Peter Marheine <pmarheine@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Commit-Queue: Jeremy Bettis <jbettis@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org>
* cq: Clean host dir before building with ASANJeremy Bettis2023-01-101-1/+8
| | | | | | | | | | | | | | | | | | | | | | | Since adding TEST_ASAN=y doesn't change the output directory, it will reuse existing .obj files that were not built with ASAN. Delete build/host before running tests with ASAN. Add -u option to python3 command to flush all print statements immediately. BRANCH=None BUG=b:257393779 TEST=cq dry run Change-Id: Ie0b636d49cc9382793b0a0d62111b13dadb34928 Signed-off-by: Jeremy Bettis <jbettis@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4136960 Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Ting Shen <phoenixshen@chromium.org> Reviewed-by: Ting Shen <phoenixshen@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* cq: Export a few boards in binary_sizesJeremy Bettis2022-12-101-4/+45
| | | | | | | | | | | | | | | | | | | | For some boards that have been added or edited recently, and for just 2 regions, set the track_in_gerrit option on the metric. Also extract the baseboard from make and use that as the platform name instead of "ec". BRANCH=None BUG=b:261622866 TEST=./firmware_builder.py --metrics /tmp/metrics_build build Change-Id: Iac325778370e606901d1e372b735e0531c530323 Signed-off-by: Jeremy Bettis <jbettis@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4086970 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Jeremy Bettis <jbettis@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* cq: Build extra/rma_reset in CQJeremy Bettis2022-11-231-0/+9
| | | | | | | | | | | | | | | | | | | | The ebuild chromeos-base/ec-utils-test depends on extra/rma_reset but the EC CQ doesn't build it. Add make commands to CQ script to build extra/rma_reset. BRANCH=None BUG=b:247100970 TEST=CQ Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: I540593056de9fdbea231eefa7dab27b4ad8d5f09 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4049882 Tested-by: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Jack Rosenthal <jrosenth@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* Revert "cq: Run verbose make for better debugging"Jeremy Bettis2022-11-091-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 23fd725b83abdcb50eb99f69e6a4b102489ba3f7. Reason for revert: The build output for EC is 109Mb. Too big. Original change's description: > cq: Run verbose make for better debugging > > There have been several mysterious failures in the CQ and it's hard to > see what is going on since make doesn't print the commands by default. > > BRANCH=None > BUG=b:257393779 > TEST=CQ > > Signed-off-by: Jeremy Bettis <jbettis@google.com> > Change-Id: I4e4db7ef328b01f52d820405db036ef881d06405 > Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4005654 > Commit-Queue: Jeremy Bettis <jbettis@chromium.org> > Tested-by: Jeremy Bettis <jbettis@chromium.org> > Auto-Submit: Jeremy Bettis <jbettis@chromium.org> > Reviewed-by: Al Semjonovs <asemjonovs@google.com> > Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> > Commit-Queue: Al Semjonovs <asemjonovs@google.com> Bug: b:257393779 Change-Id: I9fbde348c12ec77b2447a264d7190c3d75423958 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4014811 Reviewed-by: Al Semjonovs <asemjonovs@google.com> Commit-Queue: Al Semjonovs <asemjonovs@google.com> Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* cq: Run verbose make for better debuggingJeremy Bettis2022-11-041-5/+5
| | | | | | | | | | | | | | | | | | | There have been several mysterious failures in the CQ and it's hard to see what is going on since make doesn't print the commands by default. BRANCH=None BUG=b:257393779 TEST=CQ Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: I4e4db7ef328b01f52d820405db036ef881d06405 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/4005654 Commit-Queue: Jeremy Bettis <jbettis@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Al Semjonovs <asemjonovs@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com> Commit-Queue: Al Semjonovs <asemjonovs@google.com>
* cq: Make sure build is cleanJeremy Bettis2022-11-021-0/+5
| | | | | | | | | | | | | | | | | | | Run a make clobber before make buildall_only just to be sure that the runner isn't reusing a dirty chroot. BRANCH=None BUG=b:256761895 TEST=CQ. Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: I2d8322ff7093b60dff0fac57c318b38cf9b29558 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3995326 Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Al Semjonovs <asemjonovs@google.com> Commit-Queue: Jeremy Bettis <jbettis@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Al Semjonovs <asemjonovs@google.com> Code-Coverage: Zoss <zoss-cl-coverage@prod.google.com>
* Update license boilerplate text in source code filesMike Frysinger2022-09-121-1/+1
| | | | | | | | | | | | | | | Normally we don't do this, but enough changes have accumulated that we're doing a tree-wide one-off update of the name & style. BRANCH=none BUG=chromium:1098010 TEST=`repo upload` works Change-Id: Icd3a1723c20595356af83d190b2c6a9078b3013b Signed-off-by: Mike Frysinger <vapier@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3891203 Reviewed-by: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* ec: Switch black to 80 cols and reformat filesJeremy Bettis2022-07-261-3/+9
| | | | | | | | | | | | | | | | | | | | Add pyproject.toml config file to set black to 80 columns. Remove column length overrides from other config files. Reformat python files to 80 cols. BRANCH=None BUG=b:238434058 TEST=presubmit/CQ Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: I870a68f1bb751f4bad97024045f6e3075489e80f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3764071 Commit-Queue: Jeremy Bettis <jbettis@chromium.org> Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* py: Fix pylint errors discovered by cros lintJeremy Bettis2022-07-141-8/+11
| | | | | | | | | | | | | | | | | | Resolve all pylint warnings in these files. Disable fixme and too-many-arguments globally, because they are very common, and aren't really problems. BRANCH=None BUG=b:238434058 TEST=cros lint Change-Id: I94c410330d6d576d3cc9518503699a514a28758d Signed-off-by: Jeremy Bettis <jbettis@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3760093 Tested-by: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Commit-Queue: Jeremy Bettis <jbettis@chromium.org>
* ec: Fix kconfig_check and run unit test in cqJeremy Bettis2022-07-131-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | Changed the unit test to fail if it can't find zephyr or the kconfiglib instead of skipping, and make it pass. Run the unit test in the CQ. In the process, I discovered that it never used kconfiglib because of errors with ZEPHYR_BASE not being set. Changed kconfig_check to output the error when it falls back to no kconfiglib. This exposed that there were missing configs in util/config_allowed.txt BRANCH=None BUG=b:238773780,b:181253613 TEST=make -j40 buildall && util/run_tests.sh Change-Id: I28a050d448a40df034dd9f2305a2d17cd0797468 Signed-off-by: Jeremy Bettis <jbettis@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3759263 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Commit-Queue: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Keith Short <keithshort@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org>
* ec: Enforce black in presubmitJeremy Bettis2022-07-131-4/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | Enforce black, isort formatting in presubmit for all python files. Do not enforce flake8, because it has errors on most of the files, and it seems to be basically the same as pylint, which is already run on pre-submit. Do not enforce it in the zmake unit test script. Do enforce the formatting in the firmware_builder.py script, and do it early for faster failures in CQ runs. BRANCH=None BUG=b:238434058 TEST=None Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: If3c42b2af41fd2e68accbe2867999dc931e88872 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3749243 Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org> Commit-Queue: Jeremy Bettis <jbettis@chromium.org>
* ec: Format all python files with black and isortJeremy Bettis2022-07-121-65/+64
| | | | | | | | | | | | | | | | | | | find . \( -path ./private -prune \) -o -name '*.py' -print | xargs black find . \( -path ./private -prune \) -o -name '*.py' -print | xargs ~/chromiumos/chromite/scripts/isort --settings-file=.isort.cfg BRANCH=None BUG=b:238434058 TEST=None Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: I63462d6f15d1eaf3db84eb20d1404ee976be8382 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3749242 Commit-Queue: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Tom Hughes <tomhughes@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Jack Rosenthal <jrosenth@chromium.org> Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* firmware_builder: Enforce clang-format in CQJack Rosenthal2022-07-081-0/+3
| | | | | | | | | | | | | | | | Add a new helper script to run clang-format on all files, and call it in the firmware builder scripts. BUG=b:236386294 BRANCH=none TEST=Ran util/check_clang_format.py ~> On ToT: no errors reported ~> Intentionally mess up a file: errors reported Signed-off-by: Jack Rosenthal <jrosenth@chromium.org> Change-Id: Ibde2a4993527fd6f8f30dc25378fdd5f48416d7a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3751463 Reviewed-by: Jeremy Bettis <jbettis@chromium.org>
* ec: Make tests pass with TEST_ASAN=yJeremy Bettis2022-05-111-0/+5
| | | | | | | | | | | | | | | | | | | | | | | There are some mismatched enums and other errors that prevent building with asan. Fix them all. Change the cq builder to prevent these breakages in the future. If the tests pass with ASAN in the chroot, they will likely pass in gitlab with coverage enabled. BRANCH=None BUG=None TEST=make clobber ; make -j8 runtests && echo PASS make clobber ; make -j8 TEST_ASAN=y runtests && echo PASS Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: I6d86fd5750282e0257eb97f65b31046a1613a453 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3631365 Reviewed-by: Keith Short <keithshort@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org> Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Commit-Queue: Keith Short <keithshort@chromium.org>
* ec: Switch to gen_sdk importJeremy Bettis2022-05-101-3/+1
| | | | | | | | | | | | | | | | | Switch from importing chromite.api.gen.chromite.api to chromite.api.gen_sdk.chromite.api, to avoid the odd import order. BRANCH=None BUG=b:187795298 TEST=Ran firmware builders Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: I21ba7856679d67bd889a2585b28cdb74ef5493d7 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3635075 Tested-by: Jeremy Bettis <jbettis@chromium.org> Auto-Submit: Jeremy Bettis <jbettis@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> Commit-Queue: Mike Frysinger <vapier@chromium.org>
* firmware_builder: Call build_with_clang.py scriptTom Hughes2022-04-121-0/+8
| | | | | | | | | | | | | | | | | | The util/build_with_clang.py script helps us validate that boards that build successfully with clang continue to do so. As compilation errors are fixed for boards, they can be added to the list. The script is called from firmware_builder.py as part of the CQ process. BRANCH=none BUG=b:172020503 TEST=CQ passes Signed-off-by: Tom Hughes <tomhughes@chromium.org> Change-Id: I8d9384e04dbfc25191d5ebf93425e6d178631168 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3221785 Reviewed-by: Abe Levkoy <alevkoy@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
* cq: Parse memory report files and add to metricsJeremy Bettis2022-03-171-34/+79
| | | | | | | | | | | | | | | | | | | | In the build stage of firmware_builder.py, parse all memsize.txt files and write the sizes to the metrics proto. Document how to run the builder manually. Formatted python code, and fixed cros lint errors. BRANCH=None BUG=b:223846977 TEST=Ran commands in README. Signed-off-by: Jeremy Bettis <jbettis@google.com> Change-Id: Icca1165fc3e13ec89898550e53b12440bbe053d4 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3530151 Reviewed-by: Jett Rink <jettrink@chromium.org> Commit-Queue: Jeremy Bettis <jbettis@chromium.org> Tested-by: Jeremy Bettis <jbettis@chromium.org>
* firmware_builder: Make cros lint happyCraig Hesling2021-08-101-15/+24
| | | | | | | | | | | | | | BRANCH=none BUG=none TEST=cros lint ./firmware_builder.py TEST=./firmware_builder.py --help TEST=./firmware_builder.py --metrics $(mktemp /tmp/fwbld.XXX) test TEST=./firmware_builder.py --metrics $(mktemp /tmp/fwbld.XXX) build Signed-off-by: Craig Hesling <hesling@chromium.org> Change-Id: I0c2b03d3197fc021e93ce8a0029cdd465b9eb457 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3082336 Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
* firmware_builder: Add printing of make commandsCraig Hesling2021-08-101-2/+7
| | | | | | | | | | | | | | | This helps people parsing the build output log to understand what commands were invoked. BRANCH=none BUG=b:195718112 TEST=./firmware_builder.py --metrics <(echo) test TEST=./firmware_builder.py --metrics <(echo) build Signed-off-by: Craig Hesling <hesling@chromium.org> Change-Id: Iacceae2bba3db3631456a5d5012fc933730031ba Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3082335 Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
* firmware_builder: Add dartmonkey to unit test listCraig Hesling2021-08-101-4/+13
| | | | | | | | | | | | | | | | | Currently both bloonchipper and dartmonkey on-device unit tests are compiled in the cros-ec.eclass. That means that this CQ check will miss compilation failures for dartmonkey, but other packages that trigger the chromeos-ec test routine will fail. See b/195718112 for an example of this. BRANCH=none BUG=b:195718112, b:172501728 TEST=./firmware_builder.py --metrics <(echo) test Signed-off-by: Craig Hesling <hesling@chromium.org> Change-Id: Ifb7799f1ed56e4b849f115339d1a936d76b57ccd Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3082334 Reviewed-by: Paul Fagerburg <pfagerburg@chromium.org>
* firmware_builder: bundle code coverage informationPaul Fagerburg2021-03-181-5/+52
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a rule to the makefile to merge code coverage into a single LCOV file, which firmware_builder.py will bundle as a build artifact. BUG=b:156895937 BRANCH=None TEST=Verify code coverage builds: ``` make clobber make coverage ls build/coverage/lcov.info ``` Verify firmware_builder tests (generate code coverage) and bundles the code coverage information with the correct metadata: ``` make clobber firmware_builder.py --code-coverage --metrics metrics.json test firmware_builder.py --code-coverage --metrics metrics.json bundle ls /tmp/artifact_bundles/coverage.tbz2 cat /tmp/artifact_bundle_metadata ``` Cq-Depend: chromium:2770601 Signed-off-by: Paul Fagerburg <pfagerburg@chromium.org> Change-Id: I355ea76cc774f566bf552741c1a1bdc94cd21bda Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2749421 Reviewed-by: LaMont Jones <lamontjones@chromium.org>
* firmware_builder: always create metrics filePaul Fagerburg2021-02-261-5/+7
| | | | | | | | | | | | | | | | | | | | The firmware builder doesn't need to do anything for code coverage, except that it still needs to create a metrics file so that the postsubmit builder can find it. BUG=chromium:1182320 BRANCH=None TEST=firmware-ec-cov-cq succeeds Cq-Include-Tryjobs: chromeos/cq:firmware-ec-cov-cq Signed-off-by: Paul Fagerburg <pfagerburg@google.com> Change-Id: Id1a4ac5cee1ba4bfbfb2f68ce937386658abfa4f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2722554 Commit-Queue: Paul Fagerburg <pfagerburg@chromium.org> Tested-by: Paul Fagerburg <pfagerburg@chromium.org> Reviewed-by: LaMont Jones <lamontjones@chromium.org> Reviewed-by: Sean McAllister <smcallis@google.com>
* firmware_builder: temporary protobuf fixLaMont Jones2021-02-261-1/+3
| | | | | | | | | | | | | | | | firmware_builder should not be importing from chromite.api.gen. This works around the issue while we implement the fix. BRANCH=none BUG=chromium:1181505 TEST=train Signed-off-by: LaMont Jones <lamontjones@chromium.org> Change-Id: Id49847bcd347f26e05eb494f8a6f6362009189ae Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2719650 Reviewed-by: Mike Nichols <mikenichols@chromium.org> Reviewed-by: Mike Frysinger <vapier@chromium.org> Reviewed-by: Alex Klein <saklein@chromium.org>
* firmware_builder: exclude on-device tests from code-coveragePaul Fagerburg2021-02-181-7/+8
| | | | | | | | | | | | | | | | | | | When building host-based unit tests for code coverage, don't build the on-device unit tests. BUG=b:156895937 BRANCH=None TEST=Run firmware_builder.py with --code-coverage option. Verify that the 'test' command does not build unit tests for bloonchipper. Signed-off-by: Paul Fagerburg <pfagerburg@google.com> Change-Id: I5e4f49b4911529a42b08fa7cd041dccff2c7513c Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2702322 Commit-Queue: Paul Fagerburg <pfagerburg@chromium.org> Commit-Queue: LaMont Jones <lamontjones@chromium.org> Tested-by: Paul Fagerburg <pfagerburg@chromium.org> Reviewed-by: Sean McAllister <smcallis@google.com> Reviewed-by: LaMont Jones <lamontjones@chromium.org>
* firmware_builder: start creating FirmwareArtifactInfoLaMont Jones2021-02-101-15/+18
| | | | | | | | | | | | BUG=b:176926834, b:177907747 BRANCH=None TEST=manual Change-Id: I8728f45b6ece0c6e047439ed8b4b6e6b0d0e9e2e Signed-off-by: LaMont Jones <lamontjones@google.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2686259 Reviewed-by: Sean McAllister <smcallis@google.com> Tested-by: Sean McAllister <smcallis@google.com>
* firmware_builder: add --code-coverage optionPaul Fagerburg2021-02-061-3/+28
| | | | | | | | | | | | | | | | | | Added an option flag --code-coverage that will skip the build for EC hardware targets and build the tests with code coverage enabled. BUG=b:156895937 BRANCH=None TEST=Run firmware_builder.py with --code-coverage option. The 'build' command will do nothing, and the 'test' command will build the host- based unit test with code coverage. Signed-off-by: Paul Fagerburg <pfagerburg@google.com> Change-Id: Ie3786f574e490a5ba6806e518401842bda609e5f Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2678937 Tested-by: Paul Fagerburg <pfagerburg@chromium.org> Reviewed-by: LaMont Jones <lamontjones@chromium.org> Commit-Queue: Paul Fagerburg <pfagerburg@chromium.org>
* firmware_builder: add artifact bundlingKevin Shelton2021-02-051-3/+49
| | | | | | | | | | | | | | | | | | | | | Add a new command to bundle artifacts into an (optionally specified) directory and write associated metadata to an (optionally specified) file. BUG=b:176926834 BRANCH=none TEST=./firmware_builder.py --metrics=/tmp/metrics bundle, ./firmware_builder.py --output-dir=/tmp/testbundle --metrics=/tmp/metrics --metadata=/tmp/testmetadata bundle, inspected that the file utility reports a sample resultant artifact as bzip2 compressed data Signed-off-by: Kevin Shelton <kmshelton@chromium.org> Change-Id: Ic58fecd3e3d572acfa1798c0ab15a4c8c558f908 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2643803 Reviewed-by: LaMont Jones <lamontjones@chromium.org> Commit-Queue: LaMont Jones <lamontjones@chromium.org> Tested-by: LaMont Jones <lamontjones@chromium.org>
* firmware_builder: style cleanupKevin Shelton2021-02-011-4/+8
| | | | | | | | | | | | | | | Apply style conformance changes in preparation for logic changes (formatting changes programmatically applied via yapf). BUG=b:176926834 TEST=None BRANCH=None Change-Id: If5236c068bbefa765c47c81a8580d35a89aef6d9 Signed-off-by: Kevin Shelton <kmshelton@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2664766 Commit-Queue: LaMont Jones <lamontjones@chromium.org> Reviewed-by: LaMont Jones <lamontjones@chromium.org>
* firmware_builder: use check=True with subprocessesJack Rosenthal2020-12-171-9/+12
| | | | | | | | | | | | | | | A little easier to keep this clean (and more pythonic) with exceptions instead of returning error codes. BUG=b:175248887 BRANCH=none TEST=./firmware_builder.py build && ./firmware_builder.py test Signed-off-by: Jack Rosenthal <jrosenth@chromium.org> Change-Id: I3764aa5bf3125810e2cacbfc97d9b9d99f6b5aef Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2595809 Commit-Queue: Jett Rink <jettrink@chromium.org> Reviewed-by: Jett Rink <jettrink@chromium.org>
* firmware_builder: add hardware test buildsJett Rink2020-11-131-2/+13
| | | | | | | | | | | | | | | | | We were not building the hardware test images as part for the test step. This replicate functionality in the chromeos-ec ebuid (via cros-ec eclass). I put a note in that ebuild to update this script if there are any changes in the future. BRANCH=none BUG=chromium:1147953 TEST=verify that firmware_builder.py --metrics /tmp/m test failed the same was the cq-orchestrator failed Signed-off-by: Jett Rink <jettrink@chromium.org> Change-Id: I20937381da41d933261926d02d45b80d3920443b Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2535310 Reviewed-by: LaMont Jones <lamontjones@chromium.org>
* build: add firmware_builder.py entry pointJett Rink2020-10-011-0/+83
New ToT firmware builder will call firmware_builder.py to start the build process for FW. For EC, we need to call into out existing build system. To break up the build and test phases, we need to break out all of the build only steps out into a separate build target (buildall_only). BRANCH=none BUG=b:169178847 TEST=run `firmware_builder.py build` locally and see that it builds all EC images and also redirects stdout and stderror from sub command. TEST=chromite/api/contrib/call_scripts/firmware__build_all_tot_firmware run this script correctly. End-to-End tests. Signed-off-by: Jett Rink <jettrink@chromium.org> Change-Id: Idd039e686697ee88419e0e44aa3dc96d554b997d Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2424895 Commit-Queue: Jack Rosenthal <jrosenth@chromium.org> Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>