| OLD | NEW | 
|---|
|  | (Empty) | 
| 1 [ |  | 
| 2   { |  | 
| 3     "cmd": [ |  | 
| 4       "git", |  | 
| 5       "fetch" |  | 
| 6     ], |  | 
| 7     "cwd": "[SLAVE_BUILD]/skia", |  | 
| 8     "name": "git fetch" |  | 
| 9   }, |  | 
| 10   { |  | 
| 11     "cmd": [ |  | 
| 12       "git", |  | 
| 13       "reset", |  | 
| 14       "--hard", |  | 
| 15       "abc123" |  | 
| 16     ], |  | 
| 17     "cwd": "[SLAVE_BUILD]/skia", |  | 
| 18     "name": "git reset" |  | 
| 19   }, |  | 
| 20   { |  | 
| 21     "cmd": [ |  | 
| 22       "git", |  | 
| 23       "clean", |  | 
| 24       "-d", |  | 
| 25       "-f" |  | 
| 26     ], |  | 
| 27     "cwd": "[SLAVE_BUILD]/skia", |  | 
| 28     "name": "git clean" |  | 
| 29   }, |  | 
| 30   { |  | 
| 31     "cmd": [ |  | 
| 32       "python", |  | 
| 33       "-u", |  | 
| 34       "[DEPOT_TOOLS]/gclient.py", |  | 
| 35       "config", |  | 
| 36       "--spec", |  | 
| 37       "cache_dir = None\nsolutions = [{'deps_file': 'DEPS', 'managed': True, 'na
     me': 'skia', 'url': 'https://skia.googlesource.com/skia.git'}]" |  | 
| 38     ], |  | 
| 39     "cwd": "[SLAVE_BUILD]", |  | 
| 40     "name": "gclient setup" |  | 
| 41   }, |  | 
| 42   { |  | 
| 43     "cmd": [ |  | 
| 44       "python", |  | 
| 45       "-u", |  | 
| 46       "[DEPOT_TOOLS]/gclient.py", |  | 
| 47       "sync", |  | 
| 48       "--nohooks", |  | 
| 49       "--force", |  | 
| 50       "--verbose", |  | 
| 51       "--delete_unversioned_trees", |  | 
| 52       "--revision", |  | 
| 53       "skia@abc123", |  | 
| 54       "--output-json", |  | 
| 55       "/path/to/tmp/json" |  | 
| 56     ], |  | 
| 57     "cwd": "[SLAVE_BUILD]", |  | 
| 58     "name": "gclient sync", |  | 
| 59     "~followup_annotations": [ |  | 
| 60       "@@@STEP_LOG_LINE@json.output@{@@@", |  | 
| 61       "@@@STEP_LOG_LINE@json.output@  \"solutions\": {@@@", |  | 
| 62       "@@@STEP_LOG_LINE@json.output@    \"skia/\": {@@@", |  | 
| 63       "@@@STEP_LOG_LINE@json.output@      \"revision\": 164710@@@", |  | 
| 64       "@@@STEP_LOG_LINE@json.output@    }@@@", |  | 
| 65       "@@@STEP_LOG_LINE@json.output@  }@@@", |  | 
| 66       "@@@STEP_LOG_LINE@json.output@}@@@", |  | 
| 67       "@@@STEP_LOG_END@json.output@@@", |  | 
| 68       "@@@SET_BUILD_PROPERTY@got_revision@164710@@@" |  | 
| 69     ] |  | 
| 70   }, |  | 
| 71   { |  | 
| 72     "cmd": [ |  | 
| 73       "python", |  | 
| 74       "-u", |  | 
| 75       "\nimport os\nimport sys\nwith open(sys.argv[1], 'w') as f:\n  f.write(os.
     path.join(os.path.expanduser('~'), 'src'))\n", |  | 
| 76       "/path/to/tmp/" |  | 
| 77     ], |  | 
| 78     "cwd": "[SLAVE_BUILD]", |  | 
| 79     "name": "get CHROME_PATH", |  | 
| 80     "~followup_annotations": [ |  | 
| 81       "@@@STEP_LOG_LINE@python.inline@@@@", |  | 
| 82       "@@@STEP_LOG_LINE@python.inline@import os@@@", |  | 
| 83       "@@@STEP_LOG_LINE@python.inline@import sys@@@", |  | 
| 84       "@@@STEP_LOG_LINE@python.inline@with open(sys.argv[1], 'w') as f:@@@", |  | 
| 85       "@@@STEP_LOG_LINE@python.inline@  f.write(os.path.join(os.path.expanduser(
     '~'), 'src'))@@@", |  | 
| 86       "@@@STEP_LOG_END@python.inline@@@" |  | 
| 87     ] |  | 
| 88   }, |  | 
| 89   { |  | 
| 90     "cmd": [ |  | 
| 91       "make", |  | 
| 92       "dm", |  | 
| 93       "BUILDTYPE=Debug" |  | 
| 94     ], |  | 
| 95     "cwd": "[SLAVE_BUILD]/skia", |  | 
| 96     "env": { |  | 
| 97       "CC": "/usr/bin/clang", |  | 
| 98       "CHROME_PATH": "/home/chrome-bot/src", |  | 
| 99       "CXX": "/usr/bin/clang++", |  | 
| 100       "GYP_DEFINES": "skia_arch_type=x86_64 skia_arch_width=64 skia_clang_build=
     1 skia_warnings_as_errors=0" |  | 
| 101     }, |  | 
| 102     "name": "build dm" |  | 
| 103   }, |  | 
| 104   { |  | 
| 105     "cmd": [ |  | 
| 106       "make", |  | 
| 107       "nanobench", |  | 
| 108       "BUILDTYPE=Debug" |  | 
| 109     ], |  | 
| 110     "cwd": "[SLAVE_BUILD]/skia", |  | 
| 111     "env": { |  | 
| 112       "CC": "/usr/bin/clang", |  | 
| 113       "CHROME_PATH": "/home/chrome-bot/src", |  | 
| 114       "CXX": "/usr/bin/clang++", |  | 
| 115       "GYP_DEFINES": "skia_arch_type=x86_64 skia_arch_width=64 skia_clang_build=
     1 skia_warnings_as_errors=0" |  | 
| 116     }, |  | 
| 117     "name": "build nanobench" |  | 
| 118   }, |  | 
| 119   { |  | 
| 120     "cmd": [ |  | 
| 121       "python", |  | 
| 122       "-u", |  | 
| 123       "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.
     path.isdir(path):\n  if os.path.exists(path):\n    print \"%s exists but is not 
     a dir\" % path\n    sys.exit(1)\n  os.makedirs(path, mode)\n", |  | 
| 124       "[SLAVE_BUILD]/tmp", |  | 
| 125       "511" |  | 
| 126     ], |  | 
| 127     "cwd": "[SLAVE_BUILD]", |  | 
| 128     "name": "makedirs tmp_dir", |  | 
| 129     "~followup_annotations": [ |  | 
| 130       "@@@STEP_LOG_LINE@python.inline@@@@", |  | 
| 131       "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", |  | 
| 132       "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", |  | 
| 133       "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", |  | 
| 134       "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", |  | 
| 135       "@@@STEP_LOG_LINE@python.inline@  if os.path.exists(path):@@@", |  | 
| 136       "@@@STEP_LOG_LINE@python.inline@    print \"%s exists but is not a dir\" %
      path@@@", |  | 
| 137       "@@@STEP_LOG_LINE@python.inline@    sys.exit(1)@@@", |  | 
| 138       "@@@STEP_LOG_LINE@python.inline@  os.makedirs(path, mode)@@@", |  | 
| 139       "@@@STEP_LOG_END@python.inline@@@" |  | 
| 140     ] |  | 
| 141   }, |  | 
| 142   { |  | 
| 143     "cmd": [ |  | 
| 144       "python", |  | 
| 145       "-u", |  | 
| 146       "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", |  | 
| 147       "[SLAVE_BUILD]/skia/SKP_VERSION", |  | 
| 148       "/path/to/tmp/" |  | 
| 149     ], |  | 
| 150     "cwd": "[SLAVE_BUILD]", |  | 
| 151     "name": "Get expected SKP_VERSION" |  | 
| 152   }, |  | 
| 153   { |  | 
| 154     "cmd": [ |  | 
| 155       "python", |  | 
| 156       "-u", |  | 
| 157       "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", |  | 
| 158       "[SLAVE_BUILD]/tmp/SKP_VERSION", |  | 
| 159       "/path/to/tmp/" |  | 
| 160     ], |  | 
| 161     "cwd": "[SLAVE_BUILD]", |  | 
| 162     "name": "Get downloaded SKP_VERSION" |  | 
| 163   }, |  | 
| 164   { |  | 
| 165     "cmd": [ |  | 
| 166       "python", |  | 
| 167       "-u", |  | 
| 168       "RECIPE_MODULE[gsutil]/resources/gsutil_wrapper.py", |  | 
| 169       "--", |  | 
| 170       "[DEPOT_TOOLS]/gsutil.py", |  | 
| 171       "--force-version", |  | 
| 172       "3.25", |  | 
| 173       "----", |  | 
| 174       "cat", |  | 
| 175       "gs://chromium-skia-gm/skimage/input/TIMESTAMP_LAST_UPLOAD_COMPLETED" |  | 
| 176     ], |  | 
| 177     "cwd": "[SLAVE_BUILD]", |  | 
| 178     "name": "gsutil cat TIMESTAMP_LAST_UPLOAD_COMPLETED", |  | 
| 179     "stdout": "/path/to/tmp/" |  | 
| 180   }, |  | 
| 181   { |  | 
| 182     "cmd": [ |  | 
| 183       "python", |  | 
| 184       "-u", |  | 
| 185       "\nimport shutil\nimport sys\nshutil.copy(sys.argv[1], sys.argv[2])\n", |  | 
| 186       "[SLAVE_BUILD]/tmp/SKIMAGE_VERSION", |  | 
| 187       "/path/to/tmp/" |  | 
| 188     ], |  | 
| 189     "cwd": "[SLAVE_BUILD]", |  | 
| 190     "name": "Get downloaded SKIMAGE_VERSION" |  | 
| 191   }, |  | 
| 192   { |  | 
| 193     "cmd": [ |  | 
| 194       "python", |  | 
| 195       "-u", |  | 
| 196       "\nimport os, sys\nfrom common import chromium_utils\n\nif os.path.exists(
     sys.argv[1]):\n  chromium_utils.RemoveDirectory(sys.argv[1])\n", |  | 
| 197       "[SLAVE_BUILD]/dm" |  | 
| 198     ], |  | 
| 199     "cwd": "[SLAVE_BUILD]", |  | 
| 200     "name": "rmtree dm", |  | 
| 201     "~followup_annotations": [ |  | 
| 202       "@@@STEP_LOG_LINE@python.inline@@@@", |  | 
| 203       "@@@STEP_LOG_LINE@python.inline@import os, sys@@@", |  | 
| 204       "@@@STEP_LOG_LINE@python.inline@from common import chromium_utils@@@", |  | 
| 205       "@@@STEP_LOG_LINE@python.inline@@@@", |  | 
| 206       "@@@STEP_LOG_LINE@python.inline@if os.path.exists(sys.argv[1]):@@@", |  | 
| 207       "@@@STEP_LOG_LINE@python.inline@  chromium_utils.RemoveDirectory(sys.argv[
     1])@@@", |  | 
| 208       "@@@STEP_LOG_END@python.inline@@@" |  | 
| 209     ] |  | 
| 210   }, |  | 
| 211   { |  | 
| 212     "cmd": [ |  | 
| 213       "python", |  | 
| 214       "-u", |  | 
| 215       "\nimport sys, os\npath = sys.argv[1]\nmode = int(sys.argv[2])\nif not os.
     path.isdir(path):\n  if os.path.exists(path):\n    print \"%s exists but is not 
     a dir\" % path\n    sys.exit(1)\n  os.makedirs(path, mode)\n", |  | 
| 216       "[SLAVE_BUILD]/dm", |  | 
| 217       "511" |  | 
| 218     ], |  | 
| 219     "cwd": "[SLAVE_BUILD]", |  | 
| 220     "name": "makedirs dm", |  | 
| 221     "~followup_annotations": [ |  | 
| 222       "@@@STEP_LOG_LINE@python.inline@@@@", |  | 
| 223       "@@@STEP_LOG_LINE@python.inline@import sys, os@@@", |  | 
| 224       "@@@STEP_LOG_LINE@python.inline@path = sys.argv[1]@@@", |  | 
| 225       "@@@STEP_LOG_LINE@python.inline@mode = int(sys.argv[2])@@@", |  | 
| 226       "@@@STEP_LOG_LINE@python.inline@if not os.path.isdir(path):@@@", |  | 
| 227       "@@@STEP_LOG_LINE@python.inline@  if os.path.exists(path):@@@", |  | 
| 228       "@@@STEP_LOG_LINE@python.inline@    print \"%s exists but is not a dir\" %
      path@@@", |  | 
| 229       "@@@STEP_LOG_LINE@python.inline@    sys.exit(1)@@@", |  | 
| 230       "@@@STEP_LOG_LINE@python.inline@  os.makedirs(path, mode)@@@", |  | 
| 231       "@@@STEP_LOG_END@python.inline@@@" |  | 
| 232     ] |  | 
| 233   }, |  | 
| 234   { |  | 
| 235     "cmd": [ |  | 
| 236       "python", |  | 
| 237       "-u", |  | 
| 238       "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\
     nimport urllib2\n\nHASHES_URL = 'https://gold.skia.org/2/_/hashes'\nRETRIES = 5\
     nTIMEOUT = 60\nWAIT_BASE = 15\n\nsocket.setdefaulttimeout(TIMEOUT)\nfor retry in
      range(RETRIES):\n  try:\n    with contextlib.closing(\n        urllib2.urlopen(
     HASHES_URL, timeout=TIMEOUT)) as w:\n      hashes = w.read()\n      with open(sy
     s.argv[1], 'w') as f:\n        f.write(hashes)\n        break\n  except:\n    pr
     int 'Failed to get uninteresting hashes from %s' % HASHES_URL\n    if retry == R
     ETRIES:\n      raise\n    waittime = WAIT_BASE * math.pow(2, retry)\n    print '
     Retry in %d seconds.' % waittime\n    time.sleep(waittime)\n", |  | 
| 239       "[SLAVE_BUILD]/tmp/uninteresting_hashes.txt" |  | 
| 240     ], |  | 
| 241     "cwd": "[SLAVE_BUILD]/skia", |  | 
| 242     "name": "get uninteresting hashes", |  | 
| 243     "~followup_annotations": [ |  | 
| 244       "@@@STEP_LOG_LINE@python.inline@@@@", |  | 
| 245       "@@@STEP_LOG_LINE@python.inline@import contextlib@@@", |  | 
| 246       "@@@STEP_LOG_LINE@python.inline@import math@@@", |  | 
| 247       "@@@STEP_LOG_LINE@python.inline@import socket@@@", |  | 
| 248       "@@@STEP_LOG_LINE@python.inline@import sys@@@", |  | 
| 249       "@@@STEP_LOG_LINE@python.inline@import time@@@", |  | 
| 250       "@@@STEP_LOG_LINE@python.inline@import urllib2@@@", |  | 
| 251       "@@@STEP_LOG_LINE@python.inline@@@@", |  | 
| 252       "@@@STEP_LOG_LINE@python.inline@HASHES_URL = 'https://gold.skia.org/2/_/ha
     shes'@@@", |  | 
| 253       "@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@", |  | 
| 254       "@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@", |  | 
| 255       "@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@", |  | 
| 256       "@@@STEP_LOG_LINE@python.inline@@@@", |  | 
| 257       "@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@", |  | 
| 258       "@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@", |  | 
| 259       "@@@STEP_LOG_LINE@python.inline@  try:@@@", |  | 
| 260       "@@@STEP_LOG_LINE@python.inline@    with contextlib.closing(@@@", |  | 
| 261       "@@@STEP_LOG_LINE@python.inline@        urllib2.urlopen(HASHES_URL, timeou
     t=TIMEOUT)) as w:@@@", |  | 
| 262       "@@@STEP_LOG_LINE@python.inline@      hashes = w.read()@@@", |  | 
| 263       "@@@STEP_LOG_LINE@python.inline@      with open(sys.argv[1], 'w') as f:@@@
     ", |  | 
| 264       "@@@STEP_LOG_LINE@python.inline@        f.write(hashes)@@@", |  | 
| 265       "@@@STEP_LOG_LINE@python.inline@        break@@@", |  | 
| 266       "@@@STEP_LOG_LINE@python.inline@  except:@@@", |  | 
| 267       "@@@STEP_LOG_LINE@python.inline@    print 'Failed to get uninteresting has
     hes from %s' % HASHES_URL@@@", |  | 
| 268       "@@@STEP_LOG_LINE@python.inline@    if retry == RETRIES:@@@", |  | 
| 269       "@@@STEP_LOG_LINE@python.inline@      raise@@@", |  | 
| 270       "@@@STEP_LOG_LINE@python.inline@    waittime = WAIT_BASE * math.pow(2, ret
     ry)@@@", |  | 
| 271       "@@@STEP_LOG_LINE@python.inline@    print 'Retry in %d seconds.' % waittim
     e@@@", |  | 
| 272       "@@@STEP_LOG_LINE@python.inline@    time.sleep(waittime)@@@", |  | 
| 273       "@@@STEP_LOG_END@python.inline@@@" |  | 
| 274     ] |  | 
| 275   }, |  | 
| 276   { |  | 
| 277     "cmd": [ |  | 
| 278       "python", |  | 
| 279       "-u", |  | 
| 280       "[SLAVE_BUILD]/skia/tools/dm_flags.py", |  | 
| 281       "/path/to/tmp/json", |  | 
| 282       "Test-Mac10.8-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Debug" |  | 
| 283     ], |  | 
| 284     "cwd": "[SLAVE_BUILD]/skia", |  | 
| 285     "name": "exec dm_flags.py", |  | 
| 286     "~followup_annotations": [ |  | 
| 287       "@@@STEP_LOG_LINE@json.output@[@@@", |  | 
| 288       "@@@STEP_LOG_LINE@json.output@  \"--dummy-flags\"@@@", |  | 
| 289       "@@@STEP_LOG_LINE@json.output@]@@@", |  | 
| 290       "@@@STEP_LOG_END@json.output@@@" |  | 
| 291     ] |  | 
| 292   }, |  | 
| 293   { |  | 
| 294     "cmd": [ |  | 
| 295       "catchsegv", |  | 
| 296       "[SLAVE_BUILD]/skia/out/Debug/dm", |  | 
| 297       "--undefok", |  | 
| 298       "--verbose", |  | 
| 299       "--resourcePath", |  | 
| 300       "[SLAVE_BUILD]/skia/resources", |  | 
| 301       "--skps", |  | 
| 302       "[SLAVE_BUILD]/playback/skps", |  | 
| 303       "--images", |  | 
| 304       "[SLAVE_BUILD]/images", |  | 
| 305       "--writePath", |  | 
| 306       "[SLAVE_BUILD]/dm", |  | 
| 307       "--nameByHash", |  | 
| 308       "--properties", |  | 
| 309       "gitHash", |  | 
| 310       "164710", |  | 
| 311       "build_number", |  | 
| 312       "5", |  | 
| 313       "--key", |  | 
| 314       "arch", |  | 
| 315       "x86_64", |  | 
| 316       "compiler", |  | 
| 317       "Clang", |  | 
| 318       "configuration", |  | 
| 319       "Debug", |  | 
| 320       "cpu_or_gpu", |  | 
| 321       "GPU", |  | 
| 322       "cpu_or_gpu_value", |  | 
| 323       "GeForce320M", |  | 
| 324       "model", |  | 
| 325       "MacMini4.1", |  | 
| 326       "os", |  | 
| 327       "Mac10.8", |  | 
| 328       "--uninterestingHashesFile", |  | 
| 329       "[SLAVE_BUILD]/tmp/uninteresting_hashes.txt", |  | 
| 330       "--nocpu", |  | 
| 331       "--dummy-flags" |  | 
| 332     ], |  | 
| 333     "cwd": "[SLAVE_BUILD]", |  | 
| 334     "env": { |  | 
| 335       "CC": "/usr/bin/clang", |  | 
| 336       "CXX": "/usr/bin/clang++" |  | 
| 337     }, |  | 
| 338     "name": "dm" |  | 
| 339   }, |  | 
| 340   { |  | 
| 341     "cmd": [ |  | 
| 342       "python", |  | 
| 343       "-u", |  | 
| 344       "RECIPE_MODULE[skia]/resources/upload_dm_results.py", |  | 
| 345       "[SLAVE_BUILD]/dm", |  | 
| 346       "164710", |  | 
| 347       "Test-Mac10.8-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Debug", |  | 
| 348       "5", |  | 
| 349       "", |  | 
| 350       "[SLAVE_BUILD]/skia/common/py/utils" |  | 
| 351     ], |  | 
| 352     "cwd": "[SLAVE_BUILD]/skia", |  | 
| 353     "name": "Upload DM Results" |  | 
| 354   }, |  | 
| 355   { |  | 
| 356     "cmd": [ |  | 
| 357       "python", |  | 
| 358       "-u", |  | 
| 359       "[SLAVE_BUILD]/skia/tools/nanobench_flags.py", |  | 
| 360       "/path/to/tmp/json", |  | 
| 361       "Test-Mac10.8-Clang-MacMini4.1-GPU-GeForce320M-x86_64-Debug" |  | 
| 362     ], |  | 
| 363     "cwd": "[SLAVE_BUILD]/skia", |  | 
| 364     "name": "exec nanobench_flags.py", |  | 
| 365     "~followup_annotations": [ |  | 
| 366       "@@@STEP_LOG_LINE@json.output@[@@@", |  | 
| 367       "@@@STEP_LOG_LINE@json.output@  \"--dummy-flags\"@@@", |  | 
| 368       "@@@STEP_LOG_LINE@json.output@]@@@", |  | 
| 369       "@@@STEP_LOG_END@json.output@@@" |  | 
| 370     ] |  | 
| 371   }, |  | 
| 372   { |  | 
| 373     "cmd": [ |  | 
| 374       "catchsegv", |  | 
| 375       "[SLAVE_BUILD]/skia/out/Debug/nanobench", |  | 
| 376       "--undefok", |  | 
| 377       "-i", |  | 
| 378       "[SLAVE_BUILD]/skia/resources", |  | 
| 379       "--skps", |  | 
| 380       "[SLAVE_BUILD]/playback/skps", |  | 
| 381       "--nocpu", |  | 
| 382       "--dummy-flags" |  | 
| 383     ], |  | 
| 384     "cwd": "[SLAVE_BUILD]", |  | 
| 385     "env": { |  | 
| 386       "CC": "/usr/bin/clang", |  | 
| 387       "CXX": "/usr/bin/clang++" |  | 
| 388     }, |  | 
| 389     "name": "nanobench" |  | 
| 390   } |  | 
| 391 ] |  | 
| OLD | NEW | 
|---|