New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 855291 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Sep 25
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 1
Type: Feature

Blocked on:
issue 875509

Blocking:
issue 829522
issue 886944



Sign in to add a comment

Implement a TOT firmware builder for branches.

Project Member Reported by dgarr...@chromium.org, Jun 22 2018

Issue description

This is a tracking bug for implementing a solution based on this (not yet approved) design doc.

go/tot-for-firmware-branches
 
Cc: vpalatin@chromium.org
Cc: dgarr...@chromium.org vapier@chromium.org
 Issue 855067  has been merged into this issue.
Project Member

Comment 3 by bugdroid1@chromium.org, Jul 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/9626d3959de16fb5074fba902dd881761a2d3716

commit 9626d3959de16fb5074fba902dd881761a2d3716
Author: Don Garrett <dgarrett@google.com>
Date: Mon Jul 02 18:30:09 2018

generic_builders: Create generic_builder.ManifestVersionedBuilder.

Custom builders have been copy pasing boilerplate methods for
GetVersionInfo and GetSyncInstance. Create a generic base class for
them to use, and switch them all to it.

This is cleanup before creating another build class.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I3f490b1c76fc4c62c5171eda724c25042bbd749e
Reviewed-on: https://chromium-review.googlesource.com/1119659
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>

[modify] https://crrev.com/9626d3959de16fb5074fba902dd881761a2d3716/cbuildbot/builders/test_builders.py
[modify] https://crrev.com/9626d3959de16fb5074fba902dd881761a2d3716/cbuildbot/builders/generic_builders.py
[modify] https://crrev.com/9626d3959de16fb5074fba902dd881761a2d3716/cbuildbot/builders/infra_builders.py
[modify] https://crrev.com/9626d3959de16fb5074fba902dd881761a2d3716/cbuildbot/builders/clang_tidy_builders.py

Project Member

Comment 4 by bugdroid1@chromium.org, Jul 2

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/4df6a47763427fa1fffe38895a4c5df4093ce30d

commit 4df6a47763427fa1fffe38895a4c5df4093ce30d
Author: Chromite Chromium Autoroll <chromite-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Mon Jul 02 19:54:46 2018

Roll src/third_party/chromite a3230c43892e..9626d3959de1 (2 commits)

https://chromium.googlesource.com/chromiumos/chromite.git/+log/a3230c43892e..9626d3959de1


git log a3230c43892e..9626d3959de1 --date=short --no-merges --format='%ad %ae %s'
2018-07-02 dgarrett@google.com generic_builders: Create generic_builder.ManifestVersionedBuilder.
2018-07-02 dgarrett@google.com cros_sdk_lib: Make CleanupChrootMount delete consistent.


Created with:
  gclient setdep -r src/third_party/chromite@9626d3959de1

The AutoRoll server is located here: https://chromite-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



BUG= chromium:855291 ,chromium:None
TBR=chrome-os-gardeners@chromium.org

Change-Id: I5f0f13d6c8d6a33856b339607d10a933f3517d97
Reviewed-on: https://chromium-review.googlesource.com/1123076
Reviewed-by: Chromite Chromium Autoroll <chromite-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: Chromite Chromium Autoroll <chromite-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#571976}
[modify] https://crrev.com/4df6a47763427fa1fffe38895a4c5df4093ce30d/DEPS

Project Member

Comment 5 by bugdroid1@chromium.org, Jul 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/315c928e10abb312a0485e0798c0741bda99d9f0

commit 315c928e10abb312a0485e0798c0741bda99d9f0
Author: Don Garrett <dgarrett@google.com>
Date: Fri Jul 06 08:18:30 2018

firmwarebranch: Create skeleton firmware branch builder.

This creates a non-functional version of the firmware branch build
concept that can be used to run tryjobs against later CLs.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I1f7817043481b307e24938cc4ef7a3c34ec6adb3
Reviewed-on: https://chromium-review.googlesource.com/1119660
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>

[modify] https://crrev.com/315c928e10abb312a0485e0798c0741bda99d9f0/config/chromeos_config.py
[add] https://crrev.com/315c928e10abb312a0485e0798c0741bda99d9f0/cbuildbot/stages/workspace_stages.py
[modify] https://crrev.com/315c928e10abb312a0485e0798c0741bda99d9f0/config/config_dump.json
[add] https://crrev.com/315c928e10abb312a0485e0798c0741bda99d9f0/cbuildbot/builders/firmware_builders.py
[modify] https://crrev.com/315c928e10abb312a0485e0798c0741bda99d9f0/config/waterfall_layout_dump.txt

Project Member

Comment 6 by bugdroid1@chromium.org, Jul 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/725098b880c776ddfcc784c4d72e4e13daddb7c0

commit 725098b880c776ddfcc784c4d72e4e13daddb7c0
Author: Don Garrett <dgarrett@google.com>
Date: Fri Jul 06 08:18:28 2018

test_builders: Remove test_builders.ManifestVersionedSyncBuilder.

This builder class is only used by sync_stages_unittest, and is
basically the same as success-builder. Keep the same config name, but
use the SuccessBuilder class instead.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I08906e554c24038a7745b4429bd448c775c7dd42
Reviewed-on: https://chromium-review.googlesource.com/1121553
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/725098b880c776ddfcc784c4d72e4e13daddb7c0/config/chromeos_config.py
[modify] https://crrev.com/725098b880c776ddfcc784c4d72e4e13daddb7c0/config/waterfall_layout_dump.txt
[modify] https://crrev.com/725098b880c776ddfcc784c4d72e4e13daddb7c0/config/config_dump.json
[modify] https://crrev.com/725098b880c776ddfcc784c4d72e4e13daddb7c0/cbuildbot/builders/test_builders.py

Project Member

Comment 7 by bugdroid1@chromium.org, Jul 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/10210fa6f35b6973cafd77ce797fae332d8896ca

commit 10210fa6f35b6973cafd77ce797fae332d8896ca
Author: Don Garrett <dgarrett@google.com>
Date: Fri Jul 06 08:18:31 2018

cbuildbot: Add --workspace command line argument.

Add a new command line argument for defining the "workspace"
directory, and wire it into the firmwarebranch builder class.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I2c3e90997262adfcec8ac614ff1e42a12f398a02
Reviewed-on: https://chromium-review.googlesource.com/1121618
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/10210fa6f35b6973cafd77ce797fae332d8896ca/scripts/cbuildbot.py
[modify] https://crrev.com/10210fa6f35b6973cafd77ce797fae332d8896ca/lib/constants.py
[modify] https://crrev.com/10210fa6f35b6973cafd77ce797fae332d8896ca/cbuildbot/builders/firmware_builders.py

Project Member

Comment 8 by bugdroid1@chromium.org, Jul 6

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/37141b1b73f5ec54a259ccb0e5cc5b632fb7be60

commit 37141b1b73f5ec54a259ccb0e5cc5b632fb7be60
Author: Chromite Chromium Autoroll <chromite-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Date: Fri Jul 06 09:43:49 2018

Roll src/third_party/chromite f3dacdb5a2e8..10210fa6f35b (3 commits)

https://chromium.googlesource.com/chromiumos/chromite.git/+log/f3dacdb5a2e8..10210fa6f35b


git log f3dacdb5a2e8..10210fa6f35b --date=short --no-merges --format='%ad %ae %s'
2018-07-06 dgarrett@google.com cbuildbot: Add --workspace command line argument.
2018-07-06 dgarrett@google.com firmwarebranch: Create skeleton firmware branch builder.
2018-07-06 dgarrett@google.com test_builders: Remove test_builders.ManifestVersionedSyncBuilder.


Created with:
  gclient setdep -r src/third_party/chromite@10210fa6f35b

The AutoRoll server is located here: https://chromite-chromium-roll.skia.org

Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+/master/autoroll/README.md

If the roll is causing failures, please contact the current sheriff, who should
be CC'd on the roll, and stop the roller if necessary.



BUG= chromium:855291 , chromium:855291 , chromium:855291 
TBR=chrome-os-gardeners@chromium.org

Change-Id: I7d7602861e5fefcff6b58a334c1759b1a145b9d7
Reviewed-on: https://chromium-review.googlesource.com/1127325
Reviewed-by: Chromite Chromium Autoroll <chromite-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Commit-Queue: Chromite Chromium Autoroll <chromite-chromium-autoroll@skia-buildbots.google.com.iam.gserviceaccount.com>
Cr-Commit-Position: refs/heads/master@{#572925}
[modify] https://crrev.com/37141b1b73f5ec54a259ccb0e5cc5b632fb7be60/DEPS

Project Member

Comment 9 by bugdroid1@chromium.org, Jul 11

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/b497f557aae99a3fad0db1f0adbd75ce143822a5

commit b497f557aae99a3fad0db1f0adbd75ce143822a5
Author: Don Garrett <dgarrett@google.com>
Date: Wed Jul 11 19:13:24 2018

cbuildbot_launch: Pass --workspace to cbuildbot.

Add a new 'workspace' directory to the cbuildbot_launch owned
directory layout which is passed to cbuildbot. This location is NOT
cleaned, or sync'd, even garanteed to exist, only to be a valid path
outside the cbuildbot's buildroot.

BUG= chromium:855291 
TEST=cros tryjob --local success-build

Change-Id: I680ad1cfd3e06beea71faa99407a27a0b7bd800b
Reviewed-on: https://chromium-review.googlesource.com/1130549
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Jason Clinton <jclinton@chromium.org>

[modify] https://crrev.com/b497f557aae99a3fad0db1f0adbd75ce143822a5/scripts/cbuildbot_launch.py
[modify] https://crrev.com/b497f557aae99a3fad0db1f0adbd75ce143822a5/scripts/cbuildbot_launch_unittest.py

Project Member

Comment 10 by bugdroid1@chromium.org, Jul 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/25fb576a3ccd21459dda7b9ac4dd203e632cdcb9

commit 25fb576a3ccd21459dda7b9ac4dd203e632cdcb9
Author: Don Garrett <dgarrett@google.com>
Date: Fri Jul 20 03:13:01 2018

config_lib: Add workspace_branch option.

Create a new config option to specify which branch to checkout into
the workspace directory.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I15b8d09bdc06876d050a2b91750bc3a8ea849912
Reviewed-on: https://chromium-review.googlesource.com/1142494
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/25fb576a3ccd21459dda7b9ac4dd203e632cdcb9/config/chromeos_config.py
[modify] https://crrev.com/25fb576a3ccd21459dda7b9ac4dd203e632cdcb9/config/config_dump.json
[modify] https://crrev.com/25fb576a3ccd21459dda7b9ac4dd203e632cdcb9/lib/config_lib.py

Project Member

Comment 11 by bugdroid1@chromium.org, Jul 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/fa82d8aafde72d7d249d2c74edd78e27028ba1b7

commit fa82d8aafde72d7d249d2c74edd78e27028ba1b7
Author: Don Garrett <dgarrett@google.com>
Date: Fri Jul 20 18:41:04 2018

workspace_stages: Add clean/sync implementations.

Add implementations for the clean and sync stages. These are still
preliminary, but should be functional.

BUG= chromium:855291 
TEST=run_tests
     cros tryjob --local prototype-firmware -g 1123262

Change-Id: Ic7d487a81d1dbb851f23135cf0e0455a184f1613
Reviewed-on: https://chromium-review.googlesource.com/1142495
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/fa82d8aafde72d7d249d2c74edd78e27028ba1b7/cbuildbot/stages/workspace_stages.py
[modify] https://crrev.com/fa82d8aafde72d7d249d2c74edd78e27028ba1b7/cbuildbot/builders/firmware_builders.py

Project Member

Comment 12 by bugdroid1@chromium.org, Jul 26

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/e99f57f96ba3fd93cf2c405fb8562b8c9caa7ff1

commit e99f57f96ba3fd93cf2c405fb8562b8c9caa7ff1
Author: Don Garrett <dgarrett@google.com>
Date: Thu Jul 26 02:45:30 2018

workspace_stages: Create more Workspace stages.

This tweaks the standard generic_stages.BuilderStage so that build
root can be modified on a per-stage basis, allowing most stages to be
run directly against a workspace checkout.

It also defines new WorkspaceSetupBoardStage and
WorkspaceBuildPackageStages which are copy/paste/simplified versions
of the standard stages.

The simplification is required, because they are running src/scripts
commands from the workspace, which do not support all behaviors from
TOT.

BUG= chromium:855291 
TEST=run_tests
     cros tryjob --local prototype-firmware -g XXX

Change-Id: I533a1c9ea14f6e51bf2606fb28535456487593c5
Reviewed-on: https://chromium-review.googlesource.com/1142496
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/e99f57f96ba3fd93cf2c405fb8562b8c9caa7ff1/cbuildbot/stages/workspace_stages.py
[modify] https://crrev.com/e99f57f96ba3fd93cf2c405fb8562b8c9caa7ff1/cbuildbot/stages/generic_stages.py
[modify] https://crrev.com/e99f57f96ba3fd93cf2c405fb8562b8c9caa7ff1/cbuildbot/builders/firmware_builders.py

Project Member

Comment 13 by bugdroid1@chromium.org, Jul 26

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/52660b68f115ab68c31b1170f5d77bc4e2dde022

commit 52660b68f115ab68c31b1170f5d77bc4e2dde022
Author: Don Garrett <dgarrett@google.com>
Date: Thu Jul 26 15:23:57 2018

prototype-firmwarebranch: Switch to standard firmware configs.

Import standard firmware settings into prototype-firmwarebranch. This
will adjust behavior for all boards built in the workspace.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I9f23497743c61204bc45eb6460c17994adafc4e0
Reviewed-on: https://chromium-review.googlesource.com/1150512
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Dhanya Ganesh <dhanyaganesh@google.com>
Reviewed-by: Don Garrett <dgarrett@chromium.org>

[modify] https://crrev.com/52660b68f115ab68c31b1170f5d77bc4e2dde022/config/chromeos_config.py
[modify] https://crrev.com/52660b68f115ab68c31b1170f5d77bc4e2dde022/config/config_dump.json

Just a status dump.

After https://crrev.com/c/1152497 lands...


The build exists and can checkout the firmware branch into a secondary location, build it, and publish the firmware tar bundle.

Remaining work:

1) Bump/publish branch revision number.
2) Publish manifest for revision number.
3) Publish ebuild uprevs (no binary prebuilts currently planned)
4) Improve efficiency of workspace sync.
5) Publish metadata.json in per-board build results.
6) Issue necessary signing requests (requirements still unclear).
7) Unittests for almost all new code.
Project Member

Comment 16 by bugdroid1@chromium.org, Jul 28

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/225d53fe5c7ea3279c186df2cf19c7dbdd149aff

commit 225d53fe5c7ea3279c186df2cf19c7dbdd149aff
Author: Don Garrett <dgarrett@google.com>
Date: Sat Jul 28 02:11:17 2018

prototype-firmwarebranch: Create/publish artifacts.

This further extends the prototype-firmwarebranch builder. The builder
can now build and publish the firmware_from_source.tar.bz2 artifact
for all boards listed in the build configuration.

There is still significant work left to finish out the builder, but
this proves out the ability to checkout and build on a different
branch.

BUG= chromium:855291 
TEST=Tryjobs

Change-Id: Ifccf8487a5d77518c8da620d6878a9a8b3238a47
Reviewed-on: https://chromium-review.googlesource.com/1152497
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[add] https://crrev.com/225d53fe5c7ea3279c186df2cf19c7dbdd149aff/cbuildbot/stages/firmware_stages.py
[modify] https://crrev.com/225d53fe5c7ea3279c186df2cf19c7dbdd149aff/lib/constants.py
[modify] https://crrev.com/225d53fe5c7ea3279c186df2cf19c7dbdd149aff/cbuildbot/builders/firmware_builders.py
[modify] https://crrev.com/225d53fe5c7ea3279c186df2cf19c7dbdd149aff/cbuildbot/commands.py
[modify] https://crrev.com/225d53fe5c7ea3279c186df2cf19c7dbdd149aff/cbuildbot/stages/workspace_stages.py

Project Member

Comment 17 by bugdroid1@chromium.org, Aug 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/adf0f76c9ca4aadc0df827f5bd898d885052316a

commit adf0f76c9ca4aadc0df827f5bd898d885052316a
Author: Don Garrett <dgarrett@google.com>
Date: Fri Aug 03 00:58:45 2018

workspace: Use a reference repo if available.

When initializing a checkout, use the current repo as a reference when
possible.

This should help with local tryjobs, and when initialing workspaces
for builds.

BUG= chromium:855291 
TEST=cbuildbot_launch manual testing + unittests.
     workspace stages via firmware branch tryjobs.

Change-Id: Idaa76d0caa4c6a545023228a3a5b74842afdc416
Reviewed-on: https://chromium-review.googlesource.com/1153550
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/adf0f76c9ca4aadc0df827f5bd898d885052316a/cbuildbot/stages/workspace_stages.py
[modify] https://crrev.com/adf0f76c9ca4aadc0df827f5bd898d885052316a/scripts/cbuildbot_launch.py
[modify] https://crrev.com/adf0f76c9ca4aadc0df827f5bd898d885052316a/scripts/cbuildbot_launch_unittest.py

Project Member

Comment 18 by bugdroid1@chromium.org, Aug 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/3387250e88bcab66560b91684c78c10b137d3f98

commit 3387250e88bcab66560b91684c78c10b137d3f98
Author: Don Garrett <dgarrett@chromium.org>
Date: Fri Aug 03 22:31:02 2018

Revert "workspace: Use a reference repo if available."

This reverts commit adf0f76c9ca4aadc0df827f5bd898d885052316a.

Reason for revert: It's more fragile and dangerous than I thought it was.

Original change's description:
> workspace: Use a reference repo if available.
> 
> When initializing a checkout, use the current repo as a reference when
> possible.
> 
> This should help with local tryjobs, and when initialing workspaces
> for builds.
> 
> BUG= chromium:855291 
> TEST=cbuildbot_launch manual testing + unittests.
>      workspace stages via firmware branch tryjobs.
> 
> Change-Id: Idaa76d0caa4c6a545023228a3a5b74842afdc416
> Reviewed-on: https://chromium-review.googlesource.com/1153550
> Commit-Ready: Don Garrett <dgarrett@chromium.org>
> Tested-by: Don Garrett <dgarrett@chromium.org>
> Reviewed-by: Lann Martin <lannm@chromium.org>

Bug:  chromium:855291 
Change-Id: I1bf2e4bd6a27e4bb30bcfadb223a97f8cc5eb777
Reviewed-on: https://chromium-review.googlesource.com/1162482
Reviewed-by: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>

[modify] https://crrev.com/3387250e88bcab66560b91684c78c10b137d3f98/cbuildbot/stages/workspace_stages.py
[modify] https://crrev.com/3387250e88bcab66560b91684c78c10b137d3f98/scripts/cbuildbot_launch.py
[modify] https://crrev.com/3387250e88bcab66560b91684c78c10b137d3f98/scripts/cbuildbot_launch_unittest.py

Project Member

Comment 19 by bugdroid1@chromium.org, Aug 7

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/06a50f7eab7c303fc962adbadc4e99a9208b83ae

commit 06a50f7eab7c303fc962adbadc4e99a9208b83ae
Author: Don Garrett <dgarrett@google.com>
Date: Tue Aug 07 00:18:00 2018

prototype-firmwarebranch: Create branched metadata.json.

Add metadata.json to the per-board "dummy" firmware build archive.

BUG= chromium:855291 
TEST=Tryjobs

Change-Id: Ief7315773020cd4795b8003985be567302e84bdc
Reviewed-on: https://chromium-review.googlesource.com/1159724
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/06a50f7eab7c303fc962adbadc4e99a9208b83ae/cbuildbot/stages/firmware_stages.py
[modify] https://crrev.com/06a50f7eab7c303fc962adbadc4e99a9208b83ae/cbuildbot/builders/firmware_builders.py

Remaining work:

1) Bump/publish branch revision number.
2) Publish manifest for revision number.
3) Publish ebuild uprevs (no binary prebuilts currently planned)
4) Improve efficiency of workspace sync.
5) Issue necessary signing requests (requirements still unclear).
Project Member

Comment 21 by bugdroid1@chromium.org, Aug 8

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/1241c4e94ff3371acc0fff96635c1a7b09279125

commit 1241c4e94ff3371acc0fff96635c1a7b09279125
Author: Don Garrett <dgarrett@google.com>
Date: Wed Aug 08 01:08:58 2018

repository: Create PreLoad helper.

Create a new helper method that attempts to populate a new repository
checkout with information from the current repository checkout.

Use this helper in cbuildbot_launch to help with local tryjobs, and
with workspaces. In both cases, this should speed up an expensive cold
checkout (and reduce GoB quota usage).

This PreLoad looks like something that should be use as part of Sync,
but must instead be done before we clean the target tree, since the
source repository may not be in a safe state when copied.

The intial copy currently takes about 7 minutes on my workstation. It
might be possible to speed this up by using native copy tools or
links. I'm hesitate to use any form of link, since that might allow
change to the new repositgory to propogate back to the original
repository.

BUG= chromium:855291 
TEST=sudo rm -rf ~/sand/tryjob && cros tryjob --local success-build.

Change-Id: I901a7bc9f5349f408562b1c2a632d760a301cebc
Reviewed-on: https://chromium-review.googlesource.com/1164558
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/1241c4e94ff3371acc0fff96635c1a7b09279125/cbuildbot/repository.py
[modify] https://crrev.com/1241c4e94ff3371acc0fff96635c1a7b09279125/scripts/cbuildbot_launch.py
[modify] https://crrev.com/1241c4e94ff3371acc0fff96635c1a7b09279125/cbuildbot/stages/workspace_stages.py

Project Member

Comment 22 by bugdroid1@chromium.org, Aug 13

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/8405a1536d36eba77f27fdcfd36af770d6b1dd5d

commit 8405a1536d36eba77f27fdcfd36af770d6b1dd5d
Author: Don Garrett <dgarrett@google.com>
Date: Mon Aug 13 18:13:35 2018

chromeos_config: Leave push_overlays enabled on tryjobs.

Tryjobs set 'debug' which causes push_overlays to run with dryrun
enabled. That means it's safe to run push_overlays stages on
tryjobs. It's also really useful, if you are trying to test
push_overlays.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I6663e26a69abeec35037e2bf96a6f2eeb795f3cb
Reviewed-on: https://chromium-review.googlesource.com/1171373
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/8405a1536d36eba77f27fdcfd36af770d6b1dd5d/config/chromeos_config.py
[modify] https://crrev.com/8405a1536d36eba77f27fdcfd36af770d6b1dd5d/config/config_dump.json
[modify] https://crrev.com/8405a1536d36eba77f27fdcfd36af770d6b1dd5d/config/chromeos_config_unittest.py

Project Member

Comment 23 by bugdroid1@chromium.org, Aug 15

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/9446a6cf02ac53dead089104096f8a554cfe97fc

commit 9446a6cf02ac53dead089104096f8a554cfe97fc
Author: Don Garrett <dgarrett@google.com>
Date: Wed Aug 15 23:37:17 2018

prototype-firmwarebranch: Publish ebuild uprevs.

Create the new stage WorkspaceUprevAndPublishStage which uprevs and
pushes them right away. Adjust the prototype-firmwarebranch builder to
use it, and tweak the commands functions to support workspace
checkouts.

BUG= chromium:855291 
TEST=run_tests + tryjob.

Change-Id: I55ec47b4300b505d2e64d9c0d8c847566abf9609
Reviewed-on: https://chromium-review.googlesource.com/1166330
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>
Reviewed-by: Mike Nichols <mikenichols@chromium.org>

[modify] https://crrev.com/9446a6cf02ac53dead089104096f8a554cfe97fc/config/chromeos_config.py
[modify] https://crrev.com/9446a6cf02ac53dead089104096f8a554cfe97fc/cbuildbot/stages/workspace_stages.py
[modify] https://crrev.com/9446a6cf02ac53dead089104096f8a554cfe97fc/config/config_dump.json
[modify] https://crrev.com/9446a6cf02ac53dead089104096f8a554cfe97fc/cbuildbot/builders/firmware_builders.py
[modify] https://crrev.com/9446a6cf02ac53dead089104096f8a554cfe97fc/cbuildbot/commands.py

Labels: -Type-Bug Type-Feature
Project Member

Comment 25 by bugdroid1@chromium.org, Aug 30

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/3cf5f9a4e95d6be2ca846276147e3bcc81e45bc8

commit 3cf5f9a4e95d6be2ca846276147e3bcc81e45bc8
Author: Don Garrett <dgarrett@google.com>
Date: Thu Aug 30 16:53:04 2018

push_image: Make --buildroot adjustable.

Allow buildroot pushed from to be different from the buildroot
containing push_image. Default to using the same buildroot.

BUG= chromium:855291 
TEST=run_tests

Change-Id: Ia5db9a34a58c313611cc1e93e2d65cfdfe6e306a
Reviewed-on: https://chromium-review.googlesource.com/1179261
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Don Garrett <dgarrett@chromium.org>

[modify] https://crrev.com/3cf5f9a4e95d6be2ca846276147e3bcc81e45bc8/scripts/pushimage.py
[modify] https://crrev.com/3cf5f9a4e95d6be2ca846276147e3bcc81e45bc8/cbuildbot/commands.py
[modify] https://crrev.com/3cf5f9a4e95d6be2ca846276147e3bcc81e45bc8/lib/signing.py
[modify] https://crrev.com/3cf5f9a4e95d6be2ca846276147e3bcc81e45bc8/scripts/pushimage_unittest.py

Project Member

Comment 26 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/2270951255700c210aee075f6f6359a2534d0c01

commit 2270951255700c210aee075f6f6359a2534d0c01
Author: Don Garrett <dgarrett@google.com>
Date: Mon Sep 03 09:20:48 2018

firmware_stages: Run pushimage against board firmware artifacts.

This allows firmware artifacts to be signed and 'released'.

BUG= chromium:855291 
TEST=Local tryjob

Change-Id: I98275a20c3c2087efdde77b24c09b7cc66e1ef1d
Reviewed-on: https://chromium-review.googlesource.com/1176723
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/2270951255700c210aee075f6f6359a2534d0c01/cbuildbot/stages/firmware_stages.py

Project Member

Comment 27 by bugdroid1@chromium.org, Sep 3

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/d1e452f270c2d861465a65c6346d8a27b8ad38c4

commit d1e452f270c2d861465a65c6346d8a27b8ad38c4
Author: Don Garrett <dgarrett@google.com>
Date: Mon Sep 03 09:20:46 2018

manifest_versions: Add buildspec creation helpers.

Add several helper methods for generating and publishing new
buildspecs. These are intended to replace part of the functionality of
the BuildSpecsManager class without being tightly integrated with
cbuildbot Sync stages.

These functions are able to increment the ChromeOS version number and
publish a matching buildspec (pinned manifest) in the standard way, or
to publish a buildspec "candidate" in the way that master builders
currently use to pass to slave builders.

New methods:
  OfficialBuildSpecPath
  CandidateBuildSpecPath
  PopulateAndPublishBuildSpec
  GenerateAndPublishOfficialAndBuildSpec
  GenerateAndPublishReleaseCandidateBuildSpec

These methods are initially intended to allow workspace based builds
to increment and publish buildspecs from the workspace checkout.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I6701425358b84d4f03d6c61315315960bff93ae3
Reviewed-on: https://chromium-review.googlesource.com/1186150
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/d1e452f270c2d861465a65c6346d8a27b8ad38c4/cbuildbot/manifest_version.py
[modify] https://crrev.com/d1e452f270c2d861465a65c6346d8a27b8ad38c4/cbuildbot/manifest_version_unittest.py

Project Member

Comment 28 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/d38c84de1ba54a4ff611c5f48b542642c6fb0232

commit d38c84de1ba54a4ff611c5f48b542642c6fb0232
Author: Don Garrett <dgarrett@google.com>
Date: Tue Sep 04 11:20:58 2018

workspaces: Refactor branch config, and Repo creation.

Create a GetWorkspaceRepo() helper function, and remove explict
workspace_branch arguments in favor of directly using
self._run.config.workspace_branch.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I8405ffc54d70a01acddbb612eb0b75e30865a8b0
Reviewed-on: https://chromium-review.googlesource.com/1188986
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/d38c84de1ba54a4ff611c5f48b542642c6fb0232/cbuildbot/stages/firmware_stages.py
[modify] https://crrev.com/d38c84de1ba54a4ff611c5f48b542642c6fb0232/cbuildbot/builders/firmware_builders.py
[modify] https://crrev.com/d38c84de1ba54a4ff611c5f48b542642c6fb0232/cbuildbot/stages/workspace_stages.py

Project Member

Comment 29 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/d38c84de1ba54a4ff611c5f48b542642c6fb0232

commit d38c84de1ba54a4ff611c5f48b542642c6fb0232
Author: Don Garrett <dgarrett@google.com>
Date: Tue Sep 04 11:20:58 2018

workspaces: Refactor branch config, and Repo creation.

Create a GetWorkspaceRepo() helper function, and remove explict
workspace_branch arguments in favor of directly using
self._run.config.workspace_branch.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I8405ffc54d70a01acddbb612eb0b75e30865a8b0
Reviewed-on: https://chromium-review.googlesource.com/1188986
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/d38c84de1ba54a4ff611c5f48b542642c6fb0232/cbuildbot/stages/firmware_stages.py
[modify] https://crrev.com/d38c84de1ba54a4ff611c5f48b542642c6fb0232/cbuildbot/builders/firmware_builders.py
[modify] https://crrev.com/d38c84de1ba54a4ff611c5f48b542642c6fb0232/cbuildbot/stages/workspace_stages.py

Project Member

Comment 30 by bugdroid1@chromium.org, Sep 4

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/d38c84de1ba54a4ff611c5f48b542642c6fb0232

commit d38c84de1ba54a4ff611c5f48b542642c6fb0232
Author: Don Garrett <dgarrett@google.com>
Date: Tue Sep 04 11:20:58 2018

workspaces: Refactor branch config, and Repo creation.

Create a GetWorkspaceRepo() helper function, and remove explict
workspace_branch arguments in favor of directly using
self._run.config.workspace_branch.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I8405ffc54d70a01acddbb612eb0b75e30865a8b0
Reviewed-on: https://chromium-review.googlesource.com/1188986
Commit-Ready: Mike Frysinger <vapier@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/d38c84de1ba54a4ff611c5f48b542642c6fb0232/cbuildbot/stages/firmware_stages.py
[modify] https://crrev.com/d38c84de1ba54a4ff611c5f48b542642c6fb0232/cbuildbot/builders/firmware_builders.py
[modify] https://crrev.com/d38c84de1ba54a4ff611c5f48b542642c6fb0232/cbuildbot/stages/workspace_stages.py

Project Member

Comment 31 by bugdroid1@chromium.org, Sep 5

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/f23b4ab8b8898f205b65302279c1937bdb2b5674

commit f23b4ab8b8898f205b65302279c1937bdb2b5674
Author: Don Garrett <dgarrett@google.com>
Date: Wed Sep 05 23:11:18 2018

workspace_stage: Add WorkspacePublishBuildspecStage.

This stage can increment the ChromeOS version, and publish an official
buildspec to match.

This is the last major feature needed for firmwarebranch builders.

BUG= chromium:855291 
TEST=run_tests (NOT cros tryjob, which is needed)

Change-Id: Id3b14536c92eeab9bf44c2e4eeb87116eff7eb54
Reviewed-on: https://chromium-review.googlesource.com/1188987
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/f23b4ab8b8898f205b65302279c1937bdb2b5674/cbuildbot/stages/workspace_stages.py
[modify] https://crrev.com/f23b4ab8b8898f205b65302279c1937bdb2b5674/cbuildbot/builders/firmware_builders.py

Blockedon: 875509
Project Member

Comment 33 by bugdroid1@chromium.org, Sep 17

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/e54fc72e0c90eccdcaef20371af38e36e660118d

commit e54fc72e0c90eccdcaef20371af38e36e660118d
Author: Don Garrett <dgarrett@google.com>
Date: Mon Sep 17 20:18:03 2018

manifest_version: Add logging to version/buildspec updates.

Current builds don't always log the new version files that are
generated or published, or new buildspecs that are generated and
published, so add some additional logging messages.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I50d54e572fd2b2adbb969f0379ea2853d9e76783
Reviewed-on: https://chromium-review.googlesource.com/1226182
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/e54fc72e0c90eccdcaef20371af38e36e660118d/cbuildbot/manifest_version.py

Blocking: 829522
Blocking: 886944
I found a bug.

That build "published" buildspec "buildspecs/66/10431.78.0.xml", but that buildspec does not appear in manifest-versions or in manifest-versions-internal.
Project Member

Comment 38 by bugdroid1@chromium.org, Sep 20

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/6dd0074561b786e22ce16b1e2233f6bef47b850a

commit 6dd0074561b786e22ce16b1e2233f6bef47b850a
Author: Don Garrett <dgarrett@google.com>
Date: Thu Sep 20 18:39:51 2018

manifest_version: Commit new buildspecs.

The _CommitAndPush helper function wasn't actually committing, only
pushing non-existant new changes. So... add commit logic.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I0abc9f326c2a2f0631d0d182b13a71e6fe9a27dd
Reviewed-on: https://chromium-review.googlesource.com/1234814
Commit-Ready: Don Garrett <dgarrett@chromium.org>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/6dd0074561b786e22ce16b1e2233f6bef47b850a/cbuildbot/stages/workspace_stages.py
[modify] https://crrev.com/6dd0074561b786e22ce16b1e2233f6bef47b850a/cbuildbot/manifest_version.py

Status: Fixed (was: Started)
There is further improvement work to be done, but calling this fixed.
Project Member

Comment 40 by bugdroid1@chromium.org, Sep 26

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/ffad9d9f38b6b2f7e2b4ed66d25c9e0f291b192a

commit ffad9d9f38b6b2f7e2b4ed66d25c9e0f291b192a
Author: Don Garrett <dgarrett@google.com>
Date: Wed Sep 26 03:40:47 2018

WorkspacePublishBuildspec: Stage message with buildspec.

Add a message to the stage logging for Legoland and Milo that clearly
shows the buildspec generated and published (or if it wasn't
published).

BUG= chromium:855291 
TEST=run_tests

Change-Id: I26e23822d5fe714ac1eaaf3c7d7ba371a913ac0a
Reviewed-on: https://chromium-review.googlesource.com/1238949
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/ffad9d9f38b6b2f7e2b4ed66d25c9e0f291b192a/cbuildbot/stages/workspace_stages.py
[modify] https://crrev.com/ffad9d9f38b6b2f7e2b4ed66d25c9e0f291b192a/cbuildbot/manifest_version.py

Project Member

Comment 41 by bugdroid1@chromium.org, Sep 26

The following revision refers to this bug:
  https://chromium.googlesource.com/chromiumos/chromite/+/a7d65bfae5869007b0edf5c41a29a5a60e6455db

commit a7d65bfae5869007b0edf5c41a29a5a60e6455db
Author: Don Garrett <dgarrett@google.com>
Date: Wed Sep 26 03:40:48 2018

FirmwareArchiveStage: List version in link.

List the firmware version generated in the link to the firmware
artifacts.

BUG= chromium:855291 
TEST=run_tests

Change-Id: I63af90a4c4b1e7082bd99ee75230b2e24ab73acf
Reviewed-on: https://chromium-review.googlesource.com/1238950
Commit-Ready: ChromeOS CL Exonerator Bot <chromiumos-cl-exonerator@appspot.gserviceaccount.com>
Tested-by: Don Garrett <dgarrett@chromium.org>
Reviewed-by: Lann Martin <lannm@chromium.org>

[modify] https://crrev.com/a7d65bfae5869007b0edf5c41a29a5a60e6455db/cbuildbot/stages/firmware_stages.py

Sign in to add a comment