123 lines
4.0 KiB
Makefile
123 lines
4.0 KiB
Makefile
OUT := flamenco-manager
|
|
PKG := github.com/armadillica/flamenco-manager
|
|
VERSION := $(shell git describe --tags --dirty)
|
|
PKG_LIST := $(shell go list ${PKG}/... | grep -v /vendor/)
|
|
STATIC_OUT := ${OUT}-static-${VERSION}
|
|
PACKAGE_PATH := dist/${OUT}-$(VERSION:v%=%)
|
|
MONGO_BUNDLES := dist
|
|
BUILDOPTS :=
|
|
|
|
DEPLOYHOST := biflamanager
|
|
DEPLOYPATH := /home/flamanager
|
|
SERVICENAME := flamenco-manager.service
|
|
SSH := ssh -o ClearAllForwardings=yes
|
|
|
|
|
|
server:
|
|
go build -v -o ${OUT} -ldflags="-X main.applicationVersion=${VERSION}" ${BUILDOPTS} ${PKG}
|
|
|
|
vendor:
|
|
GO111MODULE=on go mod vendor
|
|
|
|
version:
|
|
@echo "Package: ${PKG}"
|
|
@echo "Version: ${VERSION}"
|
|
@echo "Packaging to: ${PACKAGE_PATH}"
|
|
|
|
test:
|
|
go test ${PKG_LIST}
|
|
|
|
vet:
|
|
@go vet ${PKG_LIST}
|
|
|
|
lint:
|
|
@for file in ${GO_FILES} ; do \
|
|
golint $$file ; \
|
|
done
|
|
|
|
run: server
|
|
./${OUT}
|
|
|
|
clean:
|
|
@go clean -i -x
|
|
git checkout -- static/latest-image.jpg
|
|
rm -f ${OUT}-static-*
|
|
|
|
static: vet lint
|
|
go build -v -o ${STATIC_OUT} -tags netgo -ldflags="-extldflags \"-static\" -w -s -X main.applicationVersion=${VERSION}" ${BUILDOPTS} ${PKG}
|
|
|
|
package:
|
|
@$(MAKE) _prepare_package
|
|
@$(MAKE) _package_linux
|
|
@$(MAKE) _package_windows
|
|
@$(MAKE) _package_darwin
|
|
@$(MAKE) _finish_package
|
|
|
|
package_linux:
|
|
@$(MAKE) _prepare_package
|
|
@$(MAKE) _package_linux
|
|
@$(MAKE) _finish_package
|
|
|
|
package_windows:
|
|
@$(MAKE) _prepare_package
|
|
@$(MAKE) _package_windows
|
|
@$(MAKE) _finish_package
|
|
|
|
package_darwin:
|
|
@$(MAKE) _prepare_package
|
|
@$(MAKE) _package_darwin
|
|
@$(MAKE) _finish_package
|
|
|
|
_package_linux:
|
|
@$(MAKE) --no-print-directory GOOS=linux MONGOOS=linux GOARCH=amd64 STATIC_OUT=${PACKAGE_PATH}/flamenco-manager _package_tar
|
|
|
|
_package_windows:
|
|
@$(MAKE) --no-print-directory GOOS=windows MONGOOS=windows GOARCH=amd64 STATIC_OUT=${PACKAGE_PATH}/flamenco-manager.exe _package_zip
|
|
|
|
_package_darwin:
|
|
@$(MAKE) --no-print-directory GOOS=darwin MONGOOS=osx GOARCH=amd64 STATIC_OUT=${PACKAGE_PATH}/flamenco-manager _package_zip
|
|
|
|
_prepare_package:
|
|
git checkout -- static/latest-image.jpg
|
|
rm -rf ${PACKAGE_PATH}
|
|
mkdir -p ${PACKAGE_PATH}/jwtkeys
|
|
rsync static templates ${PACKAGE_PATH} -a --delete-after
|
|
cp -ua flamenco-manager-example.yaml ${PACKAGE_PATH}/
|
|
cp -ua README.md LICENSE.txt CHANGELOG.md ${PACKAGE_PATH}/
|
|
cp -ua jwtkeys/README.md ${PACKAGE_PATH}/jwtkeys/
|
|
|
|
_finish_package:
|
|
rm -rf ${PACKAGE_PATH}
|
|
rm -f ${PACKAGE_PATH}.sha256
|
|
cd $(dir ${PACKAGE_PATH}) && sha256sum $(notdir ${PACKAGE_PATH})* | tee $(notdir ${PACKAGE_PATH}).sha256
|
|
|
|
_package_tar: static
|
|
ifeq (${GOOS},linux)
|
|
cp flamenco-manager.service ${PACKAGE_PATH}/
|
|
endif
|
|
cp -ua --link ${MONGO_BUNDLES}/mongodb-${MONGOOS}-* ${PACKAGE_PATH}/mongodb-${GOOS}
|
|
tar -C $(dir ${PACKAGE_PATH}) -zcf $(PWD)/${PACKAGE_PATH}-${GOOS}.tar.gz $(notdir ${PACKAGE_PATH})
|
|
rm -rf ${STATIC_OUT} ${PACKAGE_PATH}/flamenco-manager.service ${PACKAGE_PATH}/mongodb-${GOOS}
|
|
|
|
_package_zip: static
|
|
cp -ua --link ${MONGO_BUNDLES}/mongodb-${MONGOOS}-* ${PACKAGE_PATH}/mongodb-${GOOS}
|
|
cd $(dir ${PACKAGE_PATH}) && zip -9 -r -q $(notdir ${PACKAGE_PATH})-${GOOS}.zip $(notdir ${PACKAGE_PATH})
|
|
rm -rf ${STATIC_OUT} ${PACKAGE_PATH}/mongodb-${GOOS}
|
|
|
|
place: static
|
|
rsync -e "${SSH}" -va ${STATIC_OUT} ${DEPLOYHOST}:${DEPLOYPATH}/${OUT} --delete-after
|
|
|
|
deploy: static
|
|
@echo "======== Deploying onto ${DEPLOYHOST}"
|
|
${SSH} ${DEPLOYHOST} -t "sudo systemctl stop ${SERVICENAME}"
|
|
rsync -e "${SSH}" -va ${STATIC_OUT} ${DEPLOYHOST}:${DEPLOYPATH}/${OUT} --delete-after
|
|
rsync -e "${SSH}" -va *.md templates static --exclude static/latest-image.jpg ${DEPLOYHOST}:${DEPLOYPATH}/ --delete-after
|
|
rsync -e "${SSH}" -va static/latest-image.jpg ${DEPLOYHOST}:${DEPLOYPATH}/static --ignore-existing --delete-after
|
|
${SSH} ${DEPLOYHOST} -t "sudo systemctl start ${SERVICENAME}"
|
|
|
|
publish_online: package
|
|
rsync ${PACKAGE_PATH}.sha256 ${PACKAGE_PATH}-linux.tar.gz ${PACKAGE_PATH}-windows.zip ${PACKAGE_PATH}-darwin.zip \
|
|
armadillica@flamenco.io:flamenco.io/download/ -va
|
|
|
|
.PHONY: run server version static vet lint deploy package _prepare_package _package _package_linux _package_windows _package_darwin _finish_package publish_online vendor
|