OLD | NEW |
1 // Copyright 2016 The LUCI Authors. All rights reserved. | 1 // Copyright 2016 The LUCI Authors. All rights reserved. |
2 // Use of this source code is governed under the Apache License, Version 2.0 | 2 // Use of this source code is governed under the Apache License, Version 2.0 |
3 // that can be found in the LICENSE file. | 3 // that can be found in the LICENSE file. |
4 | 4 |
5 // Recompile with protoc 3.1.0+: | 5 // Recompile with protoc 3.1.0+: |
6 // cd recipe_engine && protoc package.proto --python_out=. | 6 // cd recipe_engine && protoc package.proto --python_out=. |
7 | 7 |
8 syntax = "proto3"; | 8 syntax = "proto3"; |
9 | 9 |
10 package recipe_engine; | 10 package recipe_engine; |
11 | 11 |
12 message DepSpec { | 12 message DepSpec { |
| 13 // Same meaning as Package.project_id, but the id for this dependency. This |
| 14 // should always match the project_id of the repo that we're depending on. |
| 15 string project_id = 1; |
| 16 |
13 // The URL of where to fetch the package data. Must always be a git repo URL. | 17 // The URL of where to fetch the package data. Must always be a git repo URL. |
14 string url = 1; | 18 string url = 2; |
15 | 19 |
16 // The ref to git-fetch when syncing this dependency. | 20 // The ref to git-fetch when syncing this dependency. |
17 string branch = 2; | 21 string branch = 3; |
18 | 22 |
19 // The git commit that we depend on. | 23 // The git commit that we depend on. |
20 string revision = 3; | 24 string revision = 4; |
21 | 25 |
22 // Treat a subtree of a repo as a whole repo unto itself. This must match | 26 // Treat a subtree of a repo as a whole repo unto itself. This must match |
23 // the value of `recipes_path` in the target repo. | 27 // the value of `recipes_path` in the target repo. |
24 string path_override = 4; | 28 string path_override = 5; |
25 | 29 |
26 enum RepoType { | 30 enum RepoType { |
27 // Do a full 'git clone' of this dependency. | 31 // Do a full 'git clone' of this dependency. |
28 GIT = 0; | 32 GIT = 0; |
29 | 33 |
30 // Use GITILES to fetch the dependency data via the GITILES REST API. | 34 // Use GITILES to fetch the dependency data via the GITILES REST API. |
31 GITILES = 1; | 35 GITILES = 1; |
32 } | 36 } |
33 // How this dependency should be fetched. | 37 // How this dependency should be fetched. |
34 // | 38 // |
35 // NOTE: this option may be removed in the future in preference for | 39 // NOTE: this option may be removed in the future in preference for |
36 // automatically picking the repo fetch method. | 40 // automatically picking the repo fetch method. |
37 RepoType repo_type = 5; | 41 RepoType repo_type = 6; |
38 } | 42 } |
39 | 43 |
40 // These options control the behavior of the autoroller recipe: | 44 // These options control the behavior of the autoroller recipe: |
41 // https://chromium.googlesource.com/infra/infra/+/master/recipes/recipes/reci
pe_autoroller.py | 45 // https://chromium.googlesource.com/infra/infra/+/master/recipes/recipes/reci
pe_autoroller.py |
42 message AutorollRecipeOptions { | 46 message AutorollRecipeOptions { |
43 // These control the behavior of the autoroller when it finds a trivial roll | 47 // These control the behavior of the autoroller when it finds a trivial roll |
44 // (i.e. a roll without expectation changes). | 48 // (i.e. a roll without expectation changes). |
45 message TrivialOptions { | 49 message TrivialOptions { |
46 // These email addresses will be TBR'd. | 50 // These email addresses will be TBR'd. |
47 repeated string tbr_emails = 1; | 51 repeated string tbr_emails = 1; |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
81 | 85 |
82 // This is the URL which points to the 'source of truth' for this repo. It's | 86 // This is the URL which points to the 'source of truth' for this repo. It's |
83 // meant to be used for documentation generation. | 87 // meant to be used for documentation generation. |
84 string canonical_repo_url = 3; | 88 string canonical_repo_url = 3; |
85 | 89 |
86 // The path (using forward slashes) to where the base of the recipes are found | 90 // The path (using forward slashes) to where the base of the recipes are found |
87 // in the repo (i.e. where the "recipes" and/or "recipe_modules" directories | 91 // in the repo (i.e. where the "recipes" and/or "recipe_modules" directories |
88 // live). | 92 // live). |
89 string recipes_path = 4; | 93 string recipes_path = 4; |
90 | 94 |
91 // A mapping of a dependency ("project_id") to spec needed to fetch its code. | 95 // Any package dependencies that this package has. |
92 map<string, DepSpec> deps = 5; | 96 repeated DepSpec deps = 5; |
93 | 97 |
94 // The autoroller options for this repo. These options will be respected by | 98 // The autoroller options for this repo. These options will be respected by |
95 // the autoroller recipe (which currently lives here: | 99 // the autoroller recipe (which currently lives here: |
96 // https://chromium.googlesource.com/infra/infra/+/master/recipes/recipes/re
cipe_autoroller.py | 100 // https://chromium.googlesource.com/infra/infra/+/master/recipes/recipes/re
cipe_autoroller.py |
97 // ). | 101 // ). |
98 AutorollRecipeOptions autoroll_recipe_options = 6; | 102 AutorollRecipeOptions autoroll_recipe_options = 6; |
| 103 |
99 } | 104 } |
OLD | NEW |