2018-09-10 00:27:58 +00:00
|
|
|
# Root Makefile to make the building and testing of this project easier
|
|
|
|
# regardless of *nix based platform
|
2018-09-10 22:05:01 +00:00
|
|
|
PATH:=$(PWD)/tools:$(PATH)
|
|
|
|
TSC=$(PWD)/node_modules/typescript/bin/tsc
|
|
|
|
JEST=$(PWD)/node_modules/jest/bin/jest.js
|
|
|
|
SEQUELIZE=$(PWD)/node_modules/sequelize-cli/lib/sequelize
|
2018-09-10 04:34:02 +00:00
|
|
|
COMPOSE:=./tools/docker-compose
|
2018-09-19 21:31:55 +00:00
|
|
|
IMAGE_NAME=jenkinsciinfra/uplink
|
2018-09-20 00:53:59 +00:00
|
|
|
IMAGE_TAG:=$(shell git rev-parse HEAD)
|
2018-09-10 00:27:58 +00:00
|
|
|
|
2018-09-11 21:28:46 +00:00
|
|
|
JEST_ARGS=--runInBand --bail --forceExit --detectOpenHandles
|
|
|
|
|
|
|
|
|
2018-09-19 21:31:55 +00:00
|
|
|
all: build check container
|
|
|
|
|
|
|
|
container: Dockerfile depends
|
|
|
|
docker build -t $(IMAGE_NAME):$(IMAGE_TAG) .
|
|
|
|
docker tag $(IMAGE_NAME):$(IMAGE_TAG) $(IMAGE_NAME):latest
|
2018-09-10 00:27:58 +00:00
|
|
|
|
2018-09-19 21:48:15 +00:00
|
|
|
publish:
|
|
|
|
docker push ${IMAGE_NAME}:$(IMAGE_TAG)
|
|
|
|
docker push $(IMAGE_NAME):latest
|
|
|
|
|
2018-09-10 00:27:58 +00:00
|
|
|
depends: package.json package-lock.json
|
2018-09-10 22:05:01 +00:00
|
|
|
if [ ! -d node_modules ]; then npm install; fi;
|
2018-09-10 00:27:58 +00:00
|
|
|
|
|
|
|
build: depends
|
2018-09-10 22:05:01 +00:00
|
|
|
$(TSC)
|
2018-09-10 00:27:58 +00:00
|
|
|
|
2018-09-10 17:02:36 +00:00
|
|
|
check: build depends migrate
|
2018-09-11 21:28:46 +00:00
|
|
|
# Running with docker-compose since our tests require a database to be
|
|
|
|
# present
|
2018-10-23 19:45:03 +00:00
|
|
|
$(COMPOSE) run --rm \
|
|
|
|
-e NODE_ENV=test \
|
|
|
|
node \
|
2018-09-11 21:28:46 +00:00
|
|
|
/usr/local/bin/node $(JEST) $(JEST_ARGS)
|
2018-09-10 00:27:58 +00:00
|
|
|
|
|
|
|
clean:
|
2018-09-10 01:52:54 +00:00
|
|
|
$(COMPOSE) down || true
|
2018-09-10 00:27:58 +00:00
|
|
|
rm -rf node_modules
|
|
|
|
|
|
|
|
debug-jest:
|
2018-09-10 22:05:01 +00:00
|
|
|
node --inspect-brk=0.0.0.0:9229 $(JEST)
|
2018-09-10 00:27:58 +00:00
|
|
|
|
2018-09-10 16:36:39 +00:00
|
|
|
debug-db:
|
|
|
|
$(COMPOSE) run --rm db psql -h db -U postgres uplink_development
|
|
|
|
|
2018-09-11 17:23:39 +00:00
|
|
|
generate-event:
|
2018-10-24 21:15:20 +00:00
|
|
|
curl -d '{"type":"stapler", "correlator" : "86e3f00d-b12a-4391-bbf2-6f01c1606e17", "payload" : {"timestamp" : "$(shell date)", "hi" : "there"}}' \
|
2018-09-11 17:23:39 +00:00
|
|
|
-H "Content-Type: application/json" \
|
|
|
|
http://localhost:3030/events
|
|
|
|
|
2018-09-10 04:34:02 +00:00
|
|
|
migrate: depends
|
|
|
|
$(COMPOSE) up -d db
|
2018-09-10 17:02:36 +00:00
|
|
|
@echo ">> waiting a moment to make sure the database comes online.."
|
2018-09-20 00:30:00 +00:00
|
|
|
@sleep 3
|
2018-09-10 16:36:39 +00:00
|
|
|
$(COMPOSE) run --rm node \
|
2018-09-21 00:06:42 +00:00
|
|
|
/usr/local/bin/node $(SEQUELIZE) db:migrate && \
|
2018-09-12 15:40:43 +00:00
|
|
|
$(COMPOSE) run --rm node \
|
|
|
|
/usr/local/bin/node $(SEQUELIZE) db:seed:all
|
2018-09-10 04:34:02 +00:00
|
|
|
|
2018-09-10 17:02:36 +00:00
|
|
|
watch: migrate
|
|
|
|
# Running with docker-compose since our tests require a database to be
|
|
|
|
# present
|
2018-10-23 19:45:03 +00:00
|
|
|
$(COMPOSE) run --rm \
|
|
|
|
-e NODE_ENV=test \
|
|
|
|
node \
|
2018-10-24 03:40:22 +00:00
|
|
|
/usr/local/bin/node $(JEST) $(JEST_ARGS) --watch --coverage=false
|
2018-09-10 00:27:58 +00:00
|
|
|
|
|
|
|
watch-compile:
|
2018-09-10 22:05:01 +00:00
|
|
|
$(TSC) -w
|
2018-09-10 00:27:58 +00:00
|
|
|
|
2018-09-10 01:10:54 +00:00
|
|
|
run: build
|
2018-09-10 04:34:02 +00:00
|
|
|
@echo ">> Make sure you run migrations first!"
|
|
|
|
@sleep 1
|
|
|
|
$(COMPOSE) up
|
2018-09-10 01:10:54 +00:00
|
|
|
|
|
|
|
.PHONY: all depends build clean check watch run
|
2018-09-10 00:27:58 +00:00
|
|
|
|
|
|
|
# vim: set et
|