blob: 8c91f19dd552a5c2af79050595ea4a03a0f6a90b [file] [log] [blame]
// Copyright 2020 The Chromium OS 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 test.metadata.v1;
option go_package = "go.chromium.org/chromiumos/infra/proto/go/test/metadata";
// go/cros-rtd-spec describes the Remote Test Driver bootstrapping flow inside
// the Remote Test Server. Remote Test Driver configures the bootstrapping flow
// for a test invocation.
message RemoteTestDriver {
// All supported Remote Test Drivers, per go/cros-f20.
enum ID {
// Unspecified emote Test Driver. Must not be used.
ID_UNSPECIFIED = 0;
// See http://go/tauto-tests
TAUTO = 1;
// See http://go/tast
TAST = 2;
}
// id is required to construct globally unique identifiers for test metadata.
ID id = 1;
// A container image containing all the required dependencies and other build
// artifacts required for test invocations.
//
// Test Lab Environments should fail with an error indicating that the request
// was invalid if the image fails to be found for a test invocation.
BuildArtifact image = 2;
// Command to invoke the Remote Test Driver inside `image`.
//
// Remote Test Servers must run `command` as
// $ ${command} -input_json ${input_json}
// where ${intput_json} is an absolute file path.
//
// Remote Test Servers must populate `input_json` with a JSON encoded
// test.invocation.Request message.
string command = 3;
}
// A Chrome OS build artifact required for test execution.
message BuildArtifact {
// All build artifacts are assumed to be archived in some common directory
// root. `relative_path` is the relative path inside the root archive
// directory.
//
// Infrastructure Test Lab Environment: Chrome OS Continuous Integration
// builders archive build artifacts to a path on Google Storage. The Test
// Platform requests include a reference to the root archival path.
// e.g.,
// * The builder archives all build artifacts to
// gs://chromeos-image-archive/link-release/R64-0.0.0.0/
// * Test Platform request includes this archival path.
// * `relative_path` is set to tast/mighty.bin
// * Then, the full path to the artifact is
// gs://chromeos-image-archive/link-release/R64-0.0.0.0/tast/mighty.bin
//
// Developer Test Lab Environment: For developer flow outside of the
// infrastructure, it is assumed that the build artifacts are available at a
// local path with the same directory layout as the Google Storage archival.
// e.g.,
// * Local build copies all artifacts to /tmp/cbuildbot/archive/
// * Local tooling includes a reference to this path.
// * `relative_path` is set to tauto/ssp.bin
// * Then, the full path to the artifact is
// /tmp/cbuildbot/archive/tauto/ssp.bin
string relative_path = 1;
}