58 lines
1.9 KiB
Makefile
58 lines
1.9 KiB
Makefile
BINARY := dealspace
|
|
BUILD_DIR := build
|
|
REMOTE := root@82.24.174.112
|
|
REMOTE_PATH := /opt/dealspace/bin/dealspace
|
|
REMOTE_MIG := /opt/dealspace/migrations
|
|
|
|
.PHONY: build run test clean deploy install-service
|
|
|
|
build:
|
|
@mkdir -p $(BUILD_DIR)
|
|
@# Copy website into cmd/server for go:embed
|
|
@rm -rf cmd/server/website
|
|
@cp -r website cmd/server/website
|
|
go build -o $(BUILD_DIR)/$(BINARY) ./cmd/server
|
|
@rm -rf cmd/server/website
|
|
@echo "Built $(BUILD_DIR)/$(BINARY)"
|
|
|
|
run: build
|
|
$(BUILD_DIR)/$(BINARY)
|
|
|
|
test:
|
|
go test ./...
|
|
|
|
clean:
|
|
rm -rf $(BUILD_DIR)
|
|
rm -rf cmd/server/website
|
|
|
|
deploy: clean
|
|
@mkdir -p $(BUILD_DIR)
|
|
@rm -rf cmd/server/website
|
|
@cp -r website cmd/server/website
|
|
CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o $(BUILD_DIR)/$(BINARY) ./cmd/server
|
|
@rm -rf cmd/server/website
|
|
scp $(BUILD_DIR)/$(BINARY) $(REMOTE):$(REMOTE_PATH)
|
|
scp -r migrations $(REMOTE):$(REMOTE_MIG)
|
|
ssh $(REMOTE) 'systemctl restart dealspace'
|
|
@echo "Deployed to $(REMOTE)"
|
|
|
|
install-service:
|
|
@echo '[Unit]' > /tmp/dealspace.service
|
|
@echo 'Description=Dealspace' >> /tmp/dealspace.service
|
|
@echo 'After=network.target' >> /tmp/dealspace.service
|
|
@echo '' >> /tmp/dealspace.service
|
|
@echo '[Service]' >> /tmp/dealspace.service
|
|
@echo 'Type=simple' >> /tmp/dealspace.service
|
|
@echo 'User=root' >> /tmp/dealspace.service
|
|
@echo 'WorkingDirectory=/opt/dealspace' >> /tmp/dealspace.service
|
|
@echo 'EnvironmentFile=/opt/dealspace/.env' >> /tmp/dealspace.service
|
|
@echo 'ExecStart=/opt/dealspace/bin/dealspace' >> /tmp/dealspace.service
|
|
@echo 'Restart=always' >> /tmp/dealspace.service
|
|
@echo 'RestartSec=5' >> /tmp/dealspace.service
|
|
@echo '' >> /tmp/dealspace.service
|
|
@echo '[Install]' >> /tmp/dealspace.service
|
|
@echo 'WantedBy=multi-user.target' >> /tmp/dealspace.service
|
|
scp /tmp/dealspace.service $(REMOTE):/etc/systemd/system/dealspace.service
|
|
ssh $(REMOTE) 'systemctl daemon-reload && systemctl enable dealspace'
|
|
@echo "Service installed"
|