Skip to content
Snippets Groups Projects
Commit 14c40c5b authored by Benoit Lavenier's avatar Benoit Lavenier
Browse files

[fix] Move release script to /scripts

parent d71bcc16
No related branches found
No related tags found
No related merge requests found
......@@ -6,7 +6,7 @@
!/platforms/desktop
!/platforms/android
/resources/android/build/local.properties
/resources/android/build/Cesium.keystore
/resources/android/build/*.keystore
/resources/android/build/release-signing.properties
/plugins/
.idea/
......@@ -14,17 +14,23 @@
.local/
.directory
/*.iml
/npm-debug.log
/package-lock.json
/yarn-error.log
/www/lib/
/www/js/config.js
/www/dist
/dist/web
/hooks/playstore-config.json
/hooks/minify-conf.json
/hooks/uglify-config.json
/hooks/after_prepare/ionic-minify.js
/hooks/after_prepare/uglify.js
/www/js/config.js
/www/dist
/www/lib
# Generated CSS
/www/css/ionic.app.css
/www/css/ionic.app.min.css
......@@ -38,8 +44,6 @@
/www/css/leaflet.app.min.css
/www/img/layers*.png
/www/img/marker*.png
/www/img/loader.gif
/www/img/search-icon.png
/npm-debug.log
/package-lock.json
/yarn-error.log
/www/img/search-icon-mobile.png
#!/bin/bash
### Control that the script is run on `dev` branch
branch=`git rev-parse --abbrev-ref HEAD`
if [[ ! "$branch" = "master" ]];
then
echo ">> This script must be run under \`master\` branch"
exit 1
fi
### Get version to release
current=`grep -P "version\": \"\d+.\d+.\d+(\w*)" package.json | grep -m 1 -oP "\d+.\d+.\d+(\w*)"`
if [[ "_$current" == "_" ]]; then
echo "Unable to read the current version in 'package.json'. Please check version format is: x.y.z (x and y should be an integer)."
exit 1;
fi
echo "Current version: $current"
### Get repo URL
PROJECT_NAME=cesium
REPO="duniter/cesium"
REPO_API_URL=https://api.github.com/repos/$REPO
REPO_PUBLIC_URL=https://github.com/$REPO
### get auth token
GITHUB_TOKEN=`cat ~/.config/${PROJECT_NAME}/.github`
if [[ "_$GITHUB_TOKEN" != "_" ]]; then
GITHUT_AUTH="Authorization: token $GITHUB_TOKEN"
else
echo "ERROR: Unable to find github authentication token file: "
echo " - You can create such a token at https://github.com/settings/tokens > 'Generate a new token'."
echo " - Then copy the token and paste it in the file '~/.config/${PROJECT_NAME}/.github' using a valid token."
exit 1
fi
case "$1" in
del)
result=`curl -i "$REPO_API_URL/releases/tags/v$current"`
release_url=`echo "$result" | grep -P "\"url\": \"[^\"]+" | grep -oP "$REPO_API_URL/releases/\d+"`
if [[ $release_url != "" ]]; then
echo "Deleting existing release..."
curl -H 'Authorization: token $GITHUB_TOKEN' -XDELETE $release_url
fi
;;
pre|rel)
if [[ "_$2" != "_" ]]; then
if [[ $1 = "pre" ]]; then
prerelease="true"
else
prerelease="false"
fi
description=`echo $2`
if [[ "_$description" = "_" ]]; then
description="Release v$current"
fi
result=`curl -s -H ''"$GITHUT_AUTH"'' "$REPO_API_URL/releases/tags/v$current"`
release_url=`echo "$result" | grep -P "\"url\": \"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+/releases/\d+"`
if [[ "_$release_url" != "_" ]]; then
echo "Deleting existing release... $release_url"
result=`curl -H ''"$GITHUT_AUTH"'' -s -XDELETE $release_url`
if [[ "_$result" != "_" ]]; then
error_message=`echo "$result" | grep -P "\"message\": \"[^\"]+" | grep -oP ": \"[^\"]+\""`
echo "Delete existing release failed with error$error_message"
exit 1
fi
else
echo "Release not exists yet on github."
fi
echo "Creating new release..."
echo " - tag: v$current"
echo " - description: $description"
result=`curl -H ''"$GITHUT_AUTH"'' -s $REPO_API_URL/releases -d '{"tag_name": "v'"$current"'","target_commitish": "master","name": "'"$current"'","body": "'"$description"'","draft": false,"prerelease": '"$prerelease"'}'`
#echo "DEBUG - $result"
upload_url=`echo "$result" | grep -P "\"upload_url\": \"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+"`
if [[ "_$upload_url" = "_" ]]; then
echo "Failed to create new release for repo $REPO."
echo "Server response:"
echo "$result"
exit 1
fi
### Sending files
echo "Uploading files to ${upload_url} ..."
dirname=$(pwd)
ZIP_FILE="$dirname/dist/web/build/${PROJECT_NAME}-v$current-web.zip"
if [[ -f "${ZIP_FILE}" ]]; then
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/zip' -T "${ZIP_FILE}" "${upload_url}?name=${PROJECT_NAME}-v${current}-web.zip")
browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+")
ZIP_SHA256=$(sha256sum "${ZIP_FILE}")
echo " - ${browser_download_url} | SHA256 Checksum: ${ZIP_SHA256}"
else
echo " - ERROR: Web release (ZIP) not found! Skipping."
fi
APK_FILE="${dirname}/platforms/android/build/outputs/apk/release/android-release.apk"
if [[ -f "${APK_FILE}" ]]; then
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/vnd.android.package-archive' -T "${APK_FILE}" "${upload_url}?name=${PROJECT_NAME}-v${current}-android.apk")
browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+")
APK_SHA256=$(sha256sum "${APK_FILE}")
echo " - ${browser_download_url} | SHA256 Checksum: ${APK_SHA256}"
else
echo "- ERROR: Android release (APK) not found! Skipping."
fi
echo "-----------------------------------------"
echo "Successfully uploading files !"
echo " -> Release url: ${REPO_PUBLIC_URL}/releases/tag/v${current}"
exit 0
else
echo "Wrong arguments"
echo "Usage:"
echo " > ./github.sh del|pre|rel <release_description>"
echo "With:"
echo " - del: delete existing release"
echo " - pre: use for pre-release"
echo " - rel: for full release"
exit 1
fi
;;
*)
echo "No task given"
exit 1
;;
esac
......@@ -21,10 +21,12 @@ ANDROID_SDK_VERSION=r29.0.0
ANDROID_SDK_TOOLS_VERSION=4333796
ANDROID_SDK_ROOT=/usr/lib/android-sdk
ANDROID_SDK_TOOLS_ROOT=${ANDROID_SDK_ROOT}/build-tools
ANDROID_OUTPUT_APK=platforms/android/build/outputs/apk
ANDROID_OUTPUT_APK=${PROJECT_DIR}/platforms/android/build/outputs/apk
ANDROID_OUTPUT_APK_DEBUG=${ANDROID_OUTPUT_APK}/debug
ANDROID_OUTPUT_APK_RELEASE=${ANDROID_OUTPUT_APK}/release
WEB_OUTPUT=${PROJECT_DIR}/dist/web/build
#JAVA_HOME=
GRADLE_VERSION=4.10.3
......
......@@ -7,7 +7,9 @@ if [[ "_" == "_${PROJECT_DIR}" ]]; then
export PROJECT_DIR
fi;
# Preparing Android environment
cd ${PROJECT_DIR}
. ${PROJECT_DIR}/scripts/env-global.sh
### Control that the script is run on `dev` branch
branch=$(git rev-parse --abbrev-ref HEAD)
......@@ -31,6 +33,7 @@ REPO="duniter/cesium"
REPO_API_URL="https://api.github.com/repos/${REPO}"
REPO_PUBLIC_URL="https://github.com/${REPO}"
### get auth token
GITHUB_TOKEN=$(cat ~/.config/${PROJECT_NAME}/.github)
if [[ "_$GITHUB_TOKEN" != "_" ]]; then
......@@ -98,22 +101,25 @@ case "$1" in
echo "Uploading files to ${upload_url} ..."
dirname=$(pwd)
ZIP_FILE="$dirname/dist/web/build/${PROJECT_NAME}-v$current-web.zip"
ZIP_FILE="${WEB_OUTPUT}/${PROJECT_NAME}-v$current-web.zip"
if [[ -f "${ZIP_FILE}" ]]; then
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/zip' -T "${ZIP_FILE}" "${upload_url}?name=${PROJECT_NAME}-v${current}-web.zip")
browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+")
ZIP_SHA256=$(sha256sum "${ZIP_FILE}")
echo " - ${browser_download_url} | SHA256 Checksum: ${ZIP_SHA256}"
echo " - ${browser_download_url} | Checksum: ${ZIP_SHA256}"
else
echo " - ERROR: Web release (ZIP) not found! Skipping."
fi
APK_FILE="${dirname}/platforms/android/build/outputs/apk/release/android-release.apk"
APK_FILE="${ANDROID_OUTPUT_APK_RELEASE}/android-release.apk"
if [[ -f "${APK_FILE}" ]]; then
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/vnd.android.package-archive' -T "${APK_FILE}" "${upload_url}?name=${PROJECT_NAME}-v${current}-android.apk")
mkdir -p ${PROJECT_DIR}/dist/android
cp ${APK_FILE} ${PROJECT_DIR}/dist/android/${PROJECT_NAME}-v${current}-android.apk
APK_FILE="${PROJECT_DIR}/dist/android/${PROJECT_NAME}-v${current}-android.apk"
result=$(curl -s -H ''"$GITHUT_AUTH"'' -H 'Content-Type: application/vnd.android.package-archive' -T "${APK_FILE}" "${upload_url}")
browser_download_url=$(echo "$result" | grep -P "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "\"browser_download_url\":[ ]?\"[^\"]+" | grep -oP "https://[A-Za-z0-9/.-]+")
APK_SHA256=$(sha256sum "${APK_FILE}")
echo " - ${browser_download_url} | SHA256 Checksum: ${APK_SHA256}"
echo " - ${browser_download_url} | Checksum: ${APK_SHA256}"
else
echo "- ERROR: Android release (APK) not found! Skipping."
fi
......
......@@ -9,7 +9,6 @@ fi;
cd ${PROJECT_DIR}
### Control that the script is run on `dev` branch
branch=$(git rev-parse --abbrev-ref HEAD)
if [[ ! "$branch" == "master" ]];
......@@ -78,20 +77,15 @@ if [[ $? -ne 0 ]]; then
exit 1
fi
echo "----------------------------------"
echo "- Compiling sources..."
echo "----------------------------------"
# Update config file
gulp config --env default_fr
# Compile
gulp build
gulp config build --env default_fr
echo "----------------------------------"
echo "- Building Android artifact..."
echo "----------------------------------"
. scripts/build-android.sh --release
if [[ $? -ne 0 ]]; then
exit 1
......@@ -101,10 +95,7 @@ fi
echo "----------------------------------"
echo "- Building web artifact..."
echo "----------------------------------"
# Update config file
gulp config --env default
gulp webBuild --release
gulp config webBuild --env default --release
if [[ $? -ne 0 ]]; then
exit 1
fi
......@@ -120,7 +111,7 @@ git add package.json config.xml install.sh www/js/config.js www/manifest.json
if [[ $? -ne 0 ]]; then
exit 1
fi
git commit -m "v$2" && git tag "v$2" && git push
git commit -m "v$2" && git tag -f "v$2" && git push
if [[ $? -ne 0 ]]; then
exit 1
fi
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment