12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788 |
- 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
|