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

Issue 767615 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Sep 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature



Sign in to add a comment

find continuous build by revision

Project Member Reported by no...@chromium.org, Sep 21 2017

Issue description

scheduler now listens to gitiles and schedules builds with revision specified. Currently revision is not among tags, so one cannot find a build by a revision.

If a continuous build triggers another one (Builder triggers Tester), it should propagate the revision pin and the triggered build should be findable the same way. 

by convention [1] buildset tag is used to group related builds. A set of builds with the same revision pin, potentially belonging to different builders, seem to match this concept well enough. Moreover build search by buildset is optimized internally.

Proposal: make luci-scheduler specify absolute revision as "buildset" tag.

For gitiles, the value can be "commit/gitiles/<gitiles URL without schema>", so e.g. for
https://luci-scheduler.appspot.com/jobs/fuchsia/garnet-aarch64-linux-debug/9133238153988456800
it would be
"commit/gitiles/fuchsia.googlesource.com/garnet/+/4df187af36385299a31a95aa88618f72a35f14a6"

Note that other examples of buildset conventions are
- patch/rietveld/<hostname>/<issue_id>/<patchset_id>
- patch/gerrit/<hostname>/<numeric_change_id>/<numeric_patch_number>

[1]: https://chromium.googlesource.com/infra/infra/+/master/appengine/cr-buildbucket/doc/index.md#buildset-tag
 
I like this idea very much! One caveat: do we want to distinguish branches?

- git hash on two branches still points the to the same tree
+ however, recipes controlling the build may do different things for different branches.

WDYT?

Comment 2 by no...@chromium.org, Sep 21 2017

do we have an example of "recipes controlling the build may do different things for different branches"?

Owner: tandrii@chromium.org
Status: Started (was: Untriaged)
no example, but I recall intents to do this for branch-heads in chromium and v8. One rational for doing so was to upload artifacts only on release branches.

In any case, filtering by buildset tag followed by filtering by branch (from parameters_json), will be totally efficient in those projects who care. So, I'm going with the original proposal.

Comment 4 by no...@chromium.org, Sep 21 2017

we could add branch as a tag too. Then if someone wants to filter by branch too, then can do so. Others will receive builds for all branches (for a given revision)
I've added s/branch/ref tag instead.

Comment 6 by no...@chromium.org, Sep 21 2017

maybe gitiles_ref? or git_ref? there are cipd refs and someone else may use ref for something else
Changed to gitiles_ref. CL //chromium-review.googlesource.com/#/c/infra/luci/luci-go/+/677784
Project Member

Comment 8 by bugdroid1@chromium.org, Sep 22 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/luci/luci-go.git/+/b7a757f457487cd5cfe2dae83f65c5bc10e288b7

commit b7a757f457487cd5cfe2dae83f65c5bc10e288b7
Author: Andrii Shyshkalov <tandrii@chromium.org>
Date: Fri Sep 22 19:31:49 2017

scheduler: set buildset tag on gitiles-triggered buildbucket builds.

R=nodir@chromium.org, vadimsh@chromium.org

Bug:  767615 
Change-Id: I8c90d7bbf1e744c68d91e9b23e9fdc8838a87f48
Reviewed-on: https://chromium-review.googlesource.com/677784
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Nodir Turakulov <nodir@chromium.org>

[modify] https://crrev.com/b7a757f457487cd5cfe2dae83f65c5bc10e288b7/scheduler/appengine/task/buildbucket/buildbucket.go
[modify] https://crrev.com/b7a757f457487cd5cfe2dae83f65c5bc10e288b7/scheduler/appengine/task/buildbucket/buildbucket_test.go

Status: Fixed (was: Started)
Deployed to prod @2078-b7a757f

Comment 11 by no...@chromium.org, Sep 22 2017

awesome

Sign in to add a comment