prysm-pulse/.travis.yml
terence tsao c73f4c0fd3 Enable Remote Caching & Use Host GO Version (#578)
* Revert "Add Skip Coverage Condition in Coverage.sh (#416)"

This reverts commit 72a5dd1cf4.

* add coverage.sh back

* remote cache

* fixed formatting

* Add support for cache reads and writes

* trying to get this newline to not be escaped. please behave travis

* last attempt at new line...
2018-09-26 20:08:00 -04:00

145 lines
4.4 KiB
YAML

language: go
go_import_path: github.com/prysmaticlabs/prysm
sudo: false
matrix:
include:
- os: linux
go: 1.10.x
env:
- lint
script:
-
go get github.com/alecthomas/gometalinter && gometalinter --install && gometalinter ./... --deadline=10m --exclude=client/internal/client_helper.go
- os: linux
env:
- todos
install: true # Skip installing go packages
script:
- ./scripts/check-todo.sh
- os: linux
env:
- coverage
script:
- ./scripts/coverage.sh
- bash <(curl -s https://codecov.io/bash)
- os: linux
env: V=0.17.1
before_install:
# Install Bazel
- |
echo "" >> WORKSPACE
echo "go_register_toolchains(go_version = \"host\")" >> WORKSPACE
if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
OS=darwin
else
sysctl kernel.unprivileged_userns_clone=1
OS=linux
fi
URL="https://github.com/bazelbuild/bazel/releases/download/${V}/bazel-${V}-installer-${OS}-x86_64.sh"
wget -O install.sh "${URL}"
chmod +x install.sh
./install.sh --user
rm -f install.sh
# Decrypt service account (only works on prysmaticlabs branches)
- if [[ $encrypted_64ca747eb448_iv ]]; then
openssl aes-256-cbc -K $encrypted_64ca747eb448_key -iv $encrypted_64ca747eb448_iv
-in service-account.json.enc -out /tmp/service-account.json -d;
REMOTE_FLAGS=--config=remote-rw;
else
REMOTE_FLAGS=--config=remote;
fi
install: true # Skip install go packages.
script:
# Ensure everything builds.
- |
bazel \
--bazelrc=.travis-bazelrc \
build \
//... $REMOTE_FLAGS
# Run all tests.
- |
bazel \
--bazelrc=.travis-bazelrc \
test \
//... $REMOTE_FLAGS
# Check that BUILD files are formatted correctly.
- ./scripts/check_gazelle.sh
# Check that target visibility is correct.
- ./scripts/check_visibility.sh
# Shutdown must be last.
- bazel shutdown
- os: osx
env: V=0.17.1
before_install:
# Install Bazel
- |
echo "" >> WORKSPACE
echo "go_register_toolchains(go_version = \"host\")" >> WORKSPACE
if [[ "${TRAVIS_OS_NAME}" == "osx" ]]; then
OS=darwin
else
sysctl kernel.unprivileged_userns_clone=1
OS=linux
fi
URL="https://github.com/bazelbuild/bazel/releases/download/${V}/bazel-${V}-installer-${OS}-x86_64.sh"
wget -O install.sh "${URL}"
chmod +x install.sh
./install.sh --user
rm -f install.sh
# Decrypt service account (only works on prysmaticlabs branches)
- if [[ $encrypted_64ca747eb448_iv ]]; then
openssl aes-256-cbc -K $encrypted_64ca747eb448_key -iv $encrypted_64ca747eb448_iv
-in service-account.json.enc -out /tmp/service-account.json -d;
REMOTE_FLAGS=--config=remote-rw;
else
REMOTE_FLAGS=--config=remote;
fi
install: true # Skip install go packages.
script:
# Ensure everything builds.
- |
bazel \
--bazelrc=.travis-bazelrc \
build \
//... $REMOTE_FLAGS
# Run all tests.
- |
bazel \
--bazelrc=.travis-bazelrc \
test \
//... $REMOTE_FLAGS
# Shutdown must be last.
- bazel shutdown
- language: node_js
os: linux
env:
- solidity
node_js:
- "lts/*"
before_install:
- npm install -g solium
install: true # Skip npm install.
script:
# Check solidity linter.
- solium -d contracts/
notifications:
email: false
after_success:
- wget https://raw.githubusercontent.com/k3rn31p4nic/travis-ci-discord-webhook/master/send.sh
- chmod +x send.sh
- ./send.sh success $WEBHOOK_URL
after_failure:
- wget https://raw.githubusercontent.com/k3rn31p4nic/travis-ci-discord-webhook/master/send.sh
- chmod +x send.sh
- ./send.sh failure $WEBHOOK_URL