2016-10-14 13:31:51 +03:00
|
|
|
#!/bin/bash
|
|
|
|
|
2016-10-14 15:26:14 +03:00
|
|
|
# For jenkins
|
|
|
|
|
2016-10-14 13:31:51 +03:00
|
|
|
set -e
|
|
|
|
|
2016-10-22 11:06:54 +03:00
|
|
|
# for utf-8 for python script
|
|
|
|
export LC_CTYPE=en_US.UTF-8
|
2016-10-14 13:31:51 +03:00
|
|
|
export PATH=/usr/local/bin:$PATH
|
|
|
|
|
|
|
|
# # parameters
|
2016-10-14 15:26:14 +03:00
|
|
|
# - BRANCH
|
|
|
|
# - IS_SNAPSHOT
|
|
|
|
# - MARKETING_VERSION
|
|
|
|
# - RELEASE_NOTES
|
2016-11-03 22:23:41 +03:00
|
|
|
# - UPDATE_APPCAST
|
2016-10-14 13:31:51 +03:00
|
|
|
|
2019-04-28 10:35:27 +03:00
|
|
|
if [[ "${IS_SNAPSHOT}" = false ]] && [[ "${MARKETING_VERSION}" == "" ]] ; then
|
2016-11-05 10:53:11 +03:00
|
|
|
echo "### ERROR If not snapshot, then the marketing version must be set!"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2019-04-28 10:35:27 +03:00
|
|
|
if [[ "${PUBLISH}" = true ]] && [[ "${RELEASE_NOTES}" == "" ]] ; then
|
2017-04-30 10:45:24 +03:00
|
|
|
echo "### ERROR No release notes, but publishing to Github!"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2019-04-28 10:58:37 +03:00
|
|
|
# We have to manually notarize the app for now.
|
|
|
|
#if [[ "${IS_SNAPSHOT}" = false ]] && [[ "${UPDATE_APPCAST}" = false ]] ; then
|
|
|
|
# echo "### ERROR Not updating appcast for release!"
|
|
|
|
# exit 1
|
|
|
|
#fi
|
2016-11-05 10:53:11 +03:00
|
|
|
|
2019-04-28 10:35:27 +03:00
|
|
|
if [[ "${IS_SNAPSHOT}" = false ]] && [[ "${BRANCH}" != "master" ]] ; then
|
2016-11-05 10:53:11 +03:00
|
|
|
echo "### ERROR Not building master for release!"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2019-04-28 10:35:27 +03:00
|
|
|
if [[ "${IS_SNAPSHOT}" = true ]] && [[ "${BRANCH}" == "master" ]] ; then
|
2016-11-05 10:53:11 +03:00
|
|
|
echo "### ERROR Building master for snapshot!"
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
2016-10-22 11:12:39 +03:00
|
|
|
echo "### Installing some python packages"
|
|
|
|
|
2018-03-10 18:37:17 +03:00
|
|
|
pip3 install requests
|
|
|
|
pip3 install Markdown
|
2016-10-22 11:12:39 +03:00
|
|
|
|
2016-10-15 10:38:09 +03:00
|
|
|
echo "### Building VimR"
|
|
|
|
|
2016-10-14 13:46:15 +03:00
|
|
|
./bin/prepare_repositories.sh
|
2016-10-14 13:51:49 +03:00
|
|
|
./bin/clean_old_builds.sh
|
2017-06-05 17:13:56 +03:00
|
|
|
|
2019-04-28 10:58:37 +03:00
|
|
|
if [[ "${IS_SNAPSHOT}" = false ]] || [[ "${PUBLISH}" = true ]] ; then
|
2017-06-05 17:13:56 +03:00
|
|
|
./bin/set_new_versions.sh ${IS_SNAPSHOT} "${MARKETING_VERSION}"
|
|
|
|
else
|
2019-04-28 10:58:37 +03:00
|
|
|
echo "Not publishing and no release => not incrementing the version..."
|
2017-06-05 17:13:56 +03:00
|
|
|
fi
|
|
|
|
|
2016-10-17 23:35:29 +03:00
|
|
|
./bin/build_vimr.sh true
|
2016-10-14 13:31:51 +03:00
|
|
|
|
2017-12-03 11:59:15 +03:00
|
|
|
pushd VimR
|
2016-10-14 13:31:51 +03:00
|
|
|
BUNDLE_VERSION=$(agvtool what-version | sed '2q;d' | sed -E 's/ +(.+)/\1/')
|
|
|
|
MARKETING_VERSION=$(agvtool what-marketing-version | tail -n 1 | sed -E 's/.*of "(.*)" in.*/\1/')
|
2017-12-03 11:59:15 +03:00
|
|
|
popd
|
|
|
|
|
2016-10-14 13:31:51 +03:00
|
|
|
COMPOUND_VERSION="v${MARKETING_VERSION}-${BUNDLE_VERSION}"
|
2016-10-14 16:58:58 +03:00
|
|
|
TAG=${COMPOUND_VERSION}
|
2016-12-18 13:24:06 +03:00
|
|
|
|
2019-04-28 10:35:27 +03:00
|
|
|
if [[ "${IS_SNAPSHOT}" = true ]] ; then
|
2016-12-18 13:24:06 +03:00
|
|
|
COMPOUND_VERSION="SNAPSHOT-${BUNDLE_VERSION}"
|
|
|
|
TAG="snapshot/${BUNDLE_VERSION}"
|
2016-10-15 01:09:57 +03:00
|
|
|
fi
|
2016-12-18 13:24:06 +03:00
|
|
|
|
2017-04-30 11:15:33 +03:00
|
|
|
echo "### Compressing the app"
|
2016-10-14 16:58:58 +03:00
|
|
|
VIMR_FILE_NAME="VimR-${COMPOUND_VERSION}.tar.bz2"
|
2017-11-30 00:59:49 +03:00
|
|
|
pushd build/Build/Products/Release
|
2017-04-30 11:15:33 +03:00
|
|
|
tar cjf ${VIMR_FILE_NAME} VimR.app
|
|
|
|
popd
|
2016-10-14 13:31:51 +03:00
|
|
|
|
2016-10-15 10:38:09 +03:00
|
|
|
echo "### Bundle version: ${BUNDLE_VERSION}"
|
|
|
|
echo "### Marketing version: ${MARKETING_VERSION}"
|
|
|
|
echo "### Compund version: ${COMPOUND_VERSION}"
|
|
|
|
echo "### Tag: ${TAG}"
|
|
|
|
echo "### VimR archive file name: ${VIMR_FILE_NAME}"
|
2016-10-14 13:31:51 +03:00
|
|
|
|
2019-04-28 10:35:27 +03:00
|
|
|
if [[ "${PUBLISH}" = false ]] ; then
|
2017-04-30 10:45:24 +03:00
|
|
|
echo "Do not publish => exiting now..."
|
|
|
|
exit 0
|
|
|
|
fi
|
|
|
|
|
2016-10-15 10:38:09 +03:00
|
|
|
./bin/commit_and_push_tags.sh "${BRANCH}" "${TAG}"
|
2016-10-24 23:28:48 +03:00
|
|
|
./bin/create_github_release.sh "${COMPOUND_VERSION}" "${TAG}" "${VIMR_FILE_NAME}" "${RELEASE_NOTES}" ${IS_SNAPSHOT}
|
2016-11-03 22:23:41 +03:00
|
|
|
|
2019-04-28 10:35:27 +03:00
|
|
|
if [[ "${UPDATE_APPCAST}" = true ]] ; then
|
2017-11-30 00:59:49 +03:00
|
|
|
./bin/set_appcast.py "build/Build/Products/Release/${VIMR_FILE_NAME}" "${BUNDLE_VERSION}" "${MARKETING_VERSION}" "${TAG}" ${IS_SNAPSHOT}
|
2017-06-28 18:21:36 +03:00
|
|
|
./bin/commit_and_push_appcast.sh "${BRANCH}" "${COMPOUND_VERSION}" ${IS_SNAPSHOT} ${UPDATE_SNAPSHOT_APPCAST_FOR_RELEASE}
|
2016-11-03 22:23:41 +03:00
|
|
|
fi
|
2016-10-15 10:38:09 +03:00
|
|
|
|
2019-04-28 10:35:27 +03:00
|
|
|
if [[ "${IS_SNAPSHOT}" = false ]] ; then
|
2017-08-13 09:21:43 +03:00
|
|
|
echo "### Merging ${BRANCH} back to develop"
|
|
|
|
git reset --hard @
|
|
|
|
git fetch origin
|
|
|
|
git checkout -b for_master_to_develop origin/develop
|
|
|
|
git merge --ff-only for_build
|
|
|
|
git push origin HEAD:develop
|
|
|
|
fi
|
|
|
|
|
2016-10-15 10:38:09 +03:00
|
|
|
echo "### Built VimR"
|