Compare commits
1 Commits
master
...
build-syst
| Author | SHA1 | Date | |
|---|---|---|---|
| a6aaf533b4 |
1
.gitignore
vendored
1
.gitignore
vendored
@ -67,3 +67,4 @@ tunnel.log
|
|||||||
.develop.cmd
|
.develop.cmd
|
||||||
/.vscode
|
/.vscode
|
||||||
.ghc/ghci_history
|
.ghc/ghci_history
|
||||||
|
.azure-pipelines/images/*.tar
|
||||||
|
|||||||
57
Makefile
57
Makefile
@ -16,6 +16,10 @@ export MEMCACHED_IMAGE = $(IMAGE_REGISTRY)/memcached:latest
|
|||||||
export MINIO_IMAGE = $(IMAGE_REGISTRY)/minio/minio:latest
|
export MINIO_IMAGE = $(IMAGE_REGISTRY)/minio/minio:latest
|
||||||
export MAILDEV_IMAGE = $(IMAGE_REGISTRY)/maildev/maildev:latest # TODO: needs different port than 1025 to avoid conflicts
|
export MAILDEV_IMAGE = $(IMAGE_REGISTRY)/maildev/maildev:latest # TODO: needs different port than 1025 to avoid conflicts
|
||||||
|
|
||||||
|
export CI_IMAGE_DIR ?= ./.azure-pipelines/images
|
||||||
|
export CI_IMAGE_REPO = devfra.azurecr.io/de.fraport.fradrive.build
|
||||||
|
export PREFER_CI_IMAGES ?= true
|
||||||
|
|
||||||
export IN_CONTAINER ?= false
|
export IN_CONTAINER ?= false
|
||||||
export IN_CI ?= false
|
export IN_CI ?= false
|
||||||
export CONTAINER_FILE
|
export CONTAINER_FILE
|
||||||
@ -31,9 +35,11 @@ export SERVICE
|
|||||||
export SERVICE_VARIANT ?= $(SERVICE)
|
export SERVICE_VARIANT ?= $(SERVICE)
|
||||||
export JOB
|
export JOB
|
||||||
export IMAGE
|
export IMAGE
|
||||||
|
export IMAGE_FALLBACK
|
||||||
export SET_IMAGE
|
export SET_IMAGE
|
||||||
export ENTRYPOINT
|
export ENTRYPOINT
|
||||||
export EXEC_OPTS
|
export EXEC_OPTS
|
||||||
|
export IMAGE_PULL_POLICY?=missing
|
||||||
|
|
||||||
export STACK_CORES = $(shell echo $(($(CPU_CORES)/2)))
|
export STACK_CORES = $(shell echo $(($(CPU_CORES)/2)))
|
||||||
export BASE_PORTS
|
export BASE_PORTS
|
||||||
@ -112,24 +118,48 @@ start:
|
|||||||
.PHONY: %-backend
|
.PHONY: %-backend
|
||||||
%-backend: SERVICE=backend
|
%-backend: SERVICE=backend
|
||||||
%-backend: SERVICE_VARIANT=backend
|
%-backend: SERVICE_VARIANT=backend
|
||||||
%-backend: IMAGE=localhost/fradrive/backend
|
ifeq ($(PREFER_CI_IMAGES),true)
|
||||||
|
%-backend: IMAGE=$(CI_IMAGE_REPO)/backend
|
||||||
|
%-backend: IMAGE_FALLBACK=localhost/fradrive/backend
|
||||||
|
else
|
||||||
|
%-backend: IMAGE=localhost/fradrive/backend
|
||||||
|
endif
|
||||||
|
%-backend: IMAGE_PULL_POLICY=never
|
||||||
%-backend: BASE_PORTS = "DEV_PORT_HTTP=3000" "DEV_PORT_HTTPS=3443"
|
%-backend: BASE_PORTS = "DEV_PORT_HTTP=3000" "DEV_PORT_HTTPS=3443"
|
||||||
|
|
||||||
.PHONY: %-uniworxdb
|
.PHONY: %-uniworxdb
|
||||||
%-uniworxdb: SERVICE=backend
|
%-uniworxdb: SERVICE=backend
|
||||||
%-uniworxdb: SERVICE_VARIANT=uniworxdb
|
%-uniworxdb: SERVICE_VARIANT=uniworxdb
|
||||||
%-uniworxdb: IMAGE=localhost/fradrive/backend
|
ifeq ($(PREFER_CI_IMAGES),true)
|
||||||
|
%-uniworxdb: IMAGE=$(CI_IMAGE_REPO)/backend
|
||||||
|
%-uniworxdb: IMAGE_FALLBACK=localhost/fradrive/backend
|
||||||
|
else
|
||||||
|
%-uniworxdb: IMAGE=localhost/fradrive/backend
|
||||||
|
endif
|
||||||
|
%-uniworxdb: IMAGE_PULL_POLICY=never
|
||||||
|
|
||||||
.PHONY: %-ghci
|
.PHONY: %-ghci
|
||||||
%-ghci: SERVICE=backend
|
%-ghci: SERVICE=backend
|
||||||
%-ghci: SERVICE_VARIANT=ghci
|
%-ghci: SERVICE_VARIANT=ghci
|
||||||
%-ghci: IMAGE=localhost/fradrive/backend
|
ifeq ($(PREFER_CI_IMAGES),true)
|
||||||
|
%-ghci: IMAGE=$(CI_IMAGE_REPO)/backend
|
||||||
|
%-ghci: IMAGE_FALLBACK=localhost/fradrive/backend
|
||||||
|
else
|
||||||
|
%-ghci: IMAGE=localhost/fradrive/backend
|
||||||
|
endif
|
||||||
|
%-ghci: IMAGE_PULL_POLICY=never
|
||||||
|
|
||||||
.PHONY: %-hoogle
|
.PHONY: %-hoogle
|
||||||
%-hoogle: SERVICE=backend
|
%-hoogle: SERVICE=backend
|
||||||
%-hoogle: SERVICE_VARIANT=hoogle
|
%-hoogle: SERVICE_VARIANT=hoogle
|
||||||
%-hoogle: BASE_PORTS = "HOOGLE_PORT=8081"
|
%-hoogle: BASE_PORTS = "HOOGLE_PORT=8081"
|
||||||
%-hoogle: IMAGE=localhost/fradrive/backend
|
ifeq ($(PREFER_CI_IMAGES),true)
|
||||||
|
%-hoogle: IMAGE=$(CI_IMAGE_REPO)/backend
|
||||||
|
%-hoogle: IMAGE_FALLBACK=localhost/fradrive/backend
|
||||||
|
else
|
||||||
|
%-hoogle: IMAGE=localhost/fradrive/backend
|
||||||
|
endif
|
||||||
|
%-hoogle: IMAGE_PULL_POLICY=never
|
||||||
--start-hoogle:
|
--start-hoogle:
|
||||||
HOOGLE_PORT=`cat $(CONTAINER_FILE) | grep 'HOOGLE_PORT=' | sed 's/HOOGLE_PORT=//'` ; \
|
HOOGLE_PORT=`cat $(CONTAINER_FILE) | grep 'HOOGLE_PORT=' | sed 's/HOOGLE_PORT=//'` ; \
|
||||||
stack $(STACK_CORES) hoogle -- server --local --port $${HOOGLE_PORT}
|
stack $(STACK_CORES) hoogle -- server --local --port $${HOOGLE_PORT}
|
||||||
@ -137,23 +167,32 @@ start:
|
|||||||
.PHONY: %-frontend
|
.PHONY: %-frontend
|
||||||
%-frontend: SERVICE=frontend
|
%-frontend: SERVICE=frontend
|
||||||
%-frontend: SERVICE_VARIANT=frontend
|
%-frontend: SERVICE_VARIANT=frontend
|
||||||
%-frontend: IMAGE=localhost/fradrive/frontend
|
ifeq ($(PREFER_CI_IMAGES),true)
|
||||||
|
%-frontend: IMAGE=$(CI_IMAGE_REPO)/frontend
|
||||||
|
%-frontend: IMAGE_FALLBACK=localhost/fradrive/frontend
|
||||||
|
else
|
||||||
|
%-frontend: IMAGE=localhost/fradrive/frontend
|
||||||
|
endif
|
||||||
|
%-frontend: IMAGE_PULL_POLICY=never
|
||||||
|
|
||||||
.PHONY: %-postgres
|
.PHONY: %-postgres
|
||||||
%-postgres: SERVICE=postgres
|
%-postgres: SERVICE=postgres
|
||||||
%-postgres: SERVICE_VARIANT=postgres
|
%-postgres: SERVICE_VARIANT=postgres
|
||||||
%-postgres: BASE_PORTS = "PGPORT=5432"
|
%-postgres: BASE_PORTS = "PGPORT=5432"
|
||||||
|
# TODO: support ci-postgres images?
|
||||||
%-postgres: IMAGE=localhost/fradrive/postgres
|
%-postgres: IMAGE=localhost/fradrive/postgres
|
||||||
|
|
||||||
.PHONY: %-memcached
|
.PHONY: %-memcached
|
||||||
%-memcached: SERVICE=memcached
|
%-memcached: SERVICE=memcached
|
||||||
%-memcached: SERVICE_VARIANT=memcached
|
%-memcached: SERVICE_VARIANT=memcached
|
||||||
|
# TODO: support ci-memcached images?
|
||||||
%-memcached: SET_IMAGE=$$(MEMCACHED_IMAGE) --port=`cat $$(CONTAINER_FILE) | grep 'MEMCACHED_PORT=' | sed 's/MEMCACHED_PORT=//'`
|
%-memcached: SET_IMAGE=$$(MEMCACHED_IMAGE) --port=`cat $$(CONTAINER_FILE) | grep 'MEMCACHED_PORT=' | sed 's/MEMCACHED_PORT=//'`
|
||||||
%-memcached: BASE_PORTS = "MEMCACHED_PORT=11211"
|
%-memcached: BASE_PORTS = "MEMCACHED_PORT=11211"
|
||||||
|
|
||||||
.PHONY: %-minio
|
.PHONY: %-minio
|
||||||
%-minio: SERVICE=minio
|
%-minio: SERVICE=minio
|
||||||
%-minio: SERVICE_VARIANT=minio
|
%-minio: SERVICE_VARIANT=minio
|
||||||
|
# TODO: support ci-minio images?
|
||||||
%-minio: SET_IMAGE=$$(MINIO_IMAGE) -- server `mktemp` --address=:`cat $$(CONTAINER_FILE) | grep 'UPLOAD_S3_PORT=' | sed 's/UPLOAD_S3_PORT=//'`
|
%-minio: SET_IMAGE=$$(MINIO_IMAGE) -- server `mktemp` --address=:`cat $$(CONTAINER_FILE) | grep 'UPLOAD_S3_PORT=' | sed 's/UPLOAD_S3_PORT=//'`
|
||||||
%-minio: BASE_PORTS = "UPLOAD_S3_PORT=9000"
|
%-minio: BASE_PORTS = "UPLOAD_S3_PORT=9000"
|
||||||
|
|
||||||
@ -212,11 +251,13 @@ ghci: shell-ghci;
|
|||||||
$(MAKE) -- --$* CONTAINER_FILE=$${CONTAINER_FILE} CONTAINER_IDENT=$${CONTAINER_IDENT} JOB=$(JOB)
|
$(MAKE) -- --$* CONTAINER_FILE=$${CONTAINER_FILE} CONTAINER_IDENT=$${CONTAINER_IDENT} JOB=$(JOB)
|
||||||
|
|
||||||
.PHONY: rebuild-%
|
.PHONY: rebuild-%
|
||||||
# HELP(rebuild-{backend,frontend,database,memcached,minio}): force-rebuild a given container image
|
# HELP(rebuild-{backend,frontend,database,memcached,minio}): force-reload a given ci image, or (if not present) force-rebuild a given container image
|
||||||
rebuild-%:
|
rebuild-%:
|
||||||
$(MAKE) -- --image-build SERVICE=$* NO_CACHE=--no-cache
|
$(MAKE) -- --image-build SERVICE=$* NO_CACHE=--no-cache
|
||||||
--image-build:
|
--image-build:
|
||||||
ifeq "$(IMAGE)" "localhost/fradrive/$(SERVICE)"
|
ifeq "$(IMAGE)" "$(CI_IMAGE_REPO)/$(SERVICE)"
|
||||||
|
$(CONTAINER_COMMAND) load --input="$(CI_IMAGE_DIR)/$(SERVICE).tar"
|
||||||
|
else ifeq "$(IMAGE)" "localhost/fradrive/$(SERVICE)"
|
||||||
rm -f .Dockerfile
|
rm -f .Dockerfile
|
||||||
ln -s docker/$(SERVICE)/Dockerfile .Dockerfile
|
ln -s docker/$(SERVICE)/Dockerfile .Dockerfile
|
||||||
PROJECT_DIR=/fradrive; \
|
PROJECT_DIR=/fradrive; \
|
||||||
@ -227,6 +268,7 @@ ifeq "$(IMAGE)" "localhost/fradrive/$(SERVICE)"
|
|||||||
--env IN_CONTAINER=true \
|
--env IN_CONTAINER=true \
|
||||||
--env JOB=$(JOB) \
|
--env JOB=$(JOB) \
|
||||||
--tag fradrive/$(SERVICE) \
|
--tag fradrive/$(SERVICE) \
|
||||||
|
--pull=never \
|
||||||
--file $(PWD)/.Dockerfile ; \
|
--file $(PWD)/.Dockerfile ; \
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
@ -245,6 +287,7 @@ endif
|
|||||||
fi ; \
|
fi ; \
|
||||||
CONTAINER_ID=`$(CONTAINER_BGRUN) \
|
CONTAINER_ID=`$(CONTAINER_BGRUN) \
|
||||||
-v $(PWD):$(PROJECT_DIR):rw \
|
-v $(PWD):$(PROJECT_DIR):rw \
|
||||||
|
--pull=$(IMAGE_PULL_POLICY) \
|
||||||
--env IN_CONTAINER=true \
|
--env IN_CONTAINER=true \
|
||||||
--env CONTAINER_FILE=$(CONTAINER_FILE) \
|
--env CONTAINER_FILE=$(CONTAINER_FILE) \
|
||||||
--env CONTAINER_NAME=$${CONTAINER_NAME} \
|
--env CONTAINER_NAME=$${CONTAINER_NAME} \
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user