| [ |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "ensure-directory", |
| "--mode", |
| "0777", |
| "[START_DIR]\\tmp" |
| ], |
| "infra_step": true, |
| "name": "makedirs tmp_dir" |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "[START_DIR]\\skia\\infra\\bots\\assets\\skp\\VERSION", |
| "/path/to/tmp/" |
| ], |
| "infra_step": true, |
| "name": "Get skp VERSION", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@VERSION@42@@@", |
| "@@@STEP_LOG_END@VERSION@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "42", |
| "[START_DIR]\\tmp\\SKP_VERSION" |
| ], |
| "infra_step": true, |
| "name": "write SKP_VERSION", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@SKP_VERSION@42@@@", |
| "@@@STEP_LOG_END@SKP_VERSION@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "[START_DIR]\\skia\\infra\\bots\\assets\\skimage\\VERSION", |
| "/path/to/tmp/" |
| ], |
| "infra_step": true, |
| "name": "Get skimage VERSION", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@VERSION@42@@@", |
| "@@@STEP_LOG_END@VERSION@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "42", |
| "[START_DIR]\\tmp\\SK_IMAGE_VERSION" |
| ], |
| "infra_step": true, |
| "name": "write SK_IMAGE_VERSION", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@SK_IMAGE_VERSION@42@@@", |
| "@@@STEP_LOG_END@SK_IMAGE_VERSION@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "[START_DIR]\\skia\\infra\\bots\\assets\\svg\\VERSION", |
| "/path/to/tmp/" |
| ], |
| "infra_step": true, |
| "name": "Get svg VERSION", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@VERSION@42@@@", |
| "@@@STEP_LOG_END@VERSION@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "copy", |
| "42", |
| "[START_DIR]\\tmp\\SVG_VERSION" |
| ], |
| "infra_step": true, |
| "name": "write SVG_VERSION", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@SVG_VERSION@42@@@", |
| "@@@STEP_LOG_END@SVG_VERSION@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "rmtree", |
| "[START_DIR]\\test" |
| ], |
| "infra_step": true, |
| "name": "rmtree test" |
| }, |
| { |
| "cmd": [ |
| "vpython", |
| "-u", |
| "RECIPE_MODULE[recipe_engine::file]\\resources\\fileutil.py", |
| "--json-output", |
| "/path/to/tmp/json", |
| "ensure-directory", |
| "--mode", |
| "0777", |
| "[START_DIR]\\test" |
| ], |
| "infra_step": true, |
| "name": "makedirs test" |
| }, |
| { |
| "cmd": [ |
| "python", |
| "-u", |
| "\nimport contextlib\nimport math\nimport socket\nimport sys\nimport time\nimport urllib2\n\nHASHES_URL = sys.argv[1]\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(sys.argv[2], 'w') as f:\n f.write(hashes)\n break\n except Exception as e:\n print 'Failed to get uninteresting hashes from %s:' % HASHES_URL\n print e\n if retry == RETRIES:\n raise\n waittime = WAIT_BASE * math.pow(2, retry)\n print 'Retry in %d seconds.' % waittime\n time.sleep(waittime)\n", |
| "https://example.com/hashes.txt", |
| "[START_DIR]\\tmp\\uninteresting_hashes.txt" |
| ], |
| "env": { |
| "CHROME_HEADLESS": "1", |
| "PATH": "<PATH>;RECIPE_REPO[depot_tools]" |
| }, |
| "infra_step": true, |
| "name": "get uninteresting hashes", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@python.inline@@@@", |
| "@@@STEP_LOG_LINE@python.inline@import contextlib@@@", |
| "@@@STEP_LOG_LINE@python.inline@import math@@@", |
| "@@@STEP_LOG_LINE@python.inline@import socket@@@", |
| "@@@STEP_LOG_LINE@python.inline@import sys@@@", |
| "@@@STEP_LOG_LINE@python.inline@import time@@@", |
| "@@@STEP_LOG_LINE@python.inline@import urllib2@@@", |
| "@@@STEP_LOG_LINE@python.inline@@@@", |
| "@@@STEP_LOG_LINE@python.inline@HASHES_URL = sys.argv[1]@@@", |
| "@@@STEP_LOG_LINE@python.inline@RETRIES = 5@@@", |
| "@@@STEP_LOG_LINE@python.inline@TIMEOUT = 60@@@", |
| "@@@STEP_LOG_LINE@python.inline@WAIT_BASE = 15@@@", |
| "@@@STEP_LOG_LINE@python.inline@@@@", |
| "@@@STEP_LOG_LINE@python.inline@socket.setdefaulttimeout(TIMEOUT)@@@", |
| "@@@STEP_LOG_LINE@python.inline@for retry in range(RETRIES):@@@", |
| "@@@STEP_LOG_LINE@python.inline@ try:@@@", |
| "@@@STEP_LOG_LINE@python.inline@ with contextlib.closing(@@@", |
| "@@@STEP_LOG_LINE@python.inline@ urllib2.urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@", |
| "@@@STEP_LOG_LINE@python.inline@ hashes = w.read()@@@", |
| "@@@STEP_LOG_LINE@python.inline@ with open(sys.argv[2], 'w') as f:@@@", |
| "@@@STEP_LOG_LINE@python.inline@ f.write(hashes)@@@", |
| "@@@STEP_LOG_LINE@python.inline@ break@@@", |
| "@@@STEP_LOG_LINE@python.inline@ except Exception as e:@@@", |
| "@@@STEP_LOG_LINE@python.inline@ print 'Failed to get uninteresting hashes from %s:' % HASHES_URL@@@", |
| "@@@STEP_LOG_LINE@python.inline@ print e@@@", |
| "@@@STEP_LOG_LINE@python.inline@ if retry == RETRIES:@@@", |
| "@@@STEP_LOG_LINE@python.inline@ raise@@@", |
| "@@@STEP_LOG_LINE@python.inline@ waittime = WAIT_BASE * math.pow(2, retry)@@@", |
| "@@@STEP_LOG_LINE@python.inline@ print 'Retry in %d seconds.' % waittime@@@", |
| "@@@STEP_LOG_LINE@python.inline@ time.sleep(waittime)@@@", |
| "@@@STEP_LOG_END@python.inline@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "python", |
| "-u", |
| "import os\nprint os.environ.get('SWARMING_BOT_ID', '')\n" |
| ], |
| "name": "get swarming bot id", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@python.inline@import os@@@", |
| "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_BOT_ID', '')@@@", |
| "@@@STEP_LOG_END@python.inline@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "python", |
| "-u", |
| "import os\nprint os.environ.get('SWARMING_TASK_ID', '')\n" |
| ], |
| "name": "get swarming task id", |
| "~followup_annotations": [ |
| "@@@STEP_LOG_LINE@python.inline@import os@@@", |
| "@@@STEP_LOG_LINE@python.inline@print os.environ.get('SWARMING_TASK_ID', '')@@@", |
| "@@@STEP_LOG_END@python.inline@@@" |
| ] |
| }, |
| { |
| "cmd": [ |
| "powershell", |
| "-ExecutionPolicy", |
| "Unrestricted", |
| "-File", |
| "RECIPE_MODULE[skia::flavor]\\resources\\win_run_and_check_log.ps1", |
| "[START_DIR]\\build\\dm", |
| "--example", |
| "--flags", |
| "--properties", |
| "bot", |
| "skia-bot-123", |
| "key1", |
| "value1", |
| "task", |
| "123456", |
| "--resourcePath", |
| "[START_DIR]\\skia\\resources", |
| "--skps", |
| "[START_DIR]\\skp", |
| "--images", |
| "[START_DIR]\\skimage\\dm", |
| "--colorImages", |
| "[START_DIR]\\skimage\\colorspace", |
| "--svgs", |
| "[START_DIR]\\svg\\svg", |
| "--uninterestingHashesFile", |
| "[START_DIR]\\tmp\\uninteresting_hashes.txt", |
| "--writePath", |
| "[START_DIR]\\[SWARM_OUT_DIR]" |
| ], |
| "env": { |
| "CHROME_HEADLESS": "1", |
| "PATH": "<PATH>;RECIPE_REPO[depot_tools]" |
| }, |
| "name": "dm" |
| }, |
| { |
| "name": "$result" |
| } |
| ] |