blob: 8c249a551cb3cc56afb9b5249dcb2df4d86711a6 [file] [log] [blame]
[
{
"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/lottie-samples/VERSION",
"/path/to/tmp/"
],
"infra_step": true,
"name": "Get lottie-samples 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/LOTTIE_VERSION"
],
"infra_step": true,
"name": "write LOTTIE_VERSION",
"~followup_annotations": [
"@@@STEP_LOG_LINE@LOTTIE_VERSION@42@@@",
"@@@STEP_LOG_END@LOTTIE_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\n\nfrom urllib.request import urlopen\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 urlopen(HASHES_URL, timeout=TIMEOUT)) as w:\n hashes = w.read().decode('utf-8')\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@@@@",
"@@@STEP_LOG_LINE@python.inline@from urllib.request import urlopen@@@",
"@@@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@ urlopen(HASHES_URL, timeout=TIMEOUT)) as w:@@@",
"@@@STEP_LOG_LINE@python.inline@ hashes = w.read().decode('utf-8')@@@",
"@@@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": [
"catchsegv",
"[START_DIR]/build/dm",
"--example",
"--flags",
"--properties",
"bot",
"skia-bot-123",
"key1",
"value1",
"task",
"123456",
"--resourcePath",
"[START_DIR]/skia/resources",
"--lotties",
"[START_DIR]/skia/resources/skottie",
"[START_DIR]/lottie-samples",
"--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"
},
{
"cmd": [
"vpython",
"-u",
"RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
"--json-output",
"/path/to/tmp/json",
"glob",
"[START_DIR]/[SWARM_OUT_DIR]",
"*.png"
],
"infra_step": true,
"name": "find .png images",
"~followup_annotations": [
"@@@STEP_LOG_LINE@glob@[START_DIR]/[SWARM_OUT_DIR]/someimage.png@@@",
"@@@STEP_LOG_END@glob@@@"
]
},
{
"cmd": [
"gsutil",
"-m",
"cp",
"[START_DIR]/[SWARM_OUT_DIR]/*.png",
"gs://skia-infra-gm/dm-images-v1"
],
"name": "upload .png images"
},
{
"cmd": [
"gsutil",
"cp",
"-Z",
"[START_DIR]/[SWARM_OUT_DIR]/dm.json",
"gs://skia-infra-gm/trybot/dm-json-v1/2012/05/14/12/1234_7/Test-Debian10-Clang-GCE-CPU-AVX2-x86_64-Release-All-Lottie/1337000001/dm.json"
],
"name": "upload dm.json"
},
{
"name": "$result"
}
]