include build/private/bgo_exports.makefile
include ${BGO_MAKEFILE}
include $(shell fulton-lambda-makefiles)
build:: fmt vet

.PHONY: cfn-compile
cfn-compile::
	brazil-build-tool-exec cfn-build

.PHONY: cfn-lint
cfn-lint::
	brazil-build-tool-exec cfn-lint build/sam/template.yml

.PHONY: cfn
cfn:: cfn-compile cfn-lint

LAMBDA_GOOS := linux
NATIVE_GOOS := $(shell GOROOT=$(GOROOT) go env GOOS)
ifneq ($(LAMBDA_GOOS),$(NATIVE_GOOS))
pre-release::
	echo "Overwriting $(NATIVE_GOOS) binaries with $(LAMBDA_GOOS) binaries"
	$(foreach src,$(T),env GOOS=$(LAMBDA_GOOS) go build -o $(GOBIN)/$(notdir $(src)) $V $(src);)
endif

TEST_AWS_REGION = us-west-2
TEST_STAGE = beta
LOCAL_INTEG_TEST_REGEX = ^TestIntegration

SAM_STACK := sam-dev-${USER}-$(shell basename $(shell pwd))
BUILD_ROOT := $(shell brazil-path package-build-root)

JQ_SEARCH_PATH := /usr/local/bin/jq /usr/bin/jq /apollo/env/envImprovement/bin/jq
JQ_EXEC := $(shell for JQ in ${JQ_SEARCH_PATH}; do if [ -x "$$JQ" ]; then echo $$JQ; exit 0; fi; done)

.PHONY: sam-lambda
sam-lambda:: sam-build

# Doesn't work because fulton-exec-in-sam has a hard dependency on a cloudformation resource LambdaFunction existing
.PHONY: sam-integ-tests
sam-integ-tests: build-integ-tests
	$(foreach pkg,$(buildservice), \
	AWS_REGION=${TEST_AWS_REGION} HYDRA=1 STAGE=beta ORIGIN=${TEST_AWS_REGION} \
	LOGICAL_STAGE_NAME=$(if $(TEST_STAGE_OVERRIDE),$(TEST_STAGE_OVERRIDE),$(TEST_STAGE)) \
	SKIP_LAMBDA_LOOKUP=1 \
	${HYDRA_TESTS_DIR}/$(pkg)/${HYDRA_TEST_FILE_NAME} -test.v -test.run=${LOCAL_INTEG_TEST_REGEX}; )