1*c8dee2aaSAndroid Build Coastguard WorkerDocker 2*c8dee2aaSAndroid Build Coastguard Worker====== 3*c8dee2aaSAndroid Build Coastguard Worker 4*c8dee2aaSAndroid Build Coastguard WorkerDocker files to ease working with PathKit and CanvasKit. 5*c8dee2aaSAndroid Build Coastguard Worker 6*c8dee2aaSAndroid Build Coastguard Workeremsdk-base 7*c8dee2aaSAndroid Build Coastguard Worker---------- 8*c8dee2aaSAndroid Build Coastguard Worker 9*c8dee2aaSAndroid Build Coastguard WorkerThis image has an Emscripten SDK environment that can be used for 10*c8dee2aaSAndroid Build Coastguard Workercompiling projects (e.g. Skia's PathKit) to WASM/asm.js. 11*c8dee2aaSAndroid Build Coastguard Worker 12*c8dee2aaSAndroid Build Coastguard WorkerThis image tracks the official emscripten Docker image and installs 13*c8dee2aaSAndroid Build Coastguard Workerpython 2 (which some of our scripts still use). 14*c8dee2aaSAndroid Build Coastguard Worker 15*c8dee2aaSAndroid Build Coastguard Worker make publish_emsdk_base 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard WorkerFor testing the image locally, the following flow can be helpful: 18*c8dee2aaSAndroid Build Coastguard Worker 19*c8dee2aaSAndroid Build Coastguard Worker docker build -t emsdk-base ./emsdk-base/ 20*c8dee2aaSAndroid Build Coastguard Worker # Run bash in it to poke around and make sure things are properly installed 21*c8dee2aaSAndroid Build Coastguard Worker docker run -it emsdk-base /bin/bash 22*c8dee2aaSAndroid Build Coastguard Worker # Compile PathKit with the local image 23*c8dee2aaSAndroid Build Coastguard Worker docker run -v $SKIA_ROOT:/SRC -v $SKIA_ROOT/out/dockerpathkit:/OUT emsdk-base /SRC/infra/pathkit/build_pathkit.sh 24*c8dee2aaSAndroid Build Coastguard Worker 25*c8dee2aaSAndroid Build Coastguard Workerkarma-chrome-tests 26*c8dee2aaSAndroid Build Coastguard Worker------------------ 27*c8dee2aaSAndroid Build Coastguard Worker 28*c8dee2aaSAndroid Build Coastguard WorkerThis image has Google Chrome and karma/jasmine installed on it, which can 29*c8dee2aaSAndroid Build Coastguard Workerbe used to run JS tests. 30*c8dee2aaSAndroid Build Coastguard Worker 31*c8dee2aaSAndroid Build Coastguard WorkerThis image is standalone and does not have any extra dependencies that make 32*c8dee2aaSAndroid Build Coastguard Workerit Skia-exclusive. 33*c8dee2aaSAndroid Build Coastguard Worker 34*c8dee2aaSAndroid Build Coastguard WorkerIt gets manually pushed anytime there's an update to the Dockerfile or relevant 35*c8dee2aaSAndroid Build Coastguard Workerinstalled libraries. 36*c8dee2aaSAndroid Build Coastguard Worker 37*c8dee2aaSAndroid Build Coastguard Worker make publish_karma_chrome_tests 38*c8dee2aaSAndroid Build Coastguard Worker 39*c8dee2aaSAndroid Build Coastguard WorkerOf note, some versions (generally before Chrome 60) run out of space on /dev/shm when 40*c8dee2aaSAndroid Build Coastguard Workerusing the default Docker settings. To be safe, it is recommended to run the container 41*c8dee2aaSAndroid Build Coastguard Workerwith the flag --shm-size=2gb. 42*c8dee2aaSAndroid Build Coastguard Worker 43*c8dee2aaSAndroid Build Coastguard WorkerFor testing the image locally, the following can be helpful: 44*c8dee2aaSAndroid Build Coastguard Worker 45*c8dee2aaSAndroid Build Coastguard Worker docker build -t karma-chrome-tests ./karma-chrome-tests/ 46*c8dee2aaSAndroid Build Coastguard Worker # Run bash in it to poke around and make sure things are properly installed 47*c8dee2aaSAndroid Build Coastguard Worker docker run -it --shm-size=2gb karma-chrome-tests /bin/bash 48*c8dee2aaSAndroid Build Coastguard Worker # Run the tests (but not capturing Gold output) with the local source repo 49*c8dee2aaSAndroid Build Coastguard Worker docker run --shm-size=2gb -v $SKIA_ROOT:/SRC karma-chrome-tests karma start /SRC/infra/pathkit/karma-docker.conf.js --single-run 50*c8dee2aaSAndroid Build Coastguard Worker 51*c8dee2aaSAndroid Build Coastguard Workergold-karma-chrome-tests 52*c8dee2aaSAndroid Build Coastguard Worker------------------ 53*c8dee2aaSAndroid Build Coastguard Worker 54*c8dee2aaSAndroid Build Coastguard WorkerThis image has Google Chrome and karma/jasmine installed on it, which can 55*c8dee2aaSAndroid Build Coastguard Workerbe used to run JS tests. 56*c8dee2aaSAndroid Build Coastguard Worker 57*c8dee2aaSAndroid Build Coastguard WorkerThis image assumes the runner wants to collect the output images and JSON data 58*c8dee2aaSAndroid Build Coastguard Workerspecific to Skia Infra's Gold tool (image correctness). 59*c8dee2aaSAndroid Build Coastguard Worker 60*c8dee2aaSAndroid Build Coastguard WorkerIt gets manually pushed anytime there's an update to the Dockerfile or the parent 61*c8dee2aaSAndroid Build Coastguard Workerimage (karma-chrome-tests). 62*c8dee2aaSAndroid Build Coastguard Worker 63*c8dee2aaSAndroid Build Coastguard Worker # Run the following from $SKIA_ROOT/infra/pathkit 64*c8dee2aaSAndroid Build Coastguard Worker make publish_gold_karma_chrome_tests 65*c8dee2aaSAndroid Build Coastguard Worker 66*c8dee2aaSAndroid Build Coastguard WorkerOf note, some versions (generally before Chrome 60) run out of space on /dev/shm when 67*c8dee2aaSAndroid Build Coastguard Workerusing the default Docker settings. To be safe, it is recommended to run the container 68*c8dee2aaSAndroid Build Coastguard Workerwith the flag --shm-size=2gb. 69*c8dee2aaSAndroid Build Coastguard Worker 70*c8dee2aaSAndroid Build Coastguard WorkerFor testing the image locally, the following can be helpful: 71*c8dee2aaSAndroid Build Coastguard Worker 72*c8dee2aaSAndroid Build Coastguard Worker # Run the following from $SKIA_ROOT/infra/pathkit 73*c8dee2aaSAndroid Build Coastguard Worker make gold-docker-image 74*c8dee2aaSAndroid Build Coastguard Worker # Run bash in it to poke around and make sure things are properly installed 75*c8dee2aaSAndroid Build Coastguard Worker docker run -it --shm-size=2gb gold-karma-chrome-tests /bin/bash 76*c8dee2aaSAndroid Build Coastguard Worker # Run the tests and collect Gold output with the local source repo 77*c8dee2aaSAndroid Build Coastguard Worker mkdir -p -m 0777 /tmp/dockergold 78*c8dee2aaSAndroid Build Coastguard Worker docker run --shm-size=2gb -v $SKIA_ROOT:/SRC -v /tmp/dockergold:/OUT gold-karma-chrome-tests /SRC/infra/pathkit/test_pathkit.sh 79*c8dee2aaSAndroid Build Coastguard Worker 80*c8dee2aaSAndroid Build Coastguard Workerperf-karma-chrome-tests 81*c8dee2aaSAndroid Build Coastguard Worker------------------ 82*c8dee2aaSAndroid Build Coastguard Worker 83*c8dee2aaSAndroid Build Coastguard WorkerThis image has Google Chrome and karma/jasmine installed on it, which can 84*c8dee2aaSAndroid Build Coastguard Workerbe used to run JS tests. 85*c8dee2aaSAndroid Build Coastguard Worker 86*c8dee2aaSAndroid Build Coastguard WorkerThis image assumes the runner wants to collect the output images and JSON data 87*c8dee2aaSAndroid Build Coastguard Workerspecific to Skia Infra's Perf tool. 88*c8dee2aaSAndroid Build Coastguard Worker 89*c8dee2aaSAndroid Build Coastguard WorkerIt gets manually pushed anytime there's an update to the Dockerfile or the parent 90*c8dee2aaSAndroid Build Coastguard Workerimage (karma-chrome-tests). 91*c8dee2aaSAndroid Build Coastguard Worker 92*c8dee2aaSAndroid Build Coastguard Worker # Run the following from $SKIA_ROOT/infra/pathkit 93*c8dee2aaSAndroid Build Coastguard Worker make publish_perf_karma_chrome_tests 94*c8dee2aaSAndroid Build Coastguard Worker 95*c8dee2aaSAndroid Build Coastguard WorkerOf note, some versions (generally before Chrome 60) run out of space on /dev/shm when 96*c8dee2aaSAndroid Build Coastguard Workerusing the default Docker settings. To be safe, it is recommended to run the container 97*c8dee2aaSAndroid Build Coastguard Workerwith the flag --shm-size=2gb. 98*c8dee2aaSAndroid Build Coastguard Worker 99*c8dee2aaSAndroid Build Coastguard WorkerFor testing the image locally, the following can be helpful: 100*c8dee2aaSAndroid Build Coastguard Worker 101*c8dee2aaSAndroid Build Coastguard Worker # Run the following from $SKIA_ROOT/infra/pathkit 102*c8dee2aaSAndroid Build Coastguard Worker make perf-docker-image 103*c8dee2aaSAndroid Build Coastguard Worker # Run bash in it to poke around and make sure things are properly installed 104*c8dee2aaSAndroid Build Coastguard Worker docker run -it --shm-size=2gb perf-karma-chrome-tests /bin/bash 105*c8dee2aaSAndroid Build Coastguard Worker # Run the tests and collect Perf output with the local source repo 106*c8dee2aaSAndroid Build Coastguard Worker mkdir -p -m 0777 /tmp/dockerperf 107*c8dee2aaSAndroid Build Coastguard Worker docker run --shm-size=2gb -v $SKIA_ROOT:/SRC -v /tmp/dockerperf:/OUT perf-karma-chrome-tests /SRC/infra/pathkit/perf_pathkit.sh 108