code.dwrz.net

Go monorepo.
Log | Files | Refs

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}