Merge pull request #1504 from codysoyland/ci-staging

Add TravisCI staged builds
This commit is contained in:
Cody Soyland 2018-07-16 14:54:29 -05:00 committed by GitHub
commit 7e3ae59ec3
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 46 additions and 27 deletions

View file

@ -11,20 +11,39 @@ env:
- GOARCH=386 ENTERPRISE=1
- GOARCH=amd64
- GOARCH=amd64 ENTERPRISE=1
cache:
directories:
vendor
install:
- make install-dep vendor
script:
- make test
before_deploy:
- pip install awscli --user `whoami`
deploy:
- provider: script
script: make prerelease-upload GOOS=linux GOARCH=amd64
skip_cleanup: true
on:
all_branches: true
- make -B install-dep vendor
script: make test
jobs:
include:
- stage: metalinter
install:
- make -B install-dep vendor
- go get -u github.com/alecthomas/gometalinter
- gometalinter --install
script: make metalinter
env:
- GOARCH=amd64
- stage: deploy
script: skip
go: "1.10"
condition: $GOARCH = amd64
env:
- GOARCH=amd64
deploy:
- provider: script
script: pip install awscli --user `whoami` && make -B prerelease
skip_cleanup: true
on:
all_branches: true
repo: pilosa/pilosa
tags: false
stages:
- metalinter
- test
- deploy
matrix:
# Excluding or allowing failures on non-primary matrix configurations due to long running times.
fast_finish: true

View file

@ -1,4 +1,4 @@
.PHONY: build check-clean clean cover cover-viz default docker docker-build docker-test generate generate-protoc generate-pql install install-build-deps install-dep install-protoc install-protoc-gen-gofast install-peg prerelease prerelease-build prerelease-upload release release-build require-dep require-protoc require-protoc-gen-gofast require-peg test
.PHONY: build check-clean clean cover cover-viz default docker docker-build docker-test generate generate-protoc generate-pql install install-build-deps install-dep install-protoc install-protoc-gen-gofast install-peg metalinter prerelease prerelease-upload release release-build require-dep require-protoc require-protoc-gen-gofast require-peg test
CLONE_URL=github.com/pilosa/pilosa
VERSION := $(shell git describe --tags 2> /dev/null || echo unknown)
@ -63,22 +63,19 @@ endif
release: check-clean
$(MAKE) release-build GOOS=darwin GOARCH=amd64
$(MAKE) release-build GOOS=darwin GOARCH=amd64 ENTERPRISE=1
$(MAKE) release-build GOOS=linux GOARCH=amd64 DOCKER_BUILD=1
$(MAKE) release-build GOOS=linux GOARCH=amd64 DOCKER_BUILD=1 ENTERPRISE=1
$(MAKE) release-build GOOS=linux GOARCH=386 DOCKER_BUILD=1
$(MAKE) release-build GOOS=linux GOARCH=386 DOCKER_BUILD=1 ENTERPRISE=1
$(MAKE) release-build GOOS=linux GOARCH=amd64
$(MAKE) release-build GOOS=linux GOARCH=amd64 ENTERPRISE=1
$(MAKE) release-build GOOS=linux GOARCH=386
$(MAKE) release-build GOOS=linux GOARCH=386 ENTERPRISE=1
# Create branch-tagged pre-release for client library CI jobs
prerelease-build: vendor
$(MAKE) release-build VERSION_ID=$(BRANCH_ID)
# Create prerelease builds
prerelease: vendor
$(MAKE) release-build GOOS=linux GOARCH=amd64 VERSION_ID=$$\(BRANCH_ID\)
$(if $(shell git describe --tags --exact-match HEAD),$(MAKE) release)
$(MAKE) prerelease-upload
# Create prerelease build for Linux/amd64
prerelease:
$(MAKE) prerelease-build GOOS=linux GOARCH=amd64
# Upload prerelease to S3
prerelease-upload: prerelease
aws s3 cp build/pilosa-$(BRANCH_ID).tar.gz s3://build.pilosa.com/pilosa-$(BRANCH_ID).tar.gz --acl public-read
prerelease-upload:
aws s3 sync build/ s3://build.pilosa.com/ --exclude "*" --include "*.tar.gz" --acl public-read
# Install Pilosa
install: vendor
@ -111,6 +108,9 @@ docker-build:
docker-test:
docker run --rm -v $(PWD):/go/src/$(CLONE_URL) -w /go/src/$(CLONE_URL) golang:$(GO_VERSION) go test -tags='$(BUILD_TAGS)' $(TESTFLAGS) ./...
metalinter:
gometalinter --vendor --disable-all --enable=gotype --enable=gotypex --deadline=60s --exclude "^internal/.*\.pb\.go" ./...
######################
# Build dependencies #
######################