* arduino-esp32 release mgmt. update (#1557)
This commit is contained in:
		
							parent
							
								
									eb4e891344
								
							
						
					
					
						commit
						b855eb23a7
					
				@ -162,10 +162,10 @@ shopt -u nocasematch
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
echo "Package version: $ver"
 | 
					echo "Package version: $ver"
 | 
				
			||||||
echo "Git branch name: $branch_name"
 | 
					echo "Git branch name: $branch_name"
 | 
				
			||||||
echo "Git revision number (short): $verx"
 | 
					echo "Git revision number: $verx"
 | 
				
			||||||
echo "Package name extension: $extent"	
 | 
					echo "Package name extension: $extent"	
 | 
				
			||||||
echo "Travis CI tag: $TRAVIS_TAG"
 | 
					echo "Travis CI tag: $TRAVIS_TAG"
 | 
				
			||||||
echo "Release package name (unzipped): $package_name"
 | 
					echo "Release package name: $package_name"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Set REMOTE_URL environment variable to the address where the package will be
 | 
					# Set REMOTE_URL environment variable to the address where the package will be
 | 
				
			||||||
# available for download. This gets written into package json file.
 | 
					# available for download. This gets written into package json file.
 | 
				
			||||||
@ -191,7 +191,6 @@ echo "Package build processing:"
 | 
				
			|||||||
echo "========================="
 | 
					echo "========================="
 | 
				
			||||||
echo
 | 
					echo
 | 
				
			||||||
echo "Prepare files for the package main archive:"
 | 
					echo "Prepare files for the package main archive:"
 | 
				
			||||||
echo "-------------------------------------------"
 | 
					 | 
				
			||||||
echo " - copying neccessary files from current Git repository..."
 | 
					echo " - copying neccessary files from current Git repository..."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# <PACKAGE ROOT>
 | 
					# <PACKAGE ROOT>
 | 
				
			||||||
@ -257,14 +256,14 @@ pushd $releaseDir >/dev/null
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
zip -qr $package_name_zip $package_name
 | 
					zip -qr $package_name_zip $package_name
 | 
				
			||||||
if [ $? -ne 0 ]; then
 | 
					if [ $? -ne 0 ]; then
 | 
				
			||||||
    echo "	!error: failed to create ${package_name_zip} (ZIP errno: $?) => aborting"
 | 
					    echo "     !error: failed to create ${package_name_zip} (ZIP errno: $?) => aborting"
 | 
				
			||||||
	exit 1
 | 
						exit 1
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Calculate SHA sum and size of ZIP archive
 | 
					# Calculate SHA sum and size of ZIP archive
 | 
				
			||||||
sha=`shasum -a 256 $package_name_zip | cut -f 1 -d ' '`
 | 
					sha=`shasum -a 256 $package_name_zip | cut -f 1 -d ' '`
 | 
				
			||||||
size=`/bin/ls -l $package_name_zip | awk '{print $5}'`	
 | 
					size=`/bin/ls -l $package_name_zip | awk '{print $5}'`	
 | 
				
			||||||
echo "${package_name_zip} creation OK (size: $size B, sha2: $sha)"
 | 
					echo "     ${package_name_zip} creation OK (size: $size, sha2: $sha)"
 | 
				
			||||||
echo
 | 
					echo
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo "Making $package_name JSON definition file(s):"
 | 
					echo "Making $package_name JSON definition file(s):"
 | 
				
			||||||
@ -293,23 +292,30 @@ rm -rf $outdir
 | 
				
			|||||||
# Get all previously released versions
 | 
					# Get all previously released versions
 | 
				
			||||||
echo " - fetching previous (pre)release versions from GitHub..."
 | 
					echo " - fetching previous (pre)release versions from GitHub..."
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					set +e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
releasesJson=$releaseDir/releases.json
 | 
					releasesJson=$releaseDir/releases.json
 | 
				
			||||||
curl -sH "Authorization: token $curlAuth" https://api.github.com/repos/$TRAVIS_REPO_SLUG/releases > $releasesJson
 | 
					curl -sH "Authorization: token $curlAuth" https://api.github.com/repos/$TRAVIS_REPO_SLUG/releases > $releasesJson
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set +e
 | 
					 | 
				
			||||||
# Previous final release (prerelase == false)
 | 
					 | 
				
			||||||
prev_release=$(jq -e -r '. | map(select(.draft == false and .prerelease == false)) | sort_by(.created_at | - fromdateiso8601) | .[0].tag_name' ${releasesJson})
 | 
					prev_release=$(jq -e -r '. | map(select(.draft == false and .prerelease == false)) | sort_by(.created_at | - fromdateiso8601) | .[0].tag_name' ${releasesJson})
 | 
				
			||||||
# Previous release (possibly a pre-release)
 | 
					 | 
				
			||||||
prev_any_release=$(jq -e -r '. | map(select(.draft == false)) | sort_by(.created_at | - fromdateiso8601)  | .[0].tag_name' ${releasesJson})
 | 
					prev_any_release=$(jq -e -r '. | map(select(.draft == false)) | sort_by(.created_at | - fromdateiso8601)  | .[0].tag_name' ${releasesJson})
 | 
				
			||||||
# Previous pre-release
 | 
					 | 
				
			||||||
prev_pre_release=$(jq -e -r '. | map(select(.draft == false and .prerelease == true)) | sort_by(.created_at | - fromdateiso8601)  | .[0].tag_name' ${releasesJson})
 | 
					prev_pre_release=$(jq -e -r '. | map(select(.draft == false and .prerelease == true)) | sort_by(.created_at | - fromdateiso8601)  | .[0].tag_name' ${releasesJson})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					shopt -s nocasematch
 | 
				
			||||||
 | 
					if [ "$prev_any_release" == "$TRAVIS_TAG" ]; then
 | 
				
			||||||
 | 
						prev_release=$(jq -e -r '. | map(select(.draft == false and .prerelease == false)) | sort_by(.created_at | - fromdateiso8601) | .[1].tag_name' ${releasesJson})
 | 
				
			||||||
 | 
						prev_any_release=$(jq -e -r '. | map(select(.draft == false)) | sort_by(.created_at | - fromdateiso8601)  | .[1].tag_name' ${releasesJson})
 | 
				
			||||||
 | 
						prev_pre_release=$(jq -e -r '. | map(select(.draft == false and .prerelease == true)) | sort_by(.created_at | - fromdateiso8601)  | .[1].tag_name' ${releasesJson})
 | 
				
			||||||
 | 
					fi
 | 
				
			||||||
 | 
					shopt -u nocasematch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
set -e
 | 
					set -e
 | 
				
			||||||
 | 
					
 | 
				
			||||||
rm -f "$releasesJson"
 | 
					rm -f "$releasesJson"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
echo " -- previous Release: $prev_release"
 | 
					echo "     previous Release: $prev_release"
 | 
				
			||||||
echo " -- previous (?Pre-)release: $prev_any_release"
 | 
					echo "     previous (?Pre-)release: $prev_any_release"
 | 
				
			||||||
echo " -- previous Pre-release: $prev_pre_release"
 | 
					echo "     previous Pre-release: $prev_pre_release"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# add generated items to JSON package-definition contents
 | 
					# add generated items to JSON package-definition contents
 | 
				
			||||||
jq_arg=".packages[0].platforms[0].version = \"$ver\" | \
 | 
					jq_arg=".packages[0].platforms[0].version = \"$ver\" | \
 | 
				
			||||||
 | 
				
			|||||||
@ -119,21 +119,24 @@ fi
 | 
				
			|||||||
releaseNotes=$(perl -pe 's/\r?\n/\\n/' <<< ${releaseNotes})
 | 
					releaseNotes=$(perl -pe 's/\r?\n/\\n/' <<< ${releaseNotes})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Check possibly existing release for current tag 
 | 
					# Check possibly existing release for current tag 
 | 
				
			||||||
 | 
					echo "Checking for possible releases of current tag $varTagName..."
 | 
				
			||||||
# (eg build invoked by Create New Release GHUI button -> GH default release pack created immediatelly including default assests)
 | 
					# (eg build invoked by Create New Release GHUI button -> GH default release pack created immediatelly including default assests)
 | 
				
			||||||
HTTP_RESPONSE=$(curl -L --silent --write-out "HTTPSTATUS:%{http_code}" https://api.github.com/repos/$varRepoSlug/releases/tags/$varTagName)
 | 
					HTTP_RESPONSE=$(curl -L --silent --write-out "HTTPSTATUS:%{http_code}" https://api.github.com/repos/$varRepoSlug/releases/tags/$varTagName?access_token=$varAccessToken)
 | 
				
			||||||
HTTP_BODY=$(echo $HTTP_RESPONSE | sed -e 's/HTTPSTATUS\:.*//g')
 | 
					HTTP_BODY=$(echo $HTTP_RESPONSE | sed -e 's/HTTPSTATUS\:.*//g')
 | 
				
			||||||
HTTP_STATUS=$(echo $HTTP_RESPONSE | tr -d '\n' | sed -e 's/.*HTTPSTATUS://')
 | 
					HTTP_STATUS=$(echo $HTTP_RESPONSE | tr -d '\n' | sed -e 's/.*HTTPSTATUS://')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					echo "     HTTP server response code: $HTTP_STATUS"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# if the release exists, append/update recent files to its assets vector
 | 
					# if the release exists, append/update recent files to its assets vector
 | 
				
			||||||
if [ $HTTP_STATUS -eq 200 ]; then
 | 
					if [ $HTTP_STATUS -eq 200 ]; then
 | 
				
			||||||
	releaseId=$(echo $HTTP_BODY | jq -r '.id')
 | 
						releaseId=$(echo $HTTP_BODY | jq -r '.id')
 | 
				
			||||||
	echo "GH release exists for current $varTagName tag (id $releaseId)"
 | 
						echo " - $varTagName release found (id $releaseId)"
 | 
				
			||||||
#... or create a new release record
 | 
					#... or create a new release record
 | 
				
			||||||
else 
 | 
					else 
 | 
				
			||||||
	curlData="{\"tag_name\": \"$varTagName\",\"target_commitish\": \"master\",\"name\": \"v$varTagName\",\"body\": \"$releaseNotes\",\"draft\": false,\"prerelease\": $varPrerelease}"
 | 
						curlData="{\"tag_name\": \"$varTagName\",\"target_commitish\": \"master\",\"name\": \"v$varTagName\",\"body\": \"$releaseNotes\",\"draft\": false,\"prerelease\": $varPrerelease}"
 | 
				
			||||||
	#echo "DEBUG: curl --data \"${curlData}\" https://api.github.com/repos/${varRepoSlug}/releases?access_token=$varAccessToken | jq -r '.id'"
 | 
						#echo "DEBUG: curl --data \"${curlData}\" https://api.github.com/repos/${varRepoSlug}/releases?access_token=$varAccessToken | jq -r '.id'"
 | 
				
			||||||
	releaseId=$(curl --data "$curlData" https://api.github.com/repos/$varRepoSlug/releases?access_token=$varAccessToken | jq -r '.id')
 | 
						releaseId=$(curl --data "$curlData" https://api.github.com/repos/$varRepoSlug/releases?access_token=$varAccessToken | jq -r '.id')
 | 
				
			||||||
	echo "New GH release created for $varTagName tag (id $releaseId)"
 | 
						echo " - new release created for $varTagName (id $releaseId)"
 | 
				
			||||||
fi
 | 
					fi
 | 
				
			||||||
 | 
					
 | 
				
			||||||
# Assets defined by dir contents
 | 
					# Assets defined by dir contents
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user