1*c8dee2aaSAndroid Build Coastguard Worker#!/bin/bash 2*c8dee2aaSAndroid Build Coastguard Worker# Copyright 2018 Google LLC 3*c8dee2aaSAndroid Build Coastguard Worker# 4*c8dee2aaSAndroid Build Coastguard Worker# Use of this source code is governed by a BSD-style license that can be 5*c8dee2aaSAndroid Build Coastguard Worker# found in the LICENSE file. 6*c8dee2aaSAndroid Build Coastguard Worker 7*c8dee2aaSAndroid Build Coastguard Worker# This assumes it is being run inside a docker container of gold-karma-chrome-tests 8*c8dee2aaSAndroid Build Coastguard Worker# and a Skia checkout has been mounted at /SRC and the output directory 9*c8dee2aaSAndroid Build Coastguard Worker# is mounted at /OUT 10*c8dee2aaSAndroid Build Coastguard Worker 11*c8dee2aaSAndroid Build Coastguard Workerset -ex 12*c8dee2aaSAndroid Build Coastguard Worker 13*c8dee2aaSAndroid Build Coastguard Worker#BASE_DIR is the dir this script is in ($SKIA_ROOT/infra/pathkit) 14*c8dee2aaSAndroid Build Coastguard WorkerBASE_DIR=`cd $(dirname ${BASH_SOURCE[0]}) && pwd` 15*c8dee2aaSAndroid Build Coastguard WorkerPATHKIT_DIR=$BASE_DIR/../../modules/pathkit 16*c8dee2aaSAndroid Build Coastguard Worker 17*c8dee2aaSAndroid Build Coastguard Worker# We avoid a lot of file permission errors by copying the tests and binary into the Docker 18*c8dee2aaSAndroid Build Coastguard Worker# container and running npm ci there. 19*c8dee2aaSAndroid Build Coastguard Workercp -R $PATHKIT_DIR /tmp/work 20*c8dee2aaSAndroid Build Coastguard Workercd /tmp/work 21*c8dee2aaSAndroid Build Coastguard Workernpm ci --cache /tmp/npmcache 22*c8dee2aaSAndroid Build Coastguard Worker 23*c8dee2aaSAndroid Build Coastguard Worker# Start the aggregator in the background 24*c8dee2aaSAndroid Build Coastguard Worker/opt/gold-aggregator $@ & 25*c8dee2aaSAndroid Build Coastguard Worker# Run the tests 26*c8dee2aaSAndroid Build Coastguard Workernpx karma start /tmp/work/karma.conf.js --single-run 27*c8dee2aaSAndroid Build Coastguard Worker# Tell the aggregator to dump the json 28*c8dee2aaSAndroid Build Coastguard Worker# This curl command gets the HTTP code and stores it into $CODE 29*c8dee2aaSAndroid Build Coastguard WorkerCODE=`curl -s -o /dev/null -I -w "%{http_code}" -X POST localhost:8081/dump_json` 30*c8dee2aaSAndroid Build Coastguard Workerif [ $CODE -ne 200 ]; then 31*c8dee2aaSAndroid Build Coastguard Worker # If we don't get 200 back, something is wrong with writing to disk, so exit with error 32*c8dee2aaSAndroid Build Coastguard Worker exit 1 33*c8dee2aaSAndroid Build Coastguard Workerfi 34