#!/bin/bash docker swarm init --advertise-addr=127.0.0.1 set -e ./deploy_stack.sh --no-auth # The timeout is required on Travis due to some tasks not starting in # time and being deemed to have failed. docker service update func_gateway --image=openfaas/gateway:latest-dev \ --update-failure-action=continue \ --update-monitor=20s # Script makes sure OpenFaaS API gateway is ready before running tests wait_success=false for i in {1..30}; do echo "Checking if 127.0.0.1:8000 is up.. ${i}/30" status_code=$(curl --silent --output /dev/stderr --write-out "%{http_code}" http://127.0.0.1:8080/) if [ "$status_code" -ge 200 -a "$status_code" -lt 400 ]; then echo "Deploying gateway success" wait_success=true break fi sleep 0.5 done if [ "$wait_success" != true ] ; then echo "Failed to wait for gateway" exit 1 fi cd .. echo $GOPATH if [ ! -d "$GOPATH/src/github.com/openfaas/" ]; then mkdir -p $GOPATH/src/github.com/openfaas/ cp -r faas $GOPATH/src/github.com/openfaas/ fi if [ ! -d "$GOPATH/src/github.com/openfaas/certifier" ]; then git clone https://github.com/openfaas/certifier fi echo "Deploying OpenFaaS stack.yml from $(pwd)/faas" command -v faas-cli >/dev/null 2>&1 || curl -sSL https://cli.openfaas.com | sudo sh faas-cli deploy -f ./faas/stack.yml wait_success=false for i in {1..30} do echo "Checking if 127.0.0.1:8080/function/echoit is up.. ${i}/30" status_code=$(curl --silent --output /dev/stderr --write-out "%{http_code}" http://127.0.0.1:8080/function/echoit -d "hello") if [ "$status_code" -ge 200 -a "$status_code" -lt 400 ]; then echo "Deploying OpenFaaS stack.yml success" wait_success=true break else echo "Attempt $i lets try again" fi printf '.' sleep 0.5 done if [ "$wait_success" != true ] ; then echo "Failed to wait for stack.yml to deploy" exit 1 fi echo Running integration tests cd $GOPATH/src/github.com/openfaas/faas/gateway/tests/integration && \ go test -v -count=1 echo Running certifier export OPENFAAS_URL=http://127.0.0.1:8080/ cd $GOPATH/src/github.com/openfaas/certifier && \ make test-swarm echo Integration tests all PASSED exit 0