61 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
# 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:arm64
 | 
						|
export OVERLEAF_BRANCH ?= sharelatex/sharelatex:$(BRANCH_NAME)
 | 
						|
export OVERLEAF_LATEST ?= sharelatex/sharelatex
 | 
						|
export OVERLEAF_TAG ?= sharelatex/sharelatex:arm64
 | 
						|
 | 
						|
all: build-base build-community
 | 
						|
 | 
						|
build-base:
 | 
						|
	cp .dockerignore $(MONOREPO_ROOT)
 | 
						|
	docker build \
 | 
						|
	  --build-arg BUILDKIT_INLINE_CACHE=1 \
 | 
						|
	  --progress=plain \
 | 
						|
	  --file Dockerfile-base \
 | 
						|
	  --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 \
 | 
						|
	  --build-arg MONOREPO_REVISION \
 | 
						|
	  --file Dockerfile \
 | 
						|
	  --tag $(OVERLEAF_TAG) \
 | 
						|
	  --tag $(OVERLEAF_BRANCH) \
 | 
						|
	  $(MONOREPO_ROOT)
 | 
						|
 | 
						|
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
 |