weblate/scripts/create-release
2021-11-19 21:42:06 +01:00

85 lines
2.3 KiB
Bash
Executable file

#!/bin/sh
set -e
if [ "x$1" = "x--help" -o "x$1" = "x-h" ] ; then
echo "Usage: ./scripts/create-release [--tag]"
exit 1
fi
if ! git diff --exit-code --quiet ; then
echo "There are not committed changes!"
exit 1
fi
DO_TAG=0
if [ "x$1" = "x--tag" ] ; then
DO_TAG=1
shift
fi
# Start with clean build environment
./setup.py clean
rm -rf build
# Grab version
. scripts/test-database
version=$(python -c 'import weblate.utils.version; print(weblate.utils.version.VERSION_BASE)')
namever=weblate-$version
tarver=Weblate-$version
# What are we going to build?
if [ "$DO_TAG" -eq 1 ] ; then
./scripts/prepare-release
git tag -s $namever -m "Version $version"
cd ~/weblate/test
git pull -q
git tag -s $namever -m "Test data for version $version"
cd ~/weblate/weblate
fi
# Compile po files
./scripts/generate-locales
# Create tarballs
rm -rf ./build/
fakeroot ./setup.py sdist
fakeroot ./setup.py bdist_wheel
# Recompress tarballs
zcat dist/$tarver.tar.gz | xz > dist/$tarver.tar.xz
zcat dist/$tarver.tar.gz | bzip2 > dist/$tarver.tar.bz2
# Upload release
if [ "$DO_TAG" -eq 1 ] ; then
# PyPi archive upload
twine upload --sign --identity 63CB1DF1EF12CF2AC0EE5A329C27B31342B7511D dist/$tarver.tar.gz
twine upload --sign --identity 63CB1DF1EF12CF2AC0EE5A329C27B31342B7511D dist/$tarver*.whl
# Sign remaining files
gpg --detach-sign --armor --local-user 63CB1DF1EF12CF2AC0EE5A329C27B31342B7511D dist/$tarver.tar.xz
gpg --detach-sign --armor --local-user 63CB1DF1EF12CF2AC0EE5A329C27B31342B7511D dist/$tarver.tar.bz2
# Download server
scp dist/Weblate-$version.tar.* web:/srv/http/dl.cihar.com/weblate/
# Git tags
git push --tags
cd ~/weblate/test
git push --tags
cd ~/weblate/weblate
# Update stable branch
git checkout stable
git merge $namever
git push origin stable
git checkout main
# Upload to GitHub
./scripts/extract-release-notes $version > dist/Weblate-$version.md
hub release create --file=dist/Weblate-$version.md $namever
hub release edit -m '' --attach=dist/$tarver.tar.gz $namever
hub release edit -m '' --attach=dist/$tarver.tar.gz.asc $namever
hub release edit -m '' --attach=dist/$tarver.tar.xz $namever
hub release edit -m '' --attach=dist/$tarver.tar.xz.asc $namever
fi