Sybren A. Stüvel
96023932da
The chat client itself is just a throwaway project. The SocketIO system will be used to send realtime updates about jobs, tasks, and workers to the web frontend.
139 lines
4.1 KiB
Makefile
139 lines
4.1 KiB
Makefile
OUT := flamenco-manager-poc
|
|
PKG := gitlab.com/blender/flamenco-ng-poc
|
|
VERSION := $(shell git describe --tags --dirty --always)
|
|
PKG_LIST := $(shell go list ${PKG}/... | grep -v /vendor/)
|
|
STATIC_OUT := ${OUT}-${VERSION}
|
|
PACKAGE_PATH := dist/${OUT}-${VERSION}
|
|
|
|
LDFLAGS := -X ${PKG}/internal/appinfo.ApplicationVersion=${VERSION}
|
|
BUILD_FLAGS = -ldflags="${LDFLAGS}"
|
|
|
|
ifndef PACKAGE_PATH
|
|
# ${PACKAGE_PATH} is used in 'rm' commands, so it's important to check.
|
|
$(error PACKAGE_PATH is not set)
|
|
endif
|
|
|
|
RESOURECS :=
|
|
ifeq ($(OS),Windows_NT)
|
|
OUT := $(OUT).exe
|
|
STATIC_OUT := $(STATIC_OUT).exe
|
|
LDFLAGS := $(LDFLAGS) -H=windowsgui
|
|
RESOURECS := resource.syso
|
|
endif
|
|
|
|
all: application
|
|
|
|
# Install generators and build the software.
|
|
with-deps:
|
|
go install github.com/deepmap/oapi-codegen/cmd/oapi-codegen
|
|
make -s application
|
|
|
|
application: ${RESOURCES} generate
|
|
go build -v ${BUILD_FLAGS} ${PKG}/cmd/flamenco-manager-poc
|
|
go build -v ${BUILD_FLAGS} ${PKG}/cmd/flamenco-worker-poc
|
|
go build -v ${BUILD_FLAGS} ${PKG}/cmd/socketio-poc
|
|
|
|
generate:
|
|
go generate ${PKG}/...
|
|
|
|
# resource.syso: resource/thermogui.ico resource/versioninfo.json
|
|
# goversioninfo -icon=resource/thermogui.ico -64 resource/versioninfo.json
|
|
|
|
version:
|
|
@echo "OS : ${OS}"
|
|
@echo "Package: ${PKG}"
|
|
@echo "Version: ${VERSION}"
|
|
@echo "Target : ${OUT}"
|
|
|
|
list-embedded:
|
|
@go list -f '{{printf "%10s" .Name}}: {{.EmbedFiles}}' ${PKG}/...
|
|
|
|
swagger-ui:
|
|
git clone --depth 1 https://github.com/swagger-api/swagger-ui.git tmp-swagger-ui
|
|
rm -rf pkg/api/static/swagger-ui
|
|
mv tmp-swagger-ui/dist pkg/api/static/swagger-ui
|
|
rm -rf tmp-swagger-ui
|
|
@echo
|
|
@echo 'Now update pkg/api/static/swagger-ui/index.html to have url: "/api/openapi3.json",'
|
|
|
|
test: generate
|
|
go test -p 1 -short ${PKG_LIST}
|
|
|
|
vet:
|
|
@go vet ${PKG_LIST}
|
|
|
|
lint:
|
|
@for file in ${GO_FILES} ; do \
|
|
golint $$file ; \
|
|
done
|
|
|
|
clean:
|
|
@go clean -i -x
|
|
rm -f flamenco*-poc-v* flamenco*-poc *.exe resource.syso pkg/api/*.gen.go
|
|
go generate ./...
|
|
|
|
# static: vet lint resource.syso
|
|
static: vet lint generate
|
|
CGO_ENABLED=0 go build -v -o flamenco-manager-poc-static -tags netgo -ldflags="-extldflags \"-static\" -w -s ${LDFLAGS}" ${PKG}/cmd/flamenco-manager-poc
|
|
CGO_ENABLED=0 go build -v -o flamenco-worker-poc-static -tags netgo -ldflags="-extldflags \"-static\" -w -s ${LDFLAGS}" ${PKG}/cmd/flamenco-worker-poc
|
|
|
|
.gitlabAccessToken:
|
|
$(error gitlabAccessToken does not exist, visit Visit https://gitlab.com/profile/personal_access_tokens, create a Personal Access Token with API access then save it to the file .gitlabAccessToken)
|
|
|
|
|
|
release: .gitlabAccessToken package
|
|
rsync ${PACKAGE_PATH}* stuvel@stuvel.eu:files/beatstripper/ -va
|
|
go run release/release.go -version ${VERSION} -fileglob ${PACKAGE_PATH}\*
|
|
|
|
|
|
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}/${OUT} _package_tar
|
|
|
|
_package_windows:
|
|
@$(MAKE) --no-print-directory GOOS=windows MONGOOS=windows GOARCH=amd64 STATIC_OUT=${PACKAGE_PATH}/${OUT}.exe _package_zip
|
|
|
|
_package_darwin:
|
|
@$(MAKE) --no-print-directory GOOS=darwin MONGOOS=osx GOARCH=amd64 STATIC_OUT=${PACKAGE_PATH}/${OUT} _package_zip
|
|
|
|
_prepare_package:
|
|
rm -rf ${PACKAGE_PATH}
|
|
mkdir -p ${PACKAGE_PATH}
|
|
cp -ua README.md LICENSE ${PACKAGE_PATH}/
|
|
|
|
_finish_package:
|
|
rm -r ${PACKAGE_PATH}
|
|
rm -f ${PACKAGE_PATH}.sha256
|
|
sha256sum ${PACKAGE_PATH}* | tee ${PACKAGE_PATH}.sha256
|
|
|
|
_package_tar: static
|
|
tar -C $(dir ${PACKAGE_PATH}) -zcf $(PWD)/${PACKAGE_PATH}-${GOOS}.tar.gz $(notdir ${PACKAGE_PATH})
|
|
rm ${STATIC_OUT}
|
|
|
|
_package_zip: static
|
|
cd $(dir ${PACKAGE_PATH}) && zip -9 -r -q $(notdir ${PACKAGE_PATH})-${GOOS}.zip $(notdir ${PACKAGE_PATH})
|
|
rm ${STATIC_OUT}
|
|
|
|
.PHONY: run application version static vet lint deploy package release prepare
|