Skip to content
This repository has been archived by the owner on Dec 15, 2020. It is now read-only.

Updates to Makefile #197

Merged
merged 1 commit into from
Sep 20, 2016
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
114 changes: 76 additions & 38 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,45 +1,77 @@
.PHONY: build

all: build
export PATH := $(GOPATH)/bin:$(shell npm bin):$(PATH)

.prefix:
ifeq ($(OS), Windows_NT)
if not exist build mkdir build
OUTPUT = build/kolide.exe
else
mkdir -p build
OUTPUT = build/kolide
endif

VERSION = 0.0.0-development
BRANCH = $(shell git rev-parse --abbrev-ref HEAD)
REVISION = $(shell git rev-parse HEAD)
USER = $(shell whoami)

ifeq ($(OS), Windows_NT)
OUTPUT = build/kolide.exe
GOVERSION_CMD = "(go version).Split()[2]"
GOVERSION = $(shell powershell $(GOVERSION_CMD))
NOW = $(shell powershell Get-Date -format s)
else
OUTPUT = build/kolide
GOVERSION = $(shell go version | awk '{print $$3}')
NOW = $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
endif

VERSION = 0.0.0-development
BRANCH = $(shell git rev-parse --abbrev-ref HEAD)
REVISION = $(shell git rev-parse HEAD)
GOVERSION = $(shell go version | awk '{print $$3}')
NOW = $(shell date +"%Y%m%d-%T")
USER = $(shell whoami)
DOCKER_IMAGE_NAME = kolide/kolide

ifndef CIRCLE_PR_NUMBER
DOCKER_IMAGE_TAG = dev-unset
DOCKER_IMAGE_TAG = dev-unset
else
DOCKER_IMAGE_TAG = dev-${CIRCLE_PR_NUMBER}
DOCKER_IMAGE_TAG = dev-${CIRCLE_PR_NUMBER}
endif

all: build

define HELP_TEXT

Makefile commands

make deps - Install depedent programs and libraries
make generate - Generate and bundle required code
make generate-dev - Generate and bundle required code in a watch loop
make distclean - Delete all build artifacts

make build - Build the code

make test - Run the full test suite
make test-go - Run the Go tests
make test-js - Run the JavaScript tests
make lint-go - Run the Go linters
make lint-js - Run the JavaScript linters

endef

help:
$(info $(HELP_TEXT))

.prefix:
ifeq ($(OS), Windows_NT)
if not exist build mkdir build
else#
mkdir -p build
endif

build: .prefix
go build -o ${OUTPUT} -ldflags "\
-X github.com/kolide/kolide-ose/version.version=${VERSION} \
-X github.com/kolide/kolide-ose/version.branch=${BRANCH} \
-X github.com/kolide/kolide-ose/version.revision=${REVISION} \
-X github.com/kolide/kolide-ose/version.buildDate=${NOW} \
-X github.com/kolide/kolide-ose/version.buildUser=${USER} \
-X github.com/kolide/kolide-ose/version.goVersion=${GOVERSION}"
go build -i -o ${OUTPUT} -ldflags "\
-X github.com/kolide/kolide-ose/version.version=${VERSION} \
-X github.com/kolide/kolide-ose/version.branch=${BRANCH} \
-X github.com/kolide/kolide-ose/version.revision=${REVISION} \
-X github.com/kolide/kolide-ose/version.buildDate=${NOW} \
-X github.com/kolide/kolide-ose/version.buildUser=${USER} \
-X github.com/kolide/kolide-ose/version.goVersion=${GOVERSION}"

lint-js:
$(shell npm bin)/eslint . --ext .js,.jsx
eslint . --ext .js,.jsx

lint-go:
go vet $(shell glide nv)
Expand All @@ -50,35 +82,41 @@ test-go:
go test -v -cover $(shell glide nv)

test-js:
$(shell npm bin)/_mocha --compilers js:babel-core/register --recursive 'frontend/**/*.tests.js*' --require 'frontend/.test.setup.js'
_mocha --compilers js:babel-core/register \
--recursive 'frontend/**/*.tests.js*' \
--require 'frontend/.test.setup.js'

test: lint test-go test-js

generate: .prefix
go-bindata -pkg=server -o=server/bindata.go frontend/templates/ assets/...
$(shell npm bin)/webpack --progress --colors --bail
go-bindata -pkg=server \
-o=server/bindata.go \
frontend/templates/ assets/...
webpack --progress --colors --bail

generate-dev: .prefix
go-bindata -debug -pkg=server -o=server/bindata.go frontend/templates/ assets/...
$(shell npm bin)/webpack --progress --colors --bail --watch
go-bindata -debug -pkg=server \
-o=server/bindata.go \
frontend/templates/ assets/...
webpack --progress --colors --bail --watch

deps:
npm install
go get -u github.com/Masterminds/glide
go get -u github.com/jteeuwen/go-bindata/...
go get github.com/jteeuwen/go-bindata/...
go get github.com/Masterminds/glide
glide install

distclean:
rm -rf build/*
rm -rf assets/bundle.js
rm -rf vendor/*
ifeq ($(OS), Windows_NT)
if exist build rmdir /s/q build
if exist vendor rmdir /s/q vendor
if exist assets\bundle.js del assets\bundle.js
else
rm -rf build vendor
rm -f assets/bundle.js
endif

docker-build-circle:
@echo ">> building docker image"
docker build -t "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}" .
docker push "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}"

docker:
docker pull kolide/kolide-builder:1.7
docker run --rm -it -v $(shell pwd):/go/src/github.com/kolide/kolide-ose -v ${GOPATH}/pkg:/go/pkg kolide/kolide-builder:1.7 -B
docker-compose up
docker push "${DOCKER_IMAGE_NAME}:${DOCKER_IMAGE_TAG}"