Currently with the release of "8.0.0-beta.10", the Bazel npm packag accidentally was stamped with an incorrect version placeholder: `8.0.0-beta.10+1.sha-a28b3e3`. This can happen because the placeholder is based on latest tag that matches the Semver format. e.g. if `HEAD` equals to the commit that has the latest tag, the version name will be correct and refer to the tag name (e.g. `8.0.0-beta.10`). Though if the latest commit is not tagged with the most recent tag, the version name will also include the SHA of the commit (e.g. `8.0.0-beta.10+1.sha-a28b3e3`). We can ensure that we don't accidentally release versions from a more recent commit that shouldn't be part of the release by adding a pre-release check that ensures that the `BUILD_SCM_VERSION` Bazel status variable matches the expected version format. PR Close #29551
		
			
				
	
	
		
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
| #!/usr/bin/env bash
 | |
| 
 | |
| # Runs the Bazel workspace status command in order to ensure that the version placeholder
 | |
| # will be replaced with the proper version name when building the release output.
 | |
| 
 | |
| # Ensure that the stamping script is executed within the project directory.
 | |
| cd $(dirname ${0})/../..
 | |
| 
 | |
| # The "0.0.0-PLACEHOLDER" is based on the value of the "BUILD_SCM_VERSION" status variable.
 | |
| versionName=$(node tools/bazel_stamp_vars.js | grep -e "BUILD_SCM_VERSION" | cut -d " " -f2)
 | |
| 
 | |
| if [[ ! ${versionName} =~ ^[0-9]+\.[0-9]+\.[0-9]+(-(alpha|beta|rc).[0-9]+)?$ ]]; then
 | |
|   echo "ERROR: The release will currently have the following version: ${versionName}"
 | |
|   echo "This does not match the version format for releases to NPM."
 | |
|   echo ""
 | |
|   echo "Please ensure that the most recent commit in the current branch is tagged"
 | |
|   echo "with the proper version tag."
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| # Verify peer deps constraints and package.json before publishing to npm
 | |
| # There should be no npm errors
 | |
| 
 | |
| mkdir tmp
 | |
| cd tmp
 | |
| npm init -y
 | |
| npm install --save ../dist/packages-dist/* typescript@~2.7 rxjs@^6.0.0-beta.4 zone.js@~0.8.20
 | |
| cd ..
 | |
| rm -rf ./tmp
 |