Merge branch '145-build-system-rewrite' of gitea.uniworx.systems:fraport/fradrive into 145-build-system-rewrite
This commit is contained in:
commit
6fd68c294e
96
Makefile
96
Makefile
@ -100,7 +100,9 @@ start: new-develop start-database start-memcached start-minio start-frontend sta
|
||||
|
||||
.PHONY: compile
|
||||
# HELP: compile frontend and backend
|
||||
compile: compile-frontend compile-backend;
|
||||
compile:
|
||||
$(MAKE) compile-frontend
|
||||
$(MAKE) compile-backend
|
||||
|
||||
.PHONY: lint
|
||||
# HELP: lint frontend and backend
|
||||
@ -121,7 +123,10 @@ test: test-frontend test-backend i18n-check;
|
||||
%-frontend: FRADRIVE_SERVICE=frontend
|
||||
%-frontend: --image-build --containerized---%-frontend;
|
||||
|
||||
--%-frontend: --containerized-static-frontend --containerized-well-known-frontend;
|
||||
--%-frontend: --containerized-static-frontend --containerized-well-known-frontend
|
||||
|
||||
--start-frontend: static
|
||||
npm run start
|
||||
|
||||
# HELP(compile-frontend): compile frontend
|
||||
--compile-frontend: static well-known;
|
||||
@ -164,6 +169,15 @@ well-known: static;
|
||||
%-backend: FRADRIVE_SERVICE=backend
|
||||
%-backend: --image-build --containerized---%-backend;
|
||||
|
||||
--start-backend: start.sh
|
||||
DEV_PORT_HTTP=`cat $(CONTAINER_FILE) | grep 'DEV_PORT_HTTP=' | sed 's/DEV_PORT_HTTP=//'`; \
|
||||
DEV_PORT_HTTPS=`cat $(CONTAINER_FILE) | grep 'DEV_PORT_HTTPS=' | sed 's/DEV_PORT_HTTPS=//'`; \
|
||||
./start.sh
|
||||
--start-hoogle-backend:
|
||||
HOOGLE_PORT=`cat $(CONTAINER_FILE) | grep 'HOOGLE_PORT=' | sed 's/HOOGLE_PORT=//'` ; \
|
||||
echo "${HOOGLE_PORT}" ; \
|
||||
stack --work-dir .stack-work-doc hoogle -- -server --local --port $${HOOGLE_PORT}
|
||||
|
||||
# HELP(compile-backend): compile backend
|
||||
--compile-backend:
|
||||
stack build --fast --work-dir .stack-work-build --profile --library-profiling --executable-profiling --flag uniworx:-library-only --local-bin-path $$(pwd)/bin $(stackopts)
|
||||
@ -232,18 +246,20 @@ db: --image-build --containerized---db;
|
||||
# --containerized-%-minio: --image-build
|
||||
# $(MAKE) -- --image-run-$*-minio
|
||||
--containerized---start-minio:
|
||||
MINIO_PORT=`cat $(CONTAINER_FILE) | grep 'MINIO_PORT=' | sed 's/MINIO_PORT=//'`; \
|
||||
MINIO_DIR=`mktemp` ; \
|
||||
./utils/watchcontainerrun.sh "$(CONTAINER_COMMAND)" "$(CONTAINER_FILE)" "" "rm -rf $${MINIO_DIR}" & \
|
||||
CONTAINER_ID=`$(CONTAINER_BGRUN) --name fradrive.minio.$$(date +'%Y-%m-%dT%H-%M-%S') $(MINIO_IMAGE) -- server $${MINIO_DIR}` ; \
|
||||
echo "CONTAINER_ID=$${CONTAINER_ID}" >> $(CONTAINER_FILE)
|
||||
CONTAINER_ID=`$(CONTAINER_BGRUN) --name fradrive.minio.$$(date +'%Y-%m-%dT%H-%M-%S') $(MINIO_IMAGE) -- server $${MINIO_DIR} --address=:$${MINIO_PORT}` ; \
|
||||
echo "CONTAINER_ID=$${CONTAINER_ID}\nMINIO_PORT=$${MINIO_PORT}\nMINIO_DIR=$${MINIO_DIR}" >> $(CONTAINER_FILE)
|
||||
|
||||
# --containerized-%-memcached: FRADRIVE_SERVICE=memcached
|
||||
# --containerized-%-memcached: --image-build
|
||||
# $(MAKE) -- --image-run-$*-memcached
|
||||
--containerized---start-memcached:
|
||||
./utils/watchcontainerrun.sh "$(CONTAINER_COMMAND)" "$(CONTAINER_FILE)" &
|
||||
CONTAINER_ID=`$(CONTAINER_BGRUN) $(MEMCACHED_IMAGE)` ; \
|
||||
echo "CONTAINER_ID=$${CONTAINER_ID}" >> $(CONTAINER_FILE)
|
||||
MEMCACHED_PORT=`cat $(CONTAINER_FILE) | grep 'MEMCACHED_PORT=' | sed 's/MEMCACHED_PORT=//'`; \
|
||||
./utils/watchcontainerrun.sh "$(CONTAINER_COMMAND)" "$(CONTAINER_FILE)" & \
|
||||
CONTAINER_ID=`$(CONTAINER_BGRUN) $(MEMCACHED_IMAGE) --port=$${MEMCACHED_PORT}` ; \
|
||||
echo "CONTAINER_ID=$${CONTAINER_ID}\nMEMCACHED_PORT=$${MEMCACHED_PORT}" >> $(CONTAINER_FILE)
|
||||
|
||||
--containerized-%-database: FRADRIVE_SERVICE=database
|
||||
--containerized-%-database: --image-build
|
||||
@ -278,26 +294,8 @@ image-rebuild-%:
|
||||
fi \
|
||||
fi
|
||||
|
||||
DATE := $(shell date +'%Y-%m-%dT%H-%M-%S')
|
||||
|
||||
SET_DEVELOP = $(eval DEVELOP=develop/`ls -1 develop | tail -n1`)
|
||||
NEW_DEVELOP = $(eval DEVELOP=develop/$$(DATE))
|
||||
|
||||
.PHONY: new-develop
|
||||
new-develop:
|
||||
$(NEW_DEVELOP)
|
||||
mkdir -p $(DEVELOP)
|
||||
$(MAKE) develop/.current
|
||||
.PHONY: --develop
|
||||
--develop:
|
||||
if ! [[ -e develop ]]; then \
|
||||
$(MAKE) new-develop; \
|
||||
fi
|
||||
$(MAKE) develop/.current
|
||||
.PHONY: develop/.current
|
||||
develop/.current:
|
||||
$(SET_DEVELOP)
|
||||
echo "$(DEVELOP)" > develop/.current
|
||||
# TODO: move starts below to respective entries, or leave together?
|
||||
|
||||
start-database: BASE_PORTS = "PGPORT=5432"
|
||||
start-database: SINGLETON = true
|
||||
@ -332,7 +330,7 @@ start-%: --develop
|
||||
echo "DEV $(DEVELOP)"
|
||||
if [[ "$(SINGLETON)" = "true" ]]; then \
|
||||
CONTAINER_FILE=$(DEVELOP)/$* ; \
|
||||
if ! [[ -e $${CONTAINER_FILE} ]]; then \
|
||||
if [[ -e $${CONTAINER_FILE} ]]; then \
|
||||
>&2 echo "Another $* service is already running! Use \"make new-develop\" or \"make start\" to start a new develop instance despite currently running services." ; \
|
||||
exit 1 ; \
|
||||
fi \
|
||||
@ -345,29 +343,6 @@ start-%: --develop
|
||||
echo "$(PORTS)" | sed 's/ /\n/g' > $${CONTAINER_FILE} ; \
|
||||
$(MAKE) -- --containerized---start-$* CONTAINER_FILE=$${CONTAINER_FILE}
|
||||
|
||||
--start-backend: start.sh
|
||||
DEV_PORT_HTTP=`cat $(CONTAINER_FILE) | grep 'DEV_PORT_HTTP=' | sed 's/DEV_PORT_HTTP=//'`; \
|
||||
DEV_PORT_HTTPS=`cat $(CONTAINER_FILE) | grep 'DEV_PORT_HTTPS=' | sed 's/DEV_PORT_HTTPS=//'`; \
|
||||
./start.sh
|
||||
--start-hoogle-backend:
|
||||
HOOGLE_PORT=`cat $(CONTAINER_FILE) | grep 'HOOGLE_PORT=' | sed 's/HOOGLE_PORT=//'` ; \
|
||||
echo "${HOOGLE_PORT}" ; \
|
||||
stack --work-dir .stack-work-doc hoogle -- -server --local --port $${HOOGLE_PORT}
|
||||
|
||||
--start-frontend: static
|
||||
npm run start
|
||||
|
||||
# --start-database: docker/database/initdb.sh docker/database/pg_hba.conf docker/database/postgresql.conf docker/database/schema.sql;
|
||||
# ./utils/watchrun.sh "$(CONTAINER_FILE)"
|
||||
|
||||
# TODO: mkdir inside develop/$(DATE)/minio instead of mktemp
|
||||
# TODO: remove dir in stop-minio
|
||||
#--containerized---start-minio:
|
||||
# MINIO_DIR=`mktemp` ; \
|
||||
# echo "MINIO_DIR=$${MINIO_DIR}" > $(DEVELOP)/minio ; \
|
||||
# CONTAINER_ID=`$(CONTAINER_RUN) -v $(PWD):/mnt/fradrive --file docker/minio/Dockerfile -- (server $${MINIO_DIR})` ; \
|
||||
# echo "CONTAINER_ID=$${CONTAINER_ID}" >> $(DEVELOP)/minio
|
||||
|
||||
.PHONY: stop
|
||||
# HELP: stop all currently running develop instances
|
||||
stop:
|
||||
@ -394,6 +369,27 @@ log-%:
|
||||
|
||||
# TODO: move targets below to better location
|
||||
|
||||
DATE := $(shell date +'%Y-%m-%dT%H-%M-%S')
|
||||
|
||||
SET_DEVELOP = $(eval DEVELOP=develop/`ls -1 develop | tail -n1`)
|
||||
NEW_DEVELOP = $(eval DEVELOP=develop/$$(DATE))
|
||||
|
||||
.PHONY: new-develop
|
||||
new-develop:
|
||||
$(NEW_DEVELOP)
|
||||
mkdir -p $(DEVELOP)
|
||||
$(MAKE) develop/.current
|
||||
.PHONY: --develop
|
||||
--develop:
|
||||
if ! [[ -e develop ]]; then \
|
||||
$(MAKE) new-develop; \
|
||||
fi
|
||||
$(MAKE) develop/.current
|
||||
.PHONY: develop/.current
|
||||
develop/.current:
|
||||
$(SET_DEVELOP)
|
||||
echo "$(DEVELOP)" > develop/.current
|
||||
|
||||
# Some convenience aliases:
|
||||
.PHONY: hoogle
|
||||
# HELP: alias for start-hoogle
|
||||
|
||||
@ -21,7 +21,7 @@ RUN mkdir -p "${PROJECT_DIR}/.stack"
|
||||
ENV STACK_ROOT="${PROJECT_DIR}/.stack"
|
||||
|
||||
RUN make -- --.stack STACK_ROOT=${STACK_ROOT} IN_CONTAINER=true
|
||||
# RUN stack build yesod-bin
|
||||
RUN stack build yesod-bin
|
||||
|
||||
ENV FRADRIVE_MAKE_TARGET=start-backend
|
||||
ENTRYPOINT make -- ${FRADRIVE_MAKE_TARGET} STACK_ROOT="${STACK_ROOT}" IN_CONTAINER=true CONTAINER_FILE="${CONTAINER_FILE}"
|
||||
|
||||
Reference in New Issue
Block a user