Makefile 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  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 --pull \
  22. --build-arg BUILDKIT_INLINE_CACHE=1 \
  23. --cache-from $(IMAGE_REPO_BRANCH) \
  24. --cache-from $(IMAGE_REPO_MAIN) \
  25. --tag $(IMAGE_CI) \
  26. --target base \
  27. .
  28. docker_build:
  29. docker build --pull \
  30. --build-arg BUILDKIT_INLINE_CACHE=1 \
  31. --cache-from $(IMAGE_REPO_BRANCH) \
  32. --cache-from $(IMAGE_REPO_MAIN) \
  33. --tag $(IMAGE_REPO_BRANCH) \
  34. --tag $(IMAGE_REPO_FINAL) \
  35. .
  36. format:
  37. mvn $(MVN_OPTS) com.spotify.fmt:fmt-maven-plugin:check
  38. docker_format:
  39. docker run --rm -v $(PWD):$(PWD) -w $(PWD) --user node $(IMAGE_CI) make format
  40. format_fix:
  41. mvn $(MVN_OPTS) com.spotify.fmt:fmt-maven-plugin:format
  42. test:
  43. mvn $(MVN_OPTS) test
  44. docker_test:
  45. docker run --rm -v $(PWD):$(PWD) -w $(PWD) --user node $(IMAGE_CI) make test
  46. clean:
  47. mvn $(MVN_OPTS) clean
  48. package: clean
  49. mvn $(MVN_OPTS) package -DskipTests
  50. refresh_cache: refresh_cache_branch
  51. refresh_cache_branch:
  52. docker inspect $(IMAGE_REPO_BRANCH) > /dev/null && docker pull $(IMAGE_REPO_BRANCH) || true
  53. refresh_cache: refresh_cache_latest
  54. refresh_cache_latest:
  55. docker inspect $(IMAGE_REPO_MAIN) > /dev/null && docker pull $(IMAGE_REPO_MAIN) || true
  56. push:
  57. docker push $(IMAGE_REPO_FINAL)
  58. push_branch:
  59. docker push $(IMAGE_REPO_BRANCH)
  60. clean_ci:
  61. -docker rmi -f $(IMAGE_CI) $(IMAGE_REPO_FINAL)
  62. -git clean -xdf .
  63. .PHONY: run package build clean test runtime-conf