Skip to content
Snippets Groups Projects
Verified Commit 13f71a5a authored by Volker Schukai's avatar Volker Schukai :alien:
Browse files

chore: commit save point

parent 71fa1081
No related branches found
No related tags found
No related merge requests found
Showing
with 184 additions and 43 deletions
#############################################################################################
#############################################################################################
##
## DIRECTORIES
##
#############################################################################################
#############################################################################################
APPLICATION_PATH ?= $(PROJECT_ROOT)application/
DEPLOYMENT_PATH ?= $(PROJECT_ROOT)deployment/
DEVELOPMENT_PATH ?= $(PROJECT_ROOT)development/
DOCUMENTATION_PATH ?= $(PROJECT_ROOT)documentation/
REQUIREMENT_PATH ?= $(PROJECT_ROOT)requirement/
CREDENTIALS_PATH ?= $(PROJECT_ROOT)credential/
RESOURCE_PATH ?= $(APPLICATION_PATH)resource/
SOURCE_PATH ?= $(APPLICATION_PATH)source/
WEB_PATH ?= $(APPLICATION_PATH)web/
SCRIPTS_PATH ?= $(DEVELOPMENT_PATH)script/
BUILD_PATH = $(DEPLOYMENT_PATH)build/
VENDOR_PATH ?= $(DEPLOYMENT_PATH)vendor/
PROJECT_DIRECTORIES := $(PROJECT_DIRECTORIES) \
$(APPLICATION_PATH) \
$(RESOURCE_PATH) \
$(SOURCE_PATH) \
$(WEB_PATH) \
$(DEPLOYMENT_PATH) \
$(VENDOR_PATH) \
$(DEVELOPMENT_PATH) \
$(SCRIPTS_PATH) \
$(DOCUMENTATION_PATH) \
$(REQUIREMENT_PATH) \
$(CREDENTIALS_PATH) \
$(BUILD_PATH)
\ No newline at end of file
......@@ -6,5 +6,7 @@
#############################################################################################
#############################################################################################
LICENSETEXT := AGPL 3.0
COPYRIGHTTEXT := © schukai GmbH, Released under the $(LICENSETEXT) License.
\ No newline at end of file
## asdfasd
LICENSE_TEXT ?= AGPL 3.0
COPYRIGHT_TEXT ?= © schukai GmbH, Released under the $(LICENSE_TEXT) License.
\ No newline at end of file
#############################################################################################
#############################################################################################
##
## COMMANDS NODEJS
##
#############################################################################################
#############################################################################################
# path and binaries
NODEJS ?= node
NPM ?= npm
EXECUTABLES = $(EXECUTABLES:-) $(npm);
NODE_ROOT_DIR ?= $(PROJECT_ROOT)
NODE_MODULES_DIR ?= $(NODE_ROOT_DIR)node_modules/
NODE_MODULES_BIN_DIR ?= $(NODE_MODULES_DIR).bin/
WEBPACK ?= $(NODE_MODULES_BIN_DIR)webpack
BABEL ?= $(NODE_MODULES_BIN_DIR)babel
UGLIFYJS ?= $(NODE_MODULES_BIN_DIR)uglifyjs
C8 ?= $(NODE_MODULES_BIN_DIR)c8
MOCHA ?= $(NODE_MODULES_BIN_DIR)mocha
JSDOC ?= $(NODE_MODULES_BIN_DIR)jsdoc
FIXBROKENPLANTUML := $(NODE_MODULES_DIR)jsdoc-plantuml/fixBrokenNodeJS.js
PACKAGEMODIFIED := $(NODE_MODULES_DIR).modified
$(PACKAGEMODIFIED): $(NODE_ROOT_DIR)package.json
$(QUIET) $(NPM) install
$(QUIET) $(TEST) -s $(FIXBROKENPLANTUML) || $(NODE) $(FIXBROKENPLANTUML)
$(QUIET) $(RM) $(PACKAGEMODIFIED)
$(QUIET) $(TOUCH) -m $(PACKAGEMODIFIED)
......@@ -10,13 +10,13 @@
## Compiling for every OS and Platform
compile: next-patch-version
$(QUIET) $(ECHO) "Compiling for every OS and Platform"
$(QUIET) $(ECHO) "Version: $(PROJECTVERSION)"
$(QUIET) $(ECHO) "Build: $(PROJECTBUILDDATE)"
$(QUIET) $(ECHO) "Version: $(PROJECT_VERSION)"
$(QUIET) $(ECHO) "Build: $(PROJECT_BUILD_DATE)"
$(QUIET) cd $(SOURCE_PATH) ; \
GO111MODULE=on GOOS=linux GOARCH=arm $(GO) build -ldflags "-X main.version=$(PROJECTVERSION) -X main.build=$(PROJECTBUILDDATE)" -o $(BUILD_PATH)$(COMPONENTSLUG)-linux-arm ; \
GOOS=linux GOARCH=amd64 $(GO) build -ldflags "-X main.version=$(PROJECTVERSION) -X main.build=$(PROJECTBUILDDATE)" -o $(BUILD_PATH)$(COMPONENTSLUG)-linux-amd64 ; \
GOOS=linux GOARCH=arm64 $(GO) build -ldflags "-X main.version=$(PROJECTVERSION) -X main.build=$(PROJECTBUILDDATE)" -o $(BUILD_PATH)$(COMPONENTSLUG)-linux-arm64 ; \
GOOS=linux GOARCH=386 $(GO) build -ldflags "-X main.version=$(PROJECTVERSION) -X main.build=$(PROJECTBUILDDATE)" -o $(BUILD_PATH)$(COMPONENTSLUG)-linux-386 ; \
GOOS=windows GOARCH=amd64 $(GO) build -ldflags "-X main.version=$(PROJECTVERSION) -X main.build=$(PROJECTBUILDDATE)" -o $(BUILD_PATH)$(COMPONENTSLUG)-windows ; \
GO111MODULE=on GOOS=linux GOARCH=arm $(GO) build -ldflags "-X main.version=$(PROJECT_VERSION) -X main.build=$(PROJECT_BUILD_DATE)" -o $(BUILD_PATH)$(COMPONENTSLUG)-linux-arm ; \
GOOS=linux GOARCH=amd64 $(GO) build -ldflags "-X main.version=$(PROJECT_VERSION) -X main.build=$(PROJECT_BUILD_DATE)" -o $(BUILD_PATH)$(COMPONENTSLUG)-linux-amd64 ; \
GOOS=linux GOARCH=arm64 $(GO) build -ldflags "-X main.version=$(PROJECT_VERSION) -X main.build=$(PROJECT_BUILD_DATE)" -o $(BUILD_PATH)$(COMPONENTSLUG)-linux-arm64 ; \
GOOS=linux GOARCH=386 $(GO) build -ldflags "-X main.version=$(PROJECT_VERSION) -X main.build=$(PROJECT_BUILD_DATE)" -o $(BUILD_PATH)$(COMPONENTSLUG)-linux-386 ; \
GOOS=windows GOARCH=amd64 $(GO) build -ldflags "-X main.version=$(PROJECT_VERSION) -X main.build=$(PROJECT_BUILD_DATE)" -o $(BUILD_PATH)$(COMPONENTSLUG)-windows ; \
cd $(PROJECT_ROOT);
#############################################################################################
#############################################################################################
##
## SERVER CADDY
##
#############################################################################################
#############################################################################################
CADDY_VENDOR_PATH ?= $(VENDOR_PATH)caddy/
CADDY_BIN ?= $(CADDY_VENDOR_PATH)caddy
CADDY_CONFIG ?= $(CADDY_VENDOR_PATH)caddy.conf
CADDY_PIDFILE ?= $(shell mktemp -d)/caddy.pid
$(CADDY_BIN):
$(QUIET) $(MKDIR) -p $(CADDY_VENDOR_PATH)
$(QUIET) $(WGET) -O $(CADDY_BIN) "https://caddyserver.com/api/download?os=linux&arch=amd64&idempotency=75143981108035"
$(QUIET) $(CHMOD) u+x $(CADDY_BIN)
.PHONY: run-caddy
## run caddy webserver
run-caddy: $(CADDY_BIN)
$(QUIET) $(CADDY_BIN) run -config $(CADDY_CONFIG) -pidfile $(CADDY_PIDFILE) -watch
......@@ -6,13 +6,16 @@
#############################################################################################
#############################################################################################
EXECUTABLES = $(EXECUTABLES:-) $(AWS)
UPLOAD_TOOL_URL ?= s3://download.schukai.com/tools/$(COMPONENTSLUG)/
.PHONY: deploy
## compile and deplay to aws
deploy: compile
$(QUIET) AWS_PROFILE=schukai find $(BUILD_PATH) -iname $(COMPONENTSLUG)-* -exec aws s3 cp {} s3://download.schukai.com/tools/$(COMPONENTSLUG)/ \;
$(QUIET) AWS_PROFILE=schukai find $(BUILD_PATH) -iname $(COMPONENTSLUG)-* -exec $(AWS) s3 cp {} $(UPLOAD_TOOL_URL) \;
.PHONY: overview-to-aws
## overview-to-aws
overview-to-aws:
$(QUIET) AWS_PROFILE=schukai aws s3 cp $(WEB_PATH)/index.html s3://download.schukai.com/tools/$(COMPONENTSLUG)/
\ No newline at end of file
.PHONY: overview-to-s3
## overview-to-s3
overview-to-s3:
$(QUIET) AWS_PROFILE=schukai $(AWS) s3 cp $(WEB_PATH)/index.html $(UPLOAD_TOOL_URL)
\ No newline at end of file
......@@ -19,7 +19,7 @@ GIT_MESSAGE := current status
git-branch:
$(QUIET) export BRANCH="b$(GIT_TAG)/$(shell uuidgen --random)" ; \
$(GIT) checkout -b $${BRANCH} && \
$(QUIET) $(GIT) checkout -b $${BRANCH} && \
RESULT=$$($(GIT) push origin $$BRANCH 2>&1) && \
RESULT2=$$($(GIT) branch --set-upstream-to=origin/$$BRANCH $$BRANCH) && \
GITLABURL=$$(echo "$$RESULT" | tr '\n' '\#' | grep -o 'remote\:\s*https:\/\/gitlab\.schukai\.com[^ ]*' | cut -d " " -f2-9 | sed -e 's/^[ \t]*//') && \
......@@ -28,7 +28,7 @@ git-branch:
.PHONY: git-to-master
## git checkout master, fetch and merge
git-to-master:
$(GIT) checkout master && $(GIT) fetch -pP && $(GIT) merge
$(QUIET) $(GIT) checkout master && $(GIT) fetch -pP && $(GIT) merge
.PHONY: git-push-to-server
## git push changes to server
......
......@@ -10,6 +10,7 @@
.DEFAULT_GOAL := help
.PHONY: print
## Print Path
print:
$(ECHO) "THIS_MAKEFILE: $(THIS_MAKEFILE)"
$(ECHO) "THIS_MAKEFILE_PATH: $(THIS_MAKEFILE_PATH)"
......@@ -32,7 +33,7 @@ help:
} \
{ lastLine = $$0 }' $(MAKEFILE_LIST)
@printf "\n${COMMENT}Available arguments:${RESET}\n\n"
@awk '/^(([a-zA-Z\-\\_0-9\.@]+)\s=)/ { \
@awk '/^(([a-zA-Z\-\\_0-9\.@]+)\s[?:]?=)/ { \
helpMessage = match(lastLine, /^## (.*)/); \
if (helpMessage) { \
helpMessage = substr(lastLine, RSTART + 3, RLENGTH); \
......
#############################################################################################
#############################################################################################
##
## INIT-TARGETS
##
#############################################################################################
#############################################################################################
## @see .PHONY https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html#Phony-Targets
.PHONY: init-standard
## init standard project
init-standard:
# The default directories are defined in the
# directories-standard.mk file, but all other
# targets can define directories as well.
$(QUIET) $(ECHO) "Run init-standard"
$(foreach path,$(PROJECT_DIRECTORIES),\
$(shell $(MKDIR) -p $(path)))
$(ECHO) "Done"
#############################################################################################
#############################################################################################
##
## VARIABLES-TARGETS
##
#############################################################################################
#############################################################################################
.PHONY: variables
## Print all variables
variables:
@$(foreach v, $(.VARIABLES), $(if $(filter file,$(origin $(v))), $(info $(INFO)$(v)$(RESET)=$($(v))$(RESET))))
\ No newline at end of file
......@@ -11,26 +11,29 @@
SHELL = bash
# path and binaries
AWK := awk
CP := cp
CD := cd
KILL := /bin/kill
MV := mv
RM := rm -f
MKDIR := mkdir -p
SED := sed
FIND := find
SORT := sort
TOUCH := touch
WGET := wget
CHMOD := chmod
RSYNC := rsync
XARGS := xargs
GREP := grep
MAKE := make
GIT := git
LN := ln -s
TOUCH := touch
AWK ?= awk
CP ?= cp
CD ?= cd
KILL ?= kill
MV ?= mv
RM ?= rm
MKDIR ?= mkdir
SED ?= sed
FIND ?= find
SORT ?= sort
TOUCH ?= touch
WGET ?= wget
CHMOD ?= chmod
RSYNC ?= rsync
XARGS ?= xargs
GREP ?= grep
MAKE ?= make
GIT ?= git
LN ?= ln
TOUCH ?= touch
TEST ?= test
EXECUTABLES = $(EXECUTABLES:-) $(AWK) $(CP) $(KILL) $(MV) $(SED) $(FIND) $(SORT) $(TOUCH) $(WGET) $(CHMOD) $(RSYNC) $(XARGS) $(GREP) $(MAKE) $(GIT)
......
......@@ -9,14 +9,19 @@
VERSION_BIN := version
EXECUTABLES = $(EXECUTABLES:-) $(VERSION_BIN)
RELEASEFILE := $(PROJECT_ROOT)release.json
PROJECTVERSION := $(shell cat $(RELEASEFILE) | jq -r .version)
PROJECTBUILDDATE := $(shell $(VERSION_BIN) date)
RELEASE_FILE ?= $(PROJECT_ROOT)release.json
ifeq ("$(wildcard $(RELEASE_FILE))","")
$(shell echo '{"version":"0.1.0"}' > $(RELEASE_FILE))
endif
PROJECT_VERSION ?= $(shell cat $(RELEASE_FILE) | jq -r .version)
PROJECT_BUILD_DATE ?= $(shell $(VERSION_BIN) date)
.PHONY: next-patch-version
## create next-patch-version
next-patch-version:
$(QUIET) $(ECHO) "Creating next version"
$(QUIET) $(VERSION_BIN) patch --path $(RELEASEFILE) --selector "version"
$(QUIET) $(eval PROJECTVERSION := $(shell cat $(RELEASEFILE) | jq -r .version))
$(QUIET) $(VERSION_BIN) patch --path $(RELEASE_FILE) --selector "version"
$(QUIET) $(eval PROJECT_VERSION := $(shell cat $(RELEASE_FILE) | jq -r .version))
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment