OLD | NEW |
1 # Copyright 2014 The Chromium Authors. All rights reserved. | 1 # Copyright 2014 The Chromium Authors. All rights reserved. |
2 # Use of this source code is governed by a BSD-style license that can be | 2 # Use of this source code is governed by a BSD-style license that can be |
3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
4 | 4 |
5 """Recipe to test the deterministic build. | 5 """Recipe to test the deterministic build. |
6 | 6 |
7 Waterfall page: https://build.chromium.org/p/chromium.swarm/waterfall | 7 Waterfall page: https://build.chromium.org/p/chromium.swarm/waterfall |
8 """ | 8 """ |
9 | 9 |
10 from infra.libs.infra_types import freeze | 10 from infra.libs.infra_types import freeze |
(...skipping 16 matching lines...) Expand all Loading... |
27 'Android deterministic build': { | 27 'Android deterministic build': { |
28 'chromium_config': 'android', | 28 'chromium_config': 'android', |
29 'chromium_config_kwargs': { | 29 'chromium_config_kwargs': { |
30 'BUILD_CONFIG': 'Release', | 30 'BUILD_CONFIG': 'Release', |
31 'TARGET_BITS': 32, | 31 'TARGET_BITS': 32, |
32 'TARGET_PLATFORM': 'android', | 32 'TARGET_PLATFORM': 'android', |
33 }, | 33 }, |
34 'platform': 'linux', | 34 'platform': 'linux', |
35 'targets': ['all'], | 35 'targets': ['all'], |
36 }, | 36 }, |
37 'IOS deterministic build': { | |
38 'chromium_apply_config': ['ninja'], | |
39 'chromium_config': 'chromium_ios_device', | |
40 'chromium_config_kwargs': { | |
41 'BUILD_CONFIG': 'Release', | |
42 'TARGET_PLATFORM': 'ios', | |
43 'TARGET_BITS': 32, | |
44 }, | |
45 'gclient_config': 'ios', | |
46 'platform': 'mac', | |
47 'targets': ['all'], | |
48 }, | |
49 'Linux deterministic build': { | 37 'Linux deterministic build': { |
50 'chromium_config': 'chromium', | 38 'chromium_config': 'chromium', |
51 'gclient_config': 'chromium', | 39 'gclient_config': 'chromium', |
52 'platform': 'linux', | 40 'platform': 'linux', |
53 }, | 41 }, |
54 'Mac deterministic build': { | 42 'Mac deterministic build': { |
55 'chromium_config': 'chromium', | 43 'chromium_config': 'chromium', |
56 'gclient_config': 'chromium', | 44 'gclient_config': 'chromium', |
57 'platform': 'mac', | 45 'platform': 'mac', |
58 }, | 46 }, |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
107 buildername = api.properties['buildername'] | 95 buildername = api.properties['buildername'] |
108 recipe_config = DETERMINISTIC_BUILDERS[buildername] | 96 recipe_config = DETERMINISTIC_BUILDERS[buildername] |
109 | 97 |
110 targets = recipe_config.get('targets', ['chromium_swarm_tests']) | 98 targets = recipe_config.get('targets', ['chromium_swarm_tests']) |
111 if recipe_config.get('chromium_config_kwargs'): | 99 if recipe_config.get('chromium_config_kwargs'): |
112 target_platform = recipe_config['chromium_config_kwargs'].get( | 100 target_platform = recipe_config['chromium_config_kwargs'].get( |
113 'TARGET_PLATFORM') | 101 'TARGET_PLATFORM') |
114 else: | 102 else: |
115 target_platform = recipe_config.get('platform') | 103 target_platform = recipe_config.get('platform') |
116 | 104 |
117 # TODO(sebmarchand): iOS should be handled differently, fix this. | 105 if target_platform in ('linux', 'mac', 'win'): |
118 if target_platform in ('linux', 'mac', 'win', 'ios'): | |
119 ConfigureChromiumBuilder(api, recipe_config) | 106 ConfigureChromiumBuilder(api, recipe_config) |
120 elif target_platform is 'android': | 107 elif target_platform is 'android': |
121 ConfigureAndroidBuilder(api, recipe_config) | 108 ConfigureAndroidBuilder(api, recipe_config) |
122 api.chromium_android.init_and_sync() | 109 api.chromium_android.init_and_sync() |
123 | 110 |
124 # Enable test isolation. Modifies GYP_DEFINES used in 'runhooks' below. | 111 # Enable test isolation. Modifies GYP_DEFINES used in 'runhooks' below. |
125 api.isolate.set_isolate_environment(api.chromium.c) | 112 api.isolate.set_isolate_environment(api.chromium.c) |
126 | 113 |
127 # Do a first build and move the build artifact to the temp directory. | 114 # Do a first build and move the build artifact to the temp directory. |
128 api.chromium.runhooks() | 115 api.chromium.runhooks() |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
161 _sanitize_nonalpha(buildername)) | 148 _sanitize_nonalpha(buildername)) |
162 yield ( | 149 yield ( |
163 api.test(test_name) + | 150 api.test(test_name) + |
164 api.properties.scheduled() + | 151 api.properties.scheduled() + |
165 api.properties.generic(buildername=buildername, | 152 api.properties.generic(buildername=buildername, |
166 mastername=mastername) + | 153 mastername=mastername) + |
167 api.platform(DETERMINISTIC_BUILDERS[buildername]['platform'], 32) + | 154 api.platform(DETERMINISTIC_BUILDERS[buildername]['platform'], 32) + |
168 api.properties(configuration='Release') + | 155 api.properties(configuration='Release') + |
169 api.step_data('remove_build_metadata', retcode=1) | 156 api.step_data('remove_build_metadata', retcode=1) |
170 ) | 157 ) |
OLD | NEW |