Makefile 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. # git-bridge makefile
  2. MVN_OPTS := --no-transfer-progress
  3. MVN_TARGET := target/writelatex-git-bridge-1.0-SNAPSHOT-jar-with-dependencies.jar
  4. export BUILD_NUMBER ?= local
  5. export BRANCH_NAME ?= $(shell git rev-parse --abbrev-ref HEAD)
  6. export COMMIT_SHA ?= $(shell git rev-parse HEAD)
  7. PROJECT_NAME = git-bridge
  8. IMAGE_CI ?= ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
  9. IMAGE_REPO ?= us-east1-docker.pkg.dev/overleaf-ops/ol-docker/$(PROJECT_NAME)
  10. IMAGE_REPO_BRANCH ?= $(IMAGE_REPO):$(BRANCH_NAME)
  11. IMAGE_REPO_MAIN ?= $(IMAGE_REPO):main
  12. IMAGE_REPO_FINAL ?= $(IMAGE_REPO_BRANCH)-$(BUILD_NUMBER)
  13. runtime-conf:
  14. /opt/envsubst < conf/envsubst_template.json > conf/runtime.json
  15. run: $(MVN_TARGET) runtime-conf
  16. java $(GIT_BRIDGE_JVM_ARGS) -jar $(MVN_TARGET) conf/runtime.json
  17. $(MVN_TARGET): $(shell find src -type f) pom.xml
  18. mvn $(MVN_OPTS) package -DskipTests
  19. build: $(MVN_TARGET)
  20. docker_build_base:
  21. docker build --tag $(IMAGE_CI) --target base .
  22. docker_build:
  23. docker build --tag $(IMAGE_REPO_BRANCH) --tag $(IMAGE_REPO_FINAL) .
  24. format:
  25. mvn $(MVN_OPTS) com.spotify.fmt:fmt-maven-plugin:check
  26. docker_format:
  27. docker run --rm -v $(PWD):$(PWD) -w $(PWD) --user node $(IMAGE_CI) make format
  28. format_fix:
  29. mvn $(MVN_OPTS) com.spotify.fmt:fmt-maven-plugin:format
  30. test:
  31. mvn $(MVN_OPTS) test
  32. docker_test:
  33. docker run --rm -v $(PWD):$(PWD) -w $(PWD) --user node $(IMAGE_CI) make test
  34. clean:
  35. mvn $(MVN_OPTS) clean
  36. package: clean
  37. mvn $(MVN_OPTS) package -DskipTests
  38. push:
  39. docker push $(IMAGE_REPO_FINAL)
  40. push_branch:
  41. docker push $(IMAGE_REPO_BRANCH)
  42. clean_ci:
  43. -docker rmi -f $(IMAGE_CI) $(IMAGE_REPO_BRANCH) $(IMAGE_REPO_FINAL)
  44. -git clean -xdf .
  45. .PHONY: run package build clean test runtime-conf