forked from github/multus-cni
This changes introduce goreleaser, which does cross-compile and package, as well as add version into go code. This change also changes .travis.yml to allow to other users' forked repo.
89 lines
3.1 KiB
YAML
89 lines
3.1 KiB
YAML
language: go
|
|
# see https://docs.travis-ci.com/user/reference/overview/#Virtualization-environments
|
|
# for the detail
|
|
# sudo: requried
|
|
dist: trusty
|
|
|
|
go:
|
|
- 1.11.x
|
|
|
|
env:
|
|
global:
|
|
- REGISTRY_USER=${REGISTRY_USER}
|
|
- REGISTRY_PASS=${REGISTRY_PASS}
|
|
- MULTUS_GOPATH=${PWD}/gopath
|
|
- secure: "${REGISTRY_SECURE}"
|
|
|
|
before_install:
|
|
- sudo apt-get update -qq
|
|
- go get github.com/mattn/goveralls
|
|
|
|
install:
|
|
- go get -u golang.org/x/lint/golint
|
|
|
|
before_script:
|
|
# Make gopath... to run golint/go fmt/go vet
|
|
- |-
|
|
if [ ! -h gopath/src/github.com/intel/multus-cni ]; then
|
|
mkdir -p gopath/src/github.com/intel
|
|
ln -s ../../../.. gopath/src/github.com/intel/multus-cni || exit 255
|
|
fi
|
|
- env GOPATH=${MULTUS_GOPATH} golint gopath/src/github.com/intel/multus-cni/multus/... | grep -v ALL_CAPS | xargs -r false
|
|
- env GOPATH=${MULTUS_GOPATH} go fmt gopath/src/github.com/intel/multus-cni/...
|
|
- go tool vet */*.go
|
|
# - gocyclo -over 15 ./multus
|
|
|
|
script:
|
|
- ./build
|
|
- sudo ./test.sh
|
|
- |-
|
|
GOV_GOPATH=${PWD}/gopath
|
|
pushd gopath/src/github.com/intel/multus-cni
|
|
env GOPATH=${GOV_GOPATH} ${GOPATH}/bin/goveralls -coverprofile=coverage.out -service=travis-ci
|
|
popd
|
|
- mkdir -p ${TRAVIS_BUILD_DIR}/dist
|
|
- tar cvfz ${TRAVIS_BUILD_DIR}/dist/multus-cni_amd64.tar.gz --warning=no-file-changed --exclude="dist" --exclude="vendor" .
|
|
- docker build -t nfvpe/multus .
|
|
|
|
deploy:
|
|
# Release on versioned tag (e.g. v1.0)
|
|
- provider: script
|
|
skip_cleanup: true
|
|
script: curl -sL https://git.io/goreleaser | bash
|
|
on:
|
|
tags: true
|
|
all_branches: true
|
|
condition: "$TRAVIS_TAG =~ ^v[0-9].*$"
|
|
# Push images to Dockerhub on tag
|
|
- provider: script
|
|
script: >
|
|
bash -c '
|
|
docker tag nfvpe/multus nfvpe/multus:$TRAVIS_TAG;
|
|
docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASS";
|
|
docker push nfvpe/multus;
|
|
docker push nfvpe/multus:$TRAVIS_TAG;
|
|
echo foo'
|
|
on:
|
|
tags: true
|
|
all_branches: true
|
|
condition: "$TRAVIS_TAG =~ ^v[0-9].*$"
|
|
# Push images to Dockerhub on merge to master
|
|
- provider: script
|
|
on:
|
|
branch: master
|
|
script: >
|
|
bash -c '
|
|
docker tag nfvpe/multus nfvpe/multus:snapshot;
|
|
docker login -u "$REGISTRY_USER" -p "$REGISTRY_PASS";
|
|
docker push nfvpe/multus:snapshot;
|
|
echo foo'
|
|
|
|
after_success:
|
|
# put build tgz to bintray
|
|
- curl -T ${TRAVIS_BUILD_DIR}/dist/multus-cni_amd64.tar.gz -u${BINTRAY_USER}:${BINTRAY_APIKEY} https://api.bintray.com/content/redhat-nfvpe/multus-cni-crd-snapshots/snapshot/snapshot-${TRAVIS_COMMIT}/multus-cni_amd64-${TRAVIS_COMMIT}.tar.gz
|
|
# publish uploaded file
|
|
- curl -X POST -u${BINTRAY_USER}:${BINTRAY_APIKEY} https://api.bintray.com/content/redhat-nfvpe/multus-cni-crd-snapshots/snapshot/snapshot-${TRAVIS_COMMIT}/publish
|
|
# put it in bintray download list
|
|
- sleep 20
|
|
- "curl -X PUT -H 'Accept: application/json' -H 'Content-type: application/json' -u${BINTRAY_USER}:${BINTRAY_APIKEY} https://api.bintray.com/file_metadata/redhat-nfvpe/multus-cni-crd-snapshots/multus-cni_amd64-${TRAVIS_COMMIT}.tar.gz -d '{\"list_in_downloads\":true}'"
|