88 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			88 lines
		
	
	
		
			2.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| sudo: true  # required for CI push into Kubernetes.
 | |
| language: go
 | |
| os: linux
 | |
| go: "1.10"
 | |
| 
 | |
| go_import_path: github.com/google/certificate-transparency-go
 | |
| 
 | |
| env:
 | |
|   - GCE_CI=${ENABLE_GCE_CI} GOFLAGS=
 | |
|   - GOFLAGS=-race
 | |
|   - GOFLAGS=      WITH_ETCD=true WITH_COVERAGE=true
 | |
|   - GOFLAGS=-race WITH_ETCD=true
 | |
| 
 | |
| matrix:
 | |
|   fast_finish: true
 | |
| 
 | |
| addons:
 | |
|   apt:
 | |
|     sources:
 | |
|       - mysql-5.7-trusty
 | |
|     packages:
 | |
|       - mysql-server
 | |
|       - mysql-client
 | |
| 
 | |
| services:
 | |
|   - docker
 | |
| 
 | |
| before_install:
 | |
|   - sudo mysql -e "use mysql; update user set authentication_string=PASSWORD('') where User='root'; update user set plugin='mysql_native_password';FLUSH PRIVILEGES;"
 | |
|   - sudo mysql_upgrade
 | |
|   - sudo service mysql restart
 | |
| 
 | |
| install:
 | |
|   - mkdir ../protoc
 | |
|   - |
 | |
|     (
 | |
|       cd ../protoc
 | |
|       wget https://github.com/google/protobuf/releases/download/v3.5.1/protoc-3.5.1-${TRAVIS_OS_NAME}-x86_64.zip
 | |
|       unzip protoc-3.5.1-${TRAVIS_OS_NAME}-x86_64.zip
 | |
|     )
 | |
|   - export PATH=$(pwd)/../protoc/bin:$PATH
 | |
|   - go get -d -t ./...
 | |
|   - go get github.com/alecthomas/gometalinter
 | |
|   - gometalinter --install
 | |
|   - go get -u github.com/golang/protobuf/proto
 | |
|   - go get -u github.com/golang/protobuf/protoc-gen-go
 | |
|   - go install github.com/golang/mock/mockgen
 | |
|   # install vendored etcd binary
 | |
|   - go install ./vendor/github.com/coreos/etcd/cmd/etcd
 | |
|   - go install ./vendor/github.com/coreos/etcd/cmd/etcdctl
 | |
|   - pushd ${GOPATH}/src/github.com/google/trillian
 | |
|   - go get -d -t ./...
 | |
|   - popd
 | |
| 
 | |
| script:
 | |
|   - set -e
 | |
|   - cd $HOME/gopath/src/github.com/google/certificate-transparency-go
 | |
|   - ./scripts/presubmit.sh ${PRESUBMIT_OPTS} ${WITH_COVERAGE:+--coverage}
 | |
|   - |
 | |
|       # Check re-generation didn't change anything
 | |
|       status=$(git status --porcelain | grep -v coverage) || :
 | |
|       if [[ -n ${status} ]]; then
 | |
|         echo "Regenerated files differ from checked-in versions: ${status}"
 | |
|         git status
 | |
|         git diff
 | |
|         exit 1
 | |
|       fi
 | |
|   - |
 | |
|       if [[ "${WITH_ETCD}" == "true" ]]; then
 | |
|         export ETCD_DIR="${GOPATH}/bin"
 | |
|       fi
 | |
|   - ./trillian/integration/integration_test.sh
 | |
|   - HAMMER_OPTS="--operations=1500" ./trillian/integration/ct_hammer_test.sh
 | |
|   - set +e
 | |
| 
 | |
| after_success:
 | |
|   - cp /tmp/coverage.txt .
 | |
|   - bash <(curl -s https://codecov.io/bash)
 | |
|   - |
 | |
|       # Push up to GCE CI instance if we're running after a merge to master
 | |
|       if [[ "${GCE_CI}" == "true" ]] && [[ $TRAVIS_PULL_REQUEST == "false" ]] && [[ $TRAVIS_BRANCH == "master" ]]; then
 | |
|         . scripts/install_cloud.sh
 | |
|         echo ${GCLOUD_SERVICE_KEY_CI} | base64 --decode -i > ${HOME}/gcloud-service-key.json
 | |
|         gcloud auth activate-service-account --key-file ${HOME}/gcloud-service-key.json
 | |
|         rm ${HOME}/gcloud-service-key.json
 | |
|         . scripts/deploy_gce_ci.sh
 | |
|       fi
 |