| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 |
- # Makefile
- MONOREPO_ROOT := ../
- HERE=$(shell pwd)
- export MONOREPO_REVISION := $(shell git rev-parse HEAD)
- export BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD)
- export OVERLEAF_BASE_BRANCH ?= sharelatex/sharelatex-base:$(BRANCH_NAME)
- export OVERLEAF_BASE_LATEST ?= sharelatex/sharelatex-base
- export OVERLEAF_BASE_TAG ?= sharelatex/sharelatex-base:$(BRANCH_NAME)-$(MONOREPO_REVISION)
- export OVERLEAF_BRANCH ?= sharelatex/sharelatex:$(BRANCH_NAME)
- export OVERLEAF_LATEST ?= sharelatex/sharelatex
- export OVERLEAF_TAG ?= sharelatex/sharelatex:$(BRANCH_NAME)-$(MONOREPO_REVISION)
- all: build-base build-community
- clean:
- -docker rmi --force $(OVERLEAF_BASE_TAG) $(OVERLEAF_TAG)
- build-base:
- cp .dockerignore $(MONOREPO_ROOT)
- docker build \
- --build-arg BUILDKIT_INLINE_CACHE=1 \
- --progress=plain \
- --file Dockerfile-base \
- --pull \
- --cache-from $(OVERLEAF_BASE_LATEST) \
- --cache-from $(OVERLEAF_BASE_BRANCH) \
- --tag $(OVERLEAF_BASE_TAG) \
- --tag $(OVERLEAF_BASE_BRANCH) \
- $(MONOREPO_ROOT)
- build-community:
- cp .dockerignore $(MONOREPO_ROOT)
- docker build \
- --build-arg BUILDKIT_INLINE_CACHE=1 \
- --progress=plain \
- --build-arg OVERLEAF_BASE_TAG \
- --label "com.overleaf.ce.revision=$(MONOREPO_REVISION)" \
- --cache-from $(OVERLEAF_LATEST) \
- --cache-from $(OVERLEAF_BRANCH) \
- --file Dockerfile \
- --tag $(OVERLEAF_TAG) \
- --tag $(OVERLEAF_BRANCH) \
- $(MONOREPO_ROOT)
- push:
- docker push $(OVERLEAF_BASE_TAG)
- docker push $(OVERLEAF_BASE_BRANCH)
- docker push $(OVERLEAF_TAG)
- docker push $(OVERLEAF_BRANCH)
- SHELLCHECK_OPTS = \
- --shell=bash \
- --external-sources \
- --exclude=SC1091
- SHELLCHECK_COLOR := $(if $(CI),--color=never,--color)
- SHELLCHECK_FILES := { git ls-files "*.sh" -z; git grep -Plz "\A\#\!.*bash"; } | sort -zu
- shellcheck:
- @$(SHELLCHECK_FILES) | xargs -0 -r docker run --rm -v $(HERE):/mnt -w /mnt \
- koalaman/shellcheck:stable $(SHELLCHECK_OPTS) $(SHELLCHECK_COLOR)
- shellcheck_fix:
- @$(SHELLCHECK_FILES) | while IFS= read -r -d '' file; do \
- diff=$$(docker run --rm -v $(HERE):/mnt -w /mnt koalaman/shellcheck:stable $(SHELLCHECK_OPTS) --format=diff "$$file" 2>/dev/null); \
- if [ -n "$$diff" ] && ! echo "$$diff" | patch -p1 >/dev/null 2>&1; then echo "\033[31m$$file\033[0m"; \
- elif [ -n "$$diff" ]; then echo "$$file"; \
- else echo "\033[2m$$file\033[0m"; fi \
- done
- .PHONY: all \
- build-base build-community \
- shellcheck shellcheck_fix
|