From e76f8eb95f99edad94b44cd0dac8725898f8d46e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jindra=20Pet=C5=99=C3=ADk?= Date: Sun, 14 Jan 2018 19:06:00 +0100 Subject: [PATCH] Better release description --- travis/after_success.sh | 94 +++++++++++++++++++++++++++++++----- travis/extract_changelog.php | 5 +- 2 files changed, 85 insertions(+), 14 deletions(-) diff --git a/travis/after_success.sh b/travis/after_success.sh index 1a5e958a0..fe13bbcf5 100644 --- a/travis/after_success.sh +++ b/travis/after_success.sh @@ -5,27 +5,97 @@ set -e if [ "$DO_DEPLOY" = 1 ]; then echo "Deploying..." GITHUB_REPO=$TRAVIS_REPO_SLUG + + echo "Constructing release body message..." + + DEPLOY_ATTACH_FILES_JSON='[ + {"file_name":"ffdec_'$DEPLOY_FILEVER_TAG'_setup.exe","content_type":"application/exe","works_with":["windows"],"type_name":"Installer (Windows)","type_icon":"setup"}, + {"file_name":"ffdec_'$DEPLOY_FILEVER_TAG'.zip","content_type":"application/zip","works_with":["windows","linux","macosx"],"type_name":"ZIP (Windows, Linux, Mac OS)","type_icon":"zip"}, + {"file_name":"ffdec_'$DEPLOY_FILEVER_TAG'.deb","content_type":"application/vnd.debian.binary-package","works_with":["linux"],"type_name":"DEB package (Linux)","type_icon":"deb"}, + {"file_name":"ffdec_'$DEPLOY_FILEVER_TAG'.pkg","content_type":"application/x-newton-compatible-pkg","works_with":["macosx"],"type_name":"Mac OS X Installer (pkg)","type_icon":"osx"}, + {"file_name":"ffdec_'$DEPLOY_FILEVER_TAG'_macosx.zip","content_type":"application/zip","works_with":["macosx"],"type_name":"Mac OS X Application (zipped)","type_icon":"zip"}, + {"file_name":"ffdec_'$DEPLOY_FILEVER_TAG'_lang.zip","content_type":"application/zip","works_with":["java"],"type_name":"Language pack for translators (zipped)","type_icon":"zip"}, + {"file_name":"ffdec_lib_'$DEPLOY_FILEVER_TAG'.zip","content_type":"application/zip","works_with":["java"],"type_name":"Library only (Java SE) - Zipped","type_icon":"jar"} + ]'; + + ALL_TYPE_ICONS=(setup zip deb osx jar) + + ICONS_URL=https://github.com/jindrapetrik/jpexs-decompiler/wiki/images + + + FOOTER_TYPE_ICONS="" + for i in ${ALL_TYPE_ICONS[@]}; do + FOOTER_TYPE_ICONS=$FOOTER_TYPE_ICONS'['${i}'_icon]: '$ICONS_URL'/downloads/16/'${i}'.png +' + done + + DOWNLOAD_PREFIX='https://github.com/'$GITHUB_REPO'/releases/download/'$DEPLOY_TAG_NAME'/' + + FOOTER='' + BODY='## Downloads: + +| Name | File | OS | +|---|---|---| +' + + NUM_FILES=`echo "$DEPLOY_ATTACH_FILES_JSON"|jq ".|length"` + + WORKS_MAP='{ + "windows":"Works on Windows", + "linux":"Works on Linux", + "macosx":"Works with Mac OSX", + "java":"Works on java" + }' + + WORKS_KEYS=`echo "$WORKS_MAP"|jq --raw-output 'keys[]'` + + + FOOTER_WORK_ICONS='' + for WORKS in ${WORKS_KEYS[@]}; do + FOOTER_WORK_ICONS="$FOOTER_WORK_ICONS[${WORKS}_icon]: $ICONS_URL/images/os/24/${WORKS}.png +" + done + + + for (( i=0; i<$NUM_FILES; i++ )) + do + ITEM_JSON=`echo "$DEPLOY_ATTACH_FILES_JSON"|jq '.['$i']'` + FILE_NAME=`echo "$ITEM_JSON"|jq --raw-output '.file_name'` + TYPE_ICON=`echo "$ITEM_JSON"|jq --raw-output '.type_icon'` + TYPE_NAME=`echo "$ITEM_JSON"|jq --raw-output '.type_name'` + BODY=$BODY'| **'$TYPE_NAME'** | !['$TYPE_NAME']['$TYPE_ICON'_icon] ['$FILE_NAME'] | ' + NUM_WORKS=`echo "$ITEM_JSON"|jq --raw-output '.works_with | length'` + for (( j=0; j<$NUM_WORKS; j++ )) + do + WORKS=`echo "$ITEM_JSON"|jq --raw-output '.works_with['$j']'` + WORKS_DESCRIPTION=`echo "$WORKS_MAP"|jq --raw-output '.'$WORKS` + BODY=$BODY"![$WORKS_DESCRIPTION][${WORKS}_icon]" + done + BODY=$BODY' +' + FOOTER=$FOOTER'['$FILE_NAME']: '${DOWNLOAD_PREFIX}${FILE_NAME}' +' + done + + FOOTER=$FOOTER$FOOTER_TYPE_ICONS$FOOTER_WORK_ICONS + + FULL_MSG="$BODY +## What's new: +$DEPLOY_DESCRIPTION +$FOOTER" + + + echo "Creating release..." ESC_VERSION_NAME=`echo $DEPLOY_VERSION_NAME|jq --raw-input --ascii-output '.'` - ESC_VERSION_DESCRIPTION=`printf "$DEPLOY_DESCRIPTION"|jq --raw-input --slurp --ascii-output '.'` + ESC_VERSION_DESCRIPTION=`printf "$FULL_MSG"|jq --raw-input --slurp --ascii-output '.'` echo '{"tag_name":"'$DEPLOY_TAG_NAME'","target_commitish":"'$DEPLOY_COMMITISH'","name":'$ESC_VERSION_NAME',"body":'$ESC_VERSION_DESCRIPTION',"draft":false,"prerelease":'$DEPLOY_PRERELEASE'}'>json.bin json=`curl --silent --request POST --data-binary @json.bin --header "Content-Type: application/json" --header "Accept: application/vnd.github.manifold-preview" --user $GITHUB_USER:$GITHUB_ACCESS_TOKEN https://api.github.com/repos/$GITHUB_REPO/releases` RELEASE_ID=`echo "$json"|jq '.id'` - - #List of files to upload - DEPLOY_ATTACH_FILES_JSON='[ -{"file_name":"ffdec_'$DEPLOY_FILEVER_TAG'_setup.exe","content_type":"application/exe"}, -{"file_name":"ffdec_'$DEPLOY_FILEVER_TAG'.zip","content_type":"application/zip"}, -{"file_name":"ffdec_'$DEPLOY_FILEVER_TAG'.deb","content_type":"application/vnd.debian.binary-package"}, -{"file_name":"ffdec_'$DEPLOY_FILEVER_TAG'.pkg","content_type":"application/x-newton-compatible-pkg"}, -{"file_name":"ffdec_'$DEPLOY_FILEVER_TAG'_macosx.zip","content_type":"application/zip"}, -{"file_name":"ffdec_'$DEPLOY_FILEVER_TAG'_lang.zip","content_type":"application/zip"}, -{"file_name":"ffdec_lib_'$DEPLOY_FILEVER_TAG'.zip","content_type":"application/zip"} -]'; #Attaching files... echo "Attaching files..." diff --git a/travis/extract_changelog.php b/travis/extract_changelog.php index 4aaef8626..6b678d249 100644 --- a/travis/extract_changelog.php +++ b/travis/extract_changelog.php @@ -48,10 +48,11 @@ $x=substr($x,strpos($x,"\n")+1); //from start of the line //remove [] from issue names [#1234] => Issue #1234 $x=preg_replace('/\[(#[0-9]+)\]/','Issue $1',$x); +//TODO: load link from footer? //remove markdown headers -$x=preg_replace("/### ([^\n]+)\n/","$1:\n",$x); -$x=str_replace("\n- ","\n",$x); +//$x=preg_replace("/### ([^\n]+)\n/","$1:\n",$x); +//$x=str_replace("\n- ","\n",$x); echo $x;