Makefile (2489B)
1 PRE_RELEASE_VERSION ?= 2 3 RELEASE_MANIFEST_FILE ?= 4 RELEASE_CHGLOG_DESC_FILE ?= 5 6 REPOTOOLS_VERSION ?= latest 7 REPOTOOLS_MODULE = github.com/awslabs/aws-go-multi-module-repository-tools 8 REPOTOOLS_CMD_CALCULATE_RELEASE = ${REPOTOOLS_MODULE}/cmd/calculaterelease@${REPOTOOLS_VERSION} 9 REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS ?= 10 REPOTOOLS_CMD_UPDATE_REQUIRES = ${REPOTOOLS_MODULE}/cmd/updaterequires@${REPOTOOLS_VERSION} 11 REPOTOOLS_CMD_UPDATE_MODULE_METADATA = ${REPOTOOLS_MODULE}/cmd/updatemodulemeta@${REPOTOOLS_VERSION} 12 REPOTOOLS_CMD_GENERATE_CHANGELOG = ${REPOTOOLS_MODULE}/cmd/generatechangelog@${REPOTOOLS_VERSION} 13 REPOTOOLS_CMD_CHANGELOG = ${REPOTOOLS_MODULE}/cmd/changelog@${REPOTOOLS_VERSION} 14 REPOTOOLS_CMD_TAG_RELEASE = ${REPOTOOLS_MODULE}/cmd/tagrelease@${REPOTOOLS_VERSION} 15 REPOTOOLS_CMD_MODULE_VERSION = ${REPOTOOLS_MODULE}/cmd/moduleversion@${REPOTOOLS_VERSION} 16 17 ifneq ($(PRE_RELEASE_VERSION),) 18 REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS += -preview=${PRE_RELEASE_VERSION} 19 endif 20 21 smithy-publish-local: 22 cd codegen && ./gradlew publishToMavenLocal 23 24 smithy-build: 25 cd codegen && ./gradlew build 26 27 smithy-clean: 28 cd codegen && ./gradlew clean 29 30 ##################### 31 # Release Process # 32 ##################### 33 .PHONY: preview-release pre-release-validation release 34 35 preview-release: 36 go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} ${REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS} 37 38 pre-release-validation: 39 @if [[ -z "${RELEASE_MANIFEST_FILE}" ]]; then \ 40 echo "RELEASE_MANIFEST_FILE is required to specify the file to write the release manifest" && false; \ 41 fi 42 @if [[ -z "${RELEASE_CHGLOG_DESC_FILE}" ]]; then \ 43 echo "RELEASE_CHGLOG_DESC_FILE is required to specify the file to write the release notes" && false; \ 44 fi 45 46 release: pre-release-validation 47 go run ${REPOTOOLS_CMD_CALCULATE_RELEASE} -o ${RELEASE_MANIFEST_FILE} ${REPOTOOLS_CMD_CALCULATE_RELEASE_ADDITIONAL_ARGS} 48 go run ${REPOTOOLS_CMD_UPDATE_REQUIRES} -release ${RELEASE_MANIFEST_FILE} 49 go run ${REPOTOOLS_CMD_UPDATE_MODULE_METADATA} -release ${RELEASE_MANIFEST_FILE} 50 go run ${REPOTOOLS_CMD_GENERATE_CHANGELOG} -release ${RELEASE_MANIFEST_FILE} -o ${RELEASE_CHGLOG_DESC_FILE} 51 go run ${REPOTOOLS_CMD_CHANGELOG} rm -all 52 go run ${REPOTOOLS_CMD_TAG_RELEASE} -release ${RELEASE_MANIFEST_FILE} 53 54 module-version: 55 @go run ${REPOTOOLS_CMD_MODULE_VERSION} . 56 57 ############## 58 # Repo Tools # 59 ############## 60 .PHONY: install-changelog 61 62 install-changelog: 63 go install ${REPOTOOLS_MODULE}/cmd/changelog@${REPOTOOLS_VERSION}