blob: 1907e5266a1b55c54dc8b641ed49608e7f5197fa [file] [log] [blame]
// Copyright 2022 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 recipes.fuchsia.bazel_build_test_upload;
import "recipe_modules/fuchsia/fxt/options.proto";
import "recipe_modules/fuchsia/dpi/options.proto";
message InputProperties {
// Remote URL of repository to checkout.
string remote = 1;
// If set, check out this manifest from the remote using Jiri.
string jiri_manifest = 2;
// The Jiri project name for repo containing the manifest.
string jiri_project = 3;
// Arguments to pass to `bazel build`.
repeated string build_args = 4;
// Name of the Swarming pool in which to schedule testing tasks.
string testing_pool = 5;
// Command that lists tests to run.
Command test_manifest_command = 6;
message CIPDManifestCommand {
// Command that emits JSON stdout corresponding to the `CIPDUploadManifest`
// proto message.
Command command = 1;
// Name of the CIPD package to upload.
//
// CIPD packages are configured by input properties, rather than specified
// by the repository itself, to make it possible to statically analyze
// dependency chains of CIPD packages between repos.
string package = 2;
}
// List of commands that declare CIPD packages to upload.
repeated CIPDManifestCommand cipd_manifest_commands = 7;
// Command that declares files and/or directories to upload to cloud storage.
// Command must emit JSON stdout corresponding to the GCS upload manifest
// format.
// TODO(fxbug.dev/92697): Make proto message.
Command gcs_manifest_command = 8;
// GCS bucket to which artifacts should be uploaded.
string gcs_bucket = 9;
// Whether to sign artifacts.
bool sign_artifacts = 10;
// External testing options.
recipe_modules.fuchsia.fxt.Options fxt_options = 11;
// The Options for MOS-TUF upload.
recipe_modules.fuchsia.dpi.DPIUploadOptions mos_upload_options = 12;
// Whether to query for builder manifest.
// TODO(fxbug.dev/112403): Make this unconditionally true once every repo has
// migrated to fuchsia_builder_group().
bool query_builder_manifest = 13;
}
// Represents a command that the recipe should run from the repo under test.
// Each command can assume that it is run from the root of the checkout.
message Command {
// Relative path to the command's executable within the root of the checkout
// directory, using platform-agnostic forward slashes as separators.
string path = 1;
// Additional arguments to pass to the command.
repeated string args = 2;
}
// Represents a collection of test and upload requests expected to be produced
// by the build.
message BuilderManifest {
// Paths to test manifests.
repeated string test_manifests = 1;
// Paths to GCS upload manifests.
repeated string gcs_manifests = 2;
// Paths to CIPD upload manifests.
repeated string cipd_manifests = 3;
}