Home | History | Annotate | Download | only in full.expected
      1 [
      2   {
      3     "cmd": [
      4       "python",
      5       "-u",
      6       "RECIPE_MODULE[recipe_engine::file]/resources/fileutil.py",
      7       "--json-output",
      8       "/path/to/tmp/json",
      9       "ensure-directory",
     10       "--mode",
     11       "0777",
     12       "[START_DIR]/cache/docker/skqp"
     13     ],
     14     "infra_step": true,
     15     "name": "mkdirs out_dir"
     16   },
     17   {
     18     "cmd": [
     19       "docker",
     20       "run",
     21       "--rm",
     22       "--workdir",
     23       "/SRC/skia/infra/skqp",
     24       "--volume",
     25       "[START_DIR]/cache/work:/SRC",
     26       "--volume",
     27       "[START_DIR]/cache/docker/skqp:/OUT",
     28       "gcr.io/skia-public/android-skqp:8.1_v3",
     29       "./build_apk.sh"
     30     ],
     31     "env": {
     32       "CHROME_HEADLESS": "1",
     33       "DOCKER_CONFIG": "/home/chrome-bot/.docker",
     34       "PATH": "<PATH>:RECIPE_REPO[depot_tools]"
     35     },
     36     "name": "Build SKQP apk with Docker"
     37   },
     38   {
     39     "cmd": [
     40       "python",
     41       "-u",
     42       "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'hello-opencl', 'hello-opencl.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'skottie_tool', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']\n\ntry:\n  os.makedirs(dst)\nexcept OSError as e:\n  if e.errno != errno.EEXIST:\n    raise\n\nfor pattern in build_products_whitelist:\n  path = os.path.join(src, pattern)\n  for f in glob.glob(path):\n    dst_path = os.path.join(dst, os.path.relpath(f, src))\n    if not os.path.isdir(os.path.dirname(dst_path)):\n      os.makedirs(os.path.dirname(dst_path))\n    print 'Copying build product %s to %s' % (f, dst_path)\n    shutil.move(f, dst_path)\n",
     43       "[START_DIR]/cache/work/skia/out/Build-Debian9-Clang-x86-devrel-Android_SKQP/devrel",
     44       "[START_DIR]/[SWARM_OUT_DIR]/out/devrel"
     45     ],
     46     "infra_step": true,
     47     "name": "copy build products",
     48     "~followup_annotations": [
     49       "@@@STEP_LOG_LINE (a] python.inline@import errno@@@",
     50       "@@@STEP_LOG_LINE (a] python.inline@import glob@@@",
     51       "@@@STEP_LOG_LINE (a] python.inline@import os@@@",
     52       "@@@STEP_LOG_LINE (a] python.inline@import shutil@@@",
     53       "@@@STEP_LOG_LINE (a] python.inline@import sys@@@",
     54       "@@@STEP_LOG_LINE (a] python.inline@@@@",
     55       "@@@STEP_LOG_LINE (a] python.inline@src = sys.argv[1]@@@",
     56       "@@@STEP_LOG_LINE (a] python.inline@dst = sys.argv[2]@@@",
     57       "@@@STEP_LOG_LINE (a] python.inline@build_products_whitelist = ['dm', 'dm.exe', 'dm.app', 'nanobench.app', 'get_images_from_skps', 'get_images_from_skps.exe', 'hello-opencl', 'hello-opencl.exe', 'nanobench', 'nanobench.exe', 'skpbench', 'skpbench.exe', '*.so', '*.dll', '*.dylib', 'skia_launcher', 'skiaserve', 'skottie_tool', 'lib/*.so', 'run_testlab', 'skqp-universal-debug.apk', 'whitelist_devices.json']@@@",
     58       "@@@STEP_LOG_LINE (a] python.inline@@@@",
     59       "@@@STEP_LOG_LINE (a] python.inline@try:@@@",
     60       "@@@STEP_LOG_LINE (a] python.inline@  os.makedirs(dst)@@@",
     61       "@@@STEP_LOG_LINE (a] python.inline@except OSError as e:@@@",
     62       "@@@STEP_LOG_LINE (a] python.inline@  if e.errno != errno.EEXIST:@@@",
     63       "@@@STEP_LOG_LINE (a] python.inline@    raise@@@",
     64       "@@@STEP_LOG_LINE (a] python.inline@@@@",
     65       "@@@STEP_LOG_LINE (a] python.inline@for pattern in build_products_whitelist:@@@",
     66       "@@@STEP_LOG_LINE (a] python.inline@  path = os.path.join(src, pattern)@@@",
     67       "@@@STEP_LOG_LINE (a] python.inline@  for f in glob.glob(path):@@@",
     68       "@@@STEP_LOG_LINE (a] python.inline@    dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
     69       "@@@STEP_LOG_LINE (a] python.inline@    if not os.path.isdir(os.path.dirname(dst_path)):@@@",
     70       "@@@STEP_LOG_LINE (a] python.inline@      os.makedirs(os.path.dirname(dst_path))@@@",
     71       "@@@STEP_LOG_LINE (a] python.inline@    print 'Copying build product %s to %s' % (f, dst_path)@@@",
     72       "@@@STEP_LOG_LINE (a] python.inline@    shutil.move(f, dst_path)@@@",
     73       "@@@STEP_LOG_END (a] python.inline@@@"
     74     ]
     75   },
     76   {
     77     "cmd": [
     78       "python",
     79       "-u",
     80       "import errno\nimport glob\nimport os\nimport shutil\nimport sys\n\nsrc = sys.argv[1]\ndst = sys.argv[2]\nbuild_products_whitelist = ['*.apk']\n\ntry:\n  os.makedirs(dst)\nexcept OSError as e:\n  if e.errno != errno.EEXIST:\n    raise\n\nfor pattern in build_products_whitelist:\n  path = os.path.join(src, pattern)\n  for f in glob.glob(path):\n    dst_path = os.path.join(dst, os.path.relpath(f, src))\n    if not os.path.isdir(os.path.dirname(dst_path)):\n      os.makedirs(os.path.dirname(dst_path))\n    print 'Copying build product %s to %s' % (f, dst_path)\n    # Because Docker usually has some strange permissions (like root\n    # ownership), we'd rather not keep those around. copyfile doesn't\n    # keep the metadata around, so that helps us.\n    shutil.copyfile(f, dst_path)\n",
     81       "[START_DIR]/cache/docker/skqp",
     82       "[START_DIR]/[SWARM_OUT_DIR]/out/devrel"
     83     ],
     84     "infra_step": true,
     85     "name": "copy apk output",
     86     "~followup_annotations": [
     87       "@@@STEP_LOG_LINE (a] python.inline@import errno@@@",
     88       "@@@STEP_LOG_LINE (a] python.inline@import glob@@@",
     89       "@@@STEP_LOG_LINE (a] python.inline@import os@@@",
     90       "@@@STEP_LOG_LINE (a] python.inline@import shutil@@@",
     91       "@@@STEP_LOG_LINE (a] python.inline@import sys@@@",
     92       "@@@STEP_LOG_LINE (a] python.inline@@@@",
     93       "@@@STEP_LOG_LINE (a] python.inline@src = sys.argv[1]@@@",
     94       "@@@STEP_LOG_LINE (a] python.inline@dst = sys.argv[2]@@@",
     95       "@@@STEP_LOG_LINE (a] python.inline@build_products_whitelist = ['*.apk']@@@",
     96       "@@@STEP_LOG_LINE (a] python.inline@@@@",
     97       "@@@STEP_LOG_LINE (a] python.inline@try:@@@",
     98       "@@@STEP_LOG_LINE (a] python.inline@  os.makedirs(dst)@@@",
     99       "@@@STEP_LOG_LINE (a] python.inline@except OSError as e:@@@",
    100       "@@@STEP_LOG_LINE (a] python.inline@  if e.errno != errno.EEXIST:@@@",
    101       "@@@STEP_LOG_LINE (a] python.inline@    raise@@@",
    102       "@@@STEP_LOG_LINE (a] python.inline@@@@",
    103       "@@@STEP_LOG_LINE (a] python.inline@for pattern in build_products_whitelist:@@@",
    104       "@@@STEP_LOG_LINE (a] python.inline@  path = os.path.join(src, pattern)@@@",
    105       "@@@STEP_LOG_LINE (a] python.inline@  for f in glob.glob(path):@@@",
    106       "@@@STEP_LOG_LINE (a] python.inline@    dst_path = os.path.join(dst, os.path.relpath(f, src))@@@",
    107       "@@@STEP_LOG_LINE (a] python.inline@    if not os.path.isdir(os.path.dirname(dst_path)):@@@",
    108       "@@@STEP_LOG_LINE (a] python.inline@      os.makedirs(os.path.dirname(dst_path))@@@",
    109       "@@@STEP_LOG_LINE (a] python.inline@    print 'Copying build product %s to %s' % (f, dst_path)@@@",
    110       "@@@STEP_LOG_LINE (a] python.inline@    # Because Docker usually has some strange permissions (like root@@@",
    111       "@@@STEP_LOG_LINE (a] python.inline@    # ownership), we'd rather not keep those around. copyfile doesn't@@@",
    112       "@@@STEP_LOG_LINE (a] python.inline@    # keep the metadata around, so that helps us.@@@",
    113       "@@@STEP_LOG_LINE (a] python.inline@    shutil.copyfile(f, dst_path)@@@",
    114       "@@@STEP_LOG_END (a] python.inline@@@"
    115     ]
    116   },
    117   {
    118     "jsonResult": null,
    119     "name": "$result"
    120   }
    121 ]