176 lines
4.9 KiB
Makefile
176 lines
4.9 KiB
Makefile
# © Copyright IBM Corporation 2018, 2019
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
###############################################################################
|
|
# Variables
|
|
###############################################################################
|
|
GO_PKG_DIRS = ./cmd ./internal ./test
|
|
|
|
# Set variable if running on a Red Hat Enterprise Linux host
|
|
ifneq ($(wildcard /etc/redhat-release),)
|
|
REDHAT_RELEASE = $(shell cat /etc/redhat-release)
|
|
ifeq "$(findstring Red Hat,$(REDHAT_RELEASE))" "Red Hat"
|
|
RHEL_HOST = "true"
|
|
endif
|
|
endif
|
|
|
|
###############################################################################
|
|
# Build targets
|
|
###############################################################################
|
|
|
|
# Targets default to a RHEL image on a RHEL host, or an Ubuntu image everywhere else
|
|
|
|
.PHONY: build-devserver
|
|
ifdef RHEL_HOST
|
|
build-devserver: build-devserver-rhel
|
|
else
|
|
build-devserver: build-devserver-ubuntu
|
|
endif
|
|
|
|
.PHONY: build-advancedserver
|
|
ifdef RHEL_HOST
|
|
build-advancedserver: build-advancedserver-rhel
|
|
else
|
|
build-advancedserver: build-advancedserver-ubuntu
|
|
endif
|
|
|
|
|
|
.PHONY: test-devserver
|
|
ifdef RHEL_HOST
|
|
test-devserver: test-devserver-rhel
|
|
else
|
|
test-devserver: test-devserver-ubuntu
|
|
endif
|
|
|
|
.PHONY: test-advancedserver
|
|
ifdef RHEL_HOST
|
|
test-advancedserver: test-advancedserver-rhel
|
|
else
|
|
test-advancedserver: test-advancedserver-ubuntu
|
|
endif
|
|
|
|
.PHONY: build-devjmstest
|
|
ifdef RHEL_HOST
|
|
build-devjmstest: build-devjmstest-rhel
|
|
else
|
|
build-devjmstest: build-devjmstest-ubuntu
|
|
endif
|
|
|
|
# UBUNTU building targets
|
|
.PHONY: build-devserver-ubuntu
|
|
build-devserver-ubuntu:
|
|
$(MAKE) -f Makefile-UBUNTU build-devserver
|
|
|
|
.PHONY: test-devserver-ubuntu
|
|
test-devserver-ubuntu:
|
|
$(MAKE) -f Makefile-UBUNTU test-devserver
|
|
|
|
.PHONY: build-devjmstest-ubuntu
|
|
$(MAKE) -f Makefile-UBUNTU build-devjmstest
|
|
|
|
.PHONY: build-advancedserver-ubuntu
|
|
build-advancedserver-ubuntu:
|
|
$(MAKE) -f Makefile-UBUNTU build-advancedserver
|
|
|
|
.PHONY: test-advancedserver-ubuntu
|
|
test-advancedserver-ubuntu:
|
|
$(MAKE) -f Makefile-UBUNTU test-advancedserver
|
|
|
|
.PHONY: build-devjmstest-ubuntu
|
|
build-devjmstest-ubuntu:
|
|
$(MAKE) -f Makefile-UBUNTU build-devjmstest
|
|
|
|
# RHEL building targets
|
|
.PHONY: build-devserver-rhel
|
|
build-devserver-rhel:
|
|
$(MAKE) -f Makefile-RHEL build-devserver
|
|
|
|
.PHONY: test-devserver-rhel
|
|
test-devserver-rhel:
|
|
$(MAKE) -f Makefile-RHEL test-devserver
|
|
|
|
.PHONY: build-advancedserver-rhel
|
|
build-advancedserver-rhel:
|
|
$(MAKE) -f Makefile-RHEL build-advancedserver
|
|
|
|
.PHONY: test-advancedserver-rhel
|
|
test-advancedserver-rhel:
|
|
$(MAKE) -f Makefile-RHEL test-advancedserver
|
|
|
|
.PHONY: build-devjmstest-rhel
|
|
build-devjmstest-rhel:
|
|
$(MAKE) -f Makefile-RHEL build-devjmstest
|
|
|
|
# Common targets
|
|
.PHONY: clean
|
|
clean:
|
|
rm -rf ./coverage
|
|
rm -rf ./build
|
|
rm -rf ./deps
|
|
|
|
.PHONY: deps
|
|
deps:
|
|
glide install --strip-vendor
|
|
|
|
.PHONY: build-cov
|
|
build-cov:
|
|
mkdir -p build
|
|
cd build; go test -c -covermode=count ../cmd/runmqserver
|
|
|
|
.PHONY: precommit
|
|
precommit: fmt lint
|
|
|
|
.PHONY: fmt
|
|
fmt: $(addsuffix /$(wildcard *.go), $(GO_PKG_DIRS))
|
|
go fmt $(addsuffix /..., $(GO_PKG_DIRS))
|
|
|
|
.PHONY: lint
|
|
lint: $(addsuffix /$(wildcard *.go), $(GO_PKG_DIRS))
|
|
@# This expression is necessary because /... includes the vendor directory in golint
|
|
@# As of 11/04/2018 there is an open issue to fix it: https://github.com/golang/lint/issues/320
|
|
golint -set_exit_status $(sort $(dir $(wildcard $(addsuffix /*/*.go, $(GO_PKG_DIRS)))))
|
|
|
|
.PHONY: gosec
|
|
gosec: $(info $(SPACER)$(shell printf "Running gosec test"$(END)))
|
|
@gosec -fmt=json -out=gosec_results.json cmd/... internal/... 2> /dev/null ;\
|
|
cat "gosec_results.json" ;\
|
|
cat gosec_results.json | grep HIGH | grep severity > /dev/null ;\
|
|
if [ $$? -eq 0 ]; then \
|
|
printf "\nFAILURE: gosec found files containing HIGH severity issues - see results.json\n" ;\
|
|
exit 1 ;\
|
|
else \
|
|
printf "\ngosec found no HIGH severity issues\n" ;\
|
|
fi ;\
|
|
cat gosec_results.json | grep MEDIUM | grep severity > /dev/null ;\
|
|
if [ $$? -eq 0 ]; then \
|
|
printf "\nFAILURE: gosec found files containing MEDIUM severity issues - see results.json\n" ;\
|
|
exit 1 ;\
|
|
else \
|
|
printf "\ngosec found no MEDIUM severity issues\n" ;\
|
|
fi ;\
|
|
cat gosec_results.json | grep LOW | grep severity > /dev/null;\
|
|
if [ $$? -eq 0 ]; then \
|
|
printf "\nFAILURE: gosec found files containing LOW severity issues - see results.json\n" ;\
|
|
exit 1;\
|
|
else \
|
|
printf "\ngosec found no LOW severity issues\n" ;\
|
|
fi ;\
|
|
|
|
.PHONY: unknownos
|
|
unknownos:
|
|
$(info $(SPACER)$(shell printf "ERROR: Unknown OS ("$(BASE_OS)") please run specific make targets"$(END)))
|
|
exit 1
|
|
|
|
include formatting.mk
|