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