Files

84 lines
2.7 KiB
Makefile
Raw Permalink Normal View History

2026-04-01 11:47:03 +04:00
SHELL := /bin/bash
PNPM ?= pnpm
GO ?= go
CONTAINER_REG ?= repo.ssp-itinfra.com/admin
2026-07-14 22:50:24 +04:00
IMAGE_NAME ?= shooting-event-2
2026-04-29 00:45:48 +04:00
PHOENIX_IMAGE_NAME ?= $(IMAGE_NAME)-phoenix
2026-04-01 11:47:03 +04:00
ARCH ?= amd64
BUILD_DATE ?= $(shell date -u +"%Y-%m-%dT%H:%M:%SZ")
BUILD_VERSION ?= $(shell git describe --tags --always --dirty)
2026-04-29 00:45:48 +04:00
.PHONY: install dev dev-backend dev-frontend build build-frontend build-backend phoenix-dev phoenix-build docker-build docker-run docker-build-phoenix docker-run-phoenix clean
2026-04-01 11:47:03 +04:00
install:
cd frontend && $(PNPM) install
cd backend && $(GO) mod tidy
2026-04-29 00:45:48 +04:00
cd phoenix && mix deps.get
2026-04-01 11:47:03 +04:00
dev-backend:
cd backend && $(GO) run .
dev-frontend:
cd frontend && $(PNPM) dev
dev:
@set -euo pipefail; \
trap 'kill 0' INT TERM EXIT; \
$(MAKE) dev-backend & \
$(MAKE) dev-frontend & \
wait
build-frontend:
cd frontend && $(PNPM) build
build-backend:
mkdir -p bin
cd backend && $(GO) build -o ../bin/shooting-event .
2026-05-19 13:56:13 +04:00
build-backend-amd64:
mkdir -p bin
cd backend && GOARCH=amd64 GOOS=linux $(GO) build -o ../bin/shooting-event-amd64 .
2026-04-01 11:47:03 +04:00
build: build-frontend
rm -rf backend/web
mkdir -p backend/web
cp -R frontend/dist/. backend/web/
$(MAKE) build-backend
2026-04-29 00:45:48 +04:00
phoenix-dev:
cd phoenix && mix deps.get && mix ecto.create && mix ecto.migrate && PORT=$${PORT:-8080} mix phx.server
phoenix-build:
cd phoenix && MIX_ENV=prod mix deps.get --only prod && MIX_ENV=prod mix compile
2026-04-01 11:47:03 +04:00
docker-build:
docker buildx build --load --platform=linux/$(ARCH) -t $(CONTAINER_REG)/$(IMAGE_NAME):$(ARCH) .
docker tag $(CONTAINER_REG)/$(IMAGE_NAME):$(ARCH) $(CONTAINER_REG)/$(IMAGE_NAME):$(ARCH)-latest
docker tag $(CONTAINER_REG)/$(IMAGE_NAME):$(ARCH) $(CONTAINER_REG)/$(IMAGE_NAME):$(ARCH)-$(BUILD_VERSION)
docker push $(CONTAINER_REG)/$(IMAGE_NAME):$(ARCH)
docker push $(CONTAINER_REG)/$(IMAGE_NAME):$(ARCH)-latest
docker push $(CONTAINER_REG)/$(IMAGE_NAME):$(ARCH)-$(BUILD_VERSION)
docker-run:
mkdir -p data
docker run --rm -p 8080:8080 -v $(PWD)/data:/app/data $(CONTAINER_REG)/$(IMAGE_NAME):$(ARCH)
2026-04-29 00:45:48 +04:00
docker-build-phoenix:
docker buildx build --load --platform=linux/$(ARCH) -f Dockerfile.phoenix -t $(CONTAINER_REG)/$(PHOENIX_IMAGE_NAME):$(ARCH) .
docker tag $(CONTAINER_REG)/$(PHOENIX_IMAGE_NAME):$(ARCH) $(CONTAINER_REG)/$(PHOENIX_IMAGE_NAME):$(ARCH)-latest
docker tag $(CONTAINER_REG)/$(PHOENIX_IMAGE_NAME):$(ARCH) $(CONTAINER_REG)/$(PHOENIX_IMAGE_NAME):$(ARCH)-$(BUILD_VERSION)
docker push $(CONTAINER_REG)/$(PHOENIX_IMAGE_NAME):$(ARCH)
docker push $(CONTAINER_REG)/$(PHOENIX_IMAGE_NAME):$(ARCH)-latest
docker push $(CONTAINER_REG)/$(PHOENIX_IMAGE_NAME):$(ARCH)-$(BUILD_VERSION)
docker-run-phoenix:
mkdir -p data
docker run --rm -p 8080:8080 -v $(PWD)/data:/app/data $(CONTAINER_REG)/$(PHOENIX_IMAGE_NAME):$(ARCH)
2026-04-03 09:55:36 +04:00
release:
2026-04-29 00:45:48 +04:00
${MAKE} build
2026-04-03 09:55:36 +04:00
$(MAKE) docker-build
2026-04-01 11:47:03 +04:00
clean:
rm -rf bin frontend/dist backend/web