diff --git a/.travis.yml b/.travis.yml index f41cca97..5a84c550 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,20 +1,25 @@ sudo: required dist: trusty - language: go + go: - - 1.8 - - tip +- 1.8 +- tip + +cache: + directories: + - $HOME/google-cloud-sdk/ install: - - go get github.com/Masterminds/glide - - curl -L https://github.com/coreos/etcd/releases/download/v3.0.15/etcd-v3.0.15-linux-amd64.tar.gz -o /tmp/etcd-v3.0.15-linux-amd64.tar.gz && mkdir -p /tmp/test-etcd && tar xzvf /tmp/etcd-v3.0.15-linux-amd64.tar.gz -C /tmp/test-etcd --strip-components=1 +- go get github.com/Masterminds/glide +- hack/travis-kube-setup.sh + +env: +- KUBECONFIG=${HOME}/.kube/config script: - - cd ${TRAVIS_BUILD_DIR} - - glide install - - ./fission-bundle/build.sh - - hack/verify-gofmt.sh - - /tmp/test-etcd/etcd & - - go test -v -i $(go list ./... | grep -v '/vendor/' | grep -v 'examples/go') - - go test -v $(go list ./... | grep -v '/vendor/' | grep -v 'examples/go') +- cd ${TRAVIS_BUILD_DIR} +- glide install +- ./fission-bundle/build.sh +- hack/verify-gofmt.sh +- hack/runtests.sh diff --git a/hack/runtests.sh b/hack/runtests.sh new file mode 100755 index 00000000..1aa73362 --- /dev/null +++ b/hack/runtests.sh @@ -0,0 +1,7 @@ +#!/bin/bash + +# The poolmgr unit test only works with NodePort-type services for +# now. So disable it for our travis ci tests. + +go test -v -i $(go list ./... | grep -v '/vendor/' | grep -v 'examples/go') +go test -v $(go list ./... | grep -v '/vendor/' | grep -v 'examples/go' | grep -v poolmgr) diff --git a/hack/travis-kube-setup.sh b/hack/travis-kube-setup.sh new file mode 100755 index 00000000..64b8da85 --- /dev/null +++ b/hack/travis-kube-setup.sh @@ -0,0 +1,53 @@ +#!/bin/bash + +# +# Download kubectl, save kubeconfig, and ensure we can access the test cluster +# + +set -e + +curl -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl +chmod +x ./kubectl +sudo mv ./kubectl /usr/local/bin/kubectl + +mkdir ${HOME}/.kube + +# echo $KUBECONFIG_CONTENTS | base64 -D - > ${HOME}/.kube/config +# kubectl version + +# gcloud stuff +# https://stackoverflow.com/questions/38762590/how-to-install-google-cloud-sdk-on-travis + +if [ ! -d "${HOME}/google-cloud-sdk/bin" ] +then + rm -rf $HOME/google-cloud-sdk + export CLOUDSDK_CORE_DISABLE_PROMPTS=1 + curl https://sdk.cloud.google.com | bash +fi + +# gcloud command +export PATH=${HOME}/google-cloud-sdk/bin:${PATH} + +# ensure we have the gcloud binary +gcloud version + +# get gcloud credentials +echo $FISSION_CI_SERVICE_ACCOUNT | base64 -d - > ${HOME}/gcloud-service-key.json +gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json + +# get kube config +gcloud container clusters get-credentials fission-ci-1 --zone us-central1-a --project fission-ci + +# remove gcloud creds +unset FISSION_CI_SERVICE_ACCOUNT +rm ${HOME}/gcloud-service-key.json + +# does it work? + +if [ ! -f ${HOME}/.kube/config ] +then + echo "Missing kubeconfig" + exit 1 +fi + +kubectl get node