blob: ce5c870c2e0f6fbc807a4dc6b3235ba7fbb92f5a [file] [log] [blame]
// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
syntax = "proto3";
package recipe_modules.fuchsia.checkout;
import "go.chromium.org/luci/buildbucket/proto/common.proto";
message InputProperties {
// Gitiles commit to checkout. This will replace the gitiles_commit in
// `api.buildbucket.build.input`.
//
// This will be set in the case that the build input commit is tracking a
// different repo than the one we want to checkout (as in the fuchsia builds
// launched by the toolchain recipes).
buildbucket.v2.GitilesCommit gitiles_commit = 1;
// Whether to respect a Gitiles commit when set alongside a Gerrit change.
bool respect_gitiles_commit_with_gerrit_change = 2;
// Whether to cherry-pick patches.
//
// By default (when this property is false), applying a Git commit from a
// Gerrit CL to a checkout will be done using "git rebase". When this
// property is true, this will instead be done using "git cherry-pick".
//
// Enabling this flag is useful for applying a commit onto an older
// revision. Rebasing does not work for the use case of applying a commit
// based on a newer revision R2 to an older revision R1, because it would
// also apply all the commits from R1 to R2 and hence reset the checkout to
// be based on revision R2. See https://fxbug.dev/87199 for more context.
//
// Note that rebasing can apply a stack of patches, whereas cherry-picking
// will ignore any parent patches.
bool cherry_pick_patches = 3;
message CustomToolchain {
// CAS digest (used in production).
//
// Overrides cipd_version. We must allow supplying both so that the
// toolchain canary builder can pull the latest CIPD package by default, but
// a CAS package on builds triggered by the toolchain build itself. There
// is no way for a triggered build to "unset" a field set on the builder.
string cas_digest = 1;
// CAS instance corresponding to the CAS digest.
string cas_instance = 2;
// CIPD version string.
string cipd_version = 3;
}
// clang toolchain used to build fuchsia.
CustomToolchain clang_toolchain = 4;
// gcc toolchain used to build fuchsia.
CustomToolchain gcc_toolchain = 5;
// QEMU used to test fuchsia.
CustomToolchain qemu = 6;
// rustc toolchain used to build fuchsia.
CustomToolchain rust_toolchain = 7;
}