Merge pull request #199 from cloudflare/travis-build-stages

Travis build stages
This commit is contained in:
Łukasz Mierzwa
2017-12-04 14:08:39 -08:00
committed by GitHub
2 changed files with 68 additions and 20 deletions

View File

@@ -1,20 +1,44 @@
language: go
go:
- 1.9.x
go_import_path: github.com/cloudflare/unsee
cache:
directories:
- node_modules
- vendor
jobs:
include:
- stage: Test Go code
language: go
go: "1.9.2"
before_script:
- make mock-assets
cache:
directories:
- vendor
script: make test-go
env:
- NODE_ENV=test
- stage: Test JavaScript code
language: node_js
node_js: "8"
env:
- NODE_ENV=test
cache:
directories:
- node_modules
script: make test-js
before_script:
- nvm install 8
- stage: Lint Go code
language: go
go: "1.9.2"
script: make lint-go
script:
- make test
- stage: Lint JavaScript code
language: node_js
node_js: "8"
cache:
directories:
- node_modules
script: make lint-js
- stage: Build Docker image
sudo: true
addons:
apt:
packages:
- docker-ce
script: make docker-image

View File

@@ -37,6 +37,7 @@ endif
touch $@
.build/npm.install: package.json package-lock.json
@mkdir -p .build
npm install
touch $@
@@ -89,16 +90,40 @@ run-docker: docker-image
-p $(PORT):$(PORT) \
$(NAME):$(VERSION)
.PHONY: lint
lint: .build/deps.ok
.PHONY: lint-go
lint-go: .build/golint
golint ./... | (egrep -v "^vendor/|^bindata_assetfs.go" || true)
.PHONY: lint-js
lint-js: .build/npm.install
$(CURDIR)/node_modules/.bin/eslint --quiet assets/static/*.js
.PHONY: test
test: lint bindata_assetfs.go
.PHONY: lint
lint: lint-go lint-js
# Creates mock bindata_assetfs.go with source assets rather than webpack generated ones
.PHONY: mock-assets
mock-assets: .build/go-bindata .build/go-bindata-assetfs
mkdir -p $(CURDIR)/assets/static/dist/templates
cp $(CURDIR)/assets/static/*.* $(CURDIR)/assets/static/dist/
touch $(CURDIR)/assets/static/dist/templates/loader_unsee.html
touch $(CURDIR)/assets/static/dist/templates/loader_shared.html
touch $(CURDIR)/assets/static/dist/templates/loader_help.html
go-bindata-assetfs -prefix assets -nometadata assets/templates/... assets/static/dist/...
# force assets rebuild on next make run
rm -f .build/bindata_assetfs.*
.PHONY: test-go
test-go: .build/vendor.ok
go test -bench=. -cover `go list ./... | grep -v /vendor/`
.PHONY: test-js
test-js:
npm test
.PHONY: test
test: lint test-go test-js
.build/dep.ok:
go get -u github.com/golang/dep/cmd/dep
@mkdir -p .build
@@ -114,7 +139,6 @@ vendor: .build/dep.ok
dep ensure
dep prune
.PHONY: vendor-update
vendor-update: .build/dep.ok
dep ensure -update