...

Text file src/github.com/aws/smithy-go/Makefile

Documentation: github.com/aws/smithy-go

     1PRE_RELEASE_VERSION ?=
     2
     3RELEASE_MANIFEST_FILE ?=
     4RELEASE_CHGLOG_DESC_FILE ?=
     5
     6REPOTOOLS_VERSION ?= latest
     7REPOTOOLS_MODULE = github.com/awslabs/aws-go-multi-module-repository-tools
     8REPOTOOLS_CMD_CALCULATE_RELEASE = ${REPOTOOLS_MODULE}/cmd/calculaterelease@${REPOTOOLS_VERSION}
     9REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS ?=
    10REPOTOOLS_CMD_UPDATE_REQUIRES = ${REPOTOOLS_MODULE}/cmd/updaterequires@${REPOTOOLS_VERSION}
    11REPOTOOLS_CMD_UPDATE_MODULE_METADATA = ${REPOTOOLS_MODULE}/cmd/updatemodulemeta@${REPOTOOLS_VERSION}
    12REPOTOOLS_CMD_GENERATE_CHANGELOG = ${REPOTOOLS_MODULE}/cmd/generatechangelog@${REPOTOOLS_VERSION}
    13REPOTOOLS_CMD_CHANGELOG = ${REPOTOOLS_MODULE}/cmd/changelog@${REPOTOOLS_VERSION}
    14REPOTOOLS_CMD_TAG_RELEASE = ${REPOTOOLS_MODULE}/cmd/tagrelease@${REPOTOOLS_VERSION}
    15REPOTOOLS_CMD_MODULE_VERSION = ${REPOTOOLS_MODULE}/cmd/moduleversion@${REPOTOOLS_VERSION}
    16
    17UNIT_TEST_TAGS=
    18BUILD_TAGS=
    19
    20ifneq ($(PRE_RELEASE_VERSION),)
    21	REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS += -preview=${PRE_RELEASE_VERSION}
    22endif
    23
    24smithy-publish-local:
    25	cd codegen && ./gradlew publishToMavenLocal
    26
    27smithy-build:
    28	cd codegen && ./gradlew build
    29
    30smithy-clean:
    31	cd codegen && ./gradlew clean
    32
    33##################
    34# Linting/Verify #
    35##################
    36.PHONY: verify vet cover
    37
    38verify: vet
    39
    40vet:
    41	go vet ${BUILD_TAGS} --all ./...
    42
    43cover:
    44	go test ${BUILD_TAGS} -coverprofile c.out ./...
    45	@cover=`go tool cover -func c.out | grep '^total:' | awk '{ print $$3+0 }'`; \
    46		echo "total (statements): $$cover%";
    47
    48################
    49# Unit Testing #
    50################
    51.PHONY: unit unit-race unit-test unit-race-test
    52
    53unit: verify
    54	go vet ${BUILD_TAGS} --all ./... && \
    55	go test ${BUILD_TAGS} ${RUN_NONE} ./... && \
    56	go test -timeout=1m ${UNIT_TEST_TAGS} ./...
    57
    58unit-race: verify
    59	go vet ${BUILD_TAGS} --all ./... && \
    60	go test ${BUILD_TAGS} ${RUN_NONE} ./... && \
    61	go test -timeout=1m ${UNIT_TEST_TAGS} -race -cpu=4 ./...
    62
    63unit-test: verify
    64	go test -timeout=1m ${UNIT_TEST_TAGS} ./...
    65
    66unit-race-test: verify
    67	go test -timeout=1m ${UNIT_TEST_TAGS} -race -cpu=4 ./...
    68
    69#####################
    70#  Release Process  #
    71#####################
    72.PHONY: preview-release pre-release-validation release
    73
    74preview-release:
    75	go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} ${REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS}
    76
    77pre-release-validation:
    78	@if [[ -z "${RELEASE_MANIFEST_FILE}" ]]; then \
    79		echo "RELEASE_MANIFEST_FILE is required to specify the file to write the release manifest" && false; \
    80	fi
    81	@if [[ -z "${RELEASE_CHGLOG_DESC_FILE}" ]]; then \
    82		echo "RELEASE_CHGLOG_DESC_FILE is required to specify the file to write the release notes" && false; \
    83	fi
    84
    85release: pre-release-validation
    86	go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} -o ${RELEASE_MANIFEST_FILE} ${REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS}
    87	go run ${REPOTOOLS_CMD_UPDATE_REQUIRES} -release ${RELEASE_MANIFEST_FILE}
    88	go run ${REPOTOOLS_CMD_UPDATE_MODULE_METADATA} -release ${RELEASE_MANIFEST_FILE}
    89	go run ${REPOTOOLS_CMD_GENERATE_CHANGELOG} -release ${RELEASE_MANIFEST_FILE} -o ${RELEASE_CHGLOG_DESC_FILE}
    90	go run ${REPOTOOLS_CMD_CHANGELOG} rm -all
    91	go run ${REPOTOOLS_CMD_TAG_RELEASE} -release ${RELEASE_MANIFEST_FILE}
    92
    93module-version:
    94	@go run ${REPOTOOLS_CMD_MODULE_VERSION} .
    95
    96##############
    97# Repo Tools #
    98##############
    99.PHONY: install-changelog
   100
   101install-changelog:
   102	go install ${REPOTOOLS_MODULE}/cmd/changelog@${REPOTOOLS_VERSION}

View as plain text