155 lines
6.2 KiB
YAML
155 lines
6.2 KiB
YAML
language: go
|
|
go_import_path: github.com/ethersphere/swarm
|
|
sudo: false
|
|
branches:
|
|
only:
|
|
- master
|
|
- /v(\d+\.)(\d+\.)(\d)/
|
|
matrix:
|
|
include:
|
|
- os: linux
|
|
dist: trusty
|
|
sudo: required
|
|
go: 1.11.x
|
|
script:
|
|
- sudo modprobe fuse
|
|
- sudo chmod 666 /dev/fuse
|
|
- sudo chown root:$USER /etc/fuse.conf
|
|
- go run build/ci.go install
|
|
- go run build/ci.go test -coverage $TEST_PACKAGES
|
|
|
|
# These are the latest Go versions.
|
|
- os: linux
|
|
dist: trusty
|
|
sudo: required
|
|
go: 1.12.x
|
|
script:
|
|
- sudo modprobe fuse
|
|
- sudo chmod 666 /dev/fuse
|
|
- sudo chown root:$USER /etc/fuse.conf
|
|
- go run build/ci.go install
|
|
- go run build/ci.go test -coverage $TEST_PACKAGES
|
|
|
|
- os: osx
|
|
go: 1.12.x
|
|
script:
|
|
- echo "Increase the maximum number of open file descriptors on macOS"
|
|
- NOFILE=20480
|
|
- sudo sysctl -w kern.maxfiles=$NOFILE
|
|
- sudo sysctl -w kern.maxfilesperproc=$NOFILE
|
|
- sudo launchctl limit maxfiles $NOFILE $NOFILE
|
|
- sudo launchctl limit maxfiles
|
|
- ulimit -S -n $NOFILE
|
|
- ulimit -n
|
|
- unset -f cd # workaround for https://github.com/travis-ci/travis-ci/issues/8703
|
|
- go run build/ci.go install
|
|
- go run build/ci.go test -coverage $TEST_PACKAGES
|
|
|
|
# This builder only tests code linters on latest version of Go
|
|
- os: linux
|
|
dist: trusty
|
|
go: 1.12.x
|
|
env:
|
|
- lint
|
|
script:
|
|
- go run build/ci.go lint
|
|
|
|
# This builder does the Ubuntu PPA upload
|
|
- if: type = push
|
|
os: linux
|
|
dist: trusty
|
|
go: 1.12.x
|
|
env:
|
|
- ubuntu-ppa
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- devscripts
|
|
- debhelper
|
|
- dput
|
|
- fakeroot
|
|
- python-bzrlib
|
|
- python-paramiko
|
|
script:
|
|
- echo '|1|7SiYPr9xl3uctzovOTj4gMwAC1M=|t6ReES75Bo/PxlOPJ6/GsGbTrM0= ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA0aKz5UTUndYgIGG7dQBV+HaeuEZJ2xPHo2DS2iSKvUL4xNMSAY4UguNW+pX56nAQmZKIZZ8MaEvSj6zMEDiq6HFfn5JcTlM80UwlnyKe8B8p7Nk06PPQLrnmQt5fh0HmEcZx+JU9TZsfCHPnX7MNz4ELfZE6cFsclClrKim3BHUIGq//t93DllB+h4O9LHjEUsQ1Sr63irDLSutkLJD6RXchjROXkNirlcNVHH/jwLWR5RcYilNX7S5bIkK8NlWPjsn/8Ua5O7I9/YoE97PpO6i73DTGLh5H9JN/SITwCKBkgSDWUt61uPK3Y11Gty7o2lWsBjhBUm2Y38CBsoGmBw==' >> ~/.ssh/known_hosts
|
|
- go run build/ci.go debsrc -upload ethereum/ethereum -sftp-user ethswarm -signer "Ethereum Swarm Linux Builder <swarm@ethereum.org>"
|
|
|
|
# This builder does the Linux Azure uploads
|
|
- if: type = push
|
|
os: linux
|
|
dist: trusty
|
|
sudo: required
|
|
go: 1.12.x
|
|
env:
|
|
- azure-linux
|
|
addons:
|
|
apt:
|
|
packages:
|
|
- gcc-multilib
|
|
script:
|
|
# Build for the primary platforms that Trusty can manage
|
|
- go run build/ci.go install
|
|
- go run build/ci.go archive -type tar -signer LINUX_SIGNING_KEY -upload ethswarm/builds
|
|
- go run build/ci.go install -arch 386
|
|
- go run build/ci.go archive -arch 386 -type tar -signer LINUX_SIGNING_KEY -upload ethswarm/builds
|
|
|
|
# Switch over GCC to cross compilation (breaks 386, hence why do it here only)
|
|
- sudo -E apt-get -yq --no-install-suggests --no-install-recommends --force-yes install gcc-arm-linux-gnueabi libc6-dev-armel-cross gcc-arm-linux-gnueabihf libc6-dev-armhf-cross gcc-aarch64-linux-gnu libc6-dev-arm64-cross
|
|
- sudo ln -s /usr/include/asm-generic /usr/include/asm
|
|
|
|
- GOARM=5 go run build/ci.go install -arch arm -cc arm-linux-gnueabi-gcc
|
|
- GOARM=5 go run build/ci.go archive -arch arm -type tar -signer LINUX_SIGNING_KEY -upload ethswarm/builds
|
|
- GOARM=6 go run build/ci.go install -arch arm -cc arm-linux-gnueabi-gcc
|
|
- GOARM=6 go run build/ci.go archive -arch arm -type tar -signer LINUX_SIGNING_KEY -upload ethswarm/builds
|
|
- GOARM=7 go run build/ci.go install -arch arm -cc arm-linux-gnueabihf-gcc
|
|
- GOARM=7 go run build/ci.go archive -arch arm -type tar -signer LINUX_SIGNING_KEY -upload ethswarm/builds
|
|
- go run build/ci.go install -arch arm64 -cc aarch64-linux-gnu-gcc
|
|
- go run build/ci.go archive -arch arm64 -type tar -signer LINUX_SIGNING_KEY -upload ethswarm/builds
|
|
|
|
# This builder does the Linux Azure MIPS xgo uploads
|
|
- if: type = push
|
|
os: linux
|
|
dist: trusty
|
|
services:
|
|
- docker
|
|
go: 1.12.x
|
|
env:
|
|
- azure-linux-mips
|
|
script:
|
|
- go run build/ci.go xgo --alltools -- --targets=linux/mips --ldflags '-extldflags "-static"' -v
|
|
- for bin in build/bin/*-linux-mips; do mv -f "${bin}" "${bin/-linux-mips/}"; done
|
|
- go run build/ci.go archive -arch mips -type tar -signer LINUX_SIGNING_KEY -upload ethswarm/builds
|
|
|
|
- go run build/ci.go xgo --alltools -- --targets=linux/mipsle --ldflags '-extldflags "-static"' -v
|
|
- for bin in build/bin/*-linux-mipsle; do mv -f "${bin}" "${bin/-linux-mipsle/}"; done
|
|
- go run build/ci.go archive -arch mipsle -type tar -signer LINUX_SIGNING_KEY -upload ethswarm/builds
|
|
|
|
- go run build/ci.go xgo --alltools -- --targets=linux/mips64 --ldflags '-extldflags "-static"' -v
|
|
- for bin in build/bin/*-linux-mips64; do mv -f "${bin}" "${bin/-linux-mips64/}"; done
|
|
- go run build/ci.go archive -arch mips64 -type tar -signer LINUX_SIGNING_KEY -upload ethswarm/builds
|
|
|
|
- go run build/ci.go xgo --alltools -- --targets=linux/mips64le --ldflags '-extldflags "-static"' -v
|
|
- for bin in build/bin/*-linux-mips64le; do mv -f "${bin}" "${bin/-linux-mips64le/}"; done
|
|
- go run build/ci.go archive -arch mips64le -type tar -signer LINUX_SIGNING_KEY -upload ethswarm/builds
|
|
|
|
# This builder does the OSX Azure, iOS CocoaPods and iOS Azure uploads
|
|
- if: type = push
|
|
os: osx
|
|
go: 1.12.x
|
|
env:
|
|
- azure-osx
|
|
script:
|
|
- go run build/ci.go install
|
|
- go run build/ci.go archive -type tar -signer OSX_SIGNING_KEY -upload ethswarm/builds
|
|
|
|
|
|
# This builder does the Azure archive purges to avoid accumulating junk
|
|
- if: type = cron
|
|
os: linux
|
|
dist: trusty
|
|
go: 1.12.x
|
|
env:
|
|
- azure-purge
|
|
script:
|
|
- go run build/ci.go purge -store ethswarm/builds -days 14
|