Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Replaced release.py with release.sh #252

Merged
merged 3 commits into from
Oct 27, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
90 changes: 0 additions & 90 deletions scripts/release.py

This file was deleted.

103 changes: 103 additions & 0 deletions scripts/release.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,103 @@
#!/bin/bash

##### Different color outputs (to distinguish errors from standard output) #####
prGreen() {
echo -e "\e[36m-->\e[92m $1\e[00m"
}
prRed() {
echo -e "\e[36m-->\e[91m $1\e[00m"
}
prYellow() {
echo -e "\e[36m-->\e[93m $1\e[00m"
}

##### Check whether the script is called properly #####
if [ $# != 1 ]
then
echo "Usage: $0 <VERSION>"
echo "<VERSION> should be similar to \"1.2+3\" (+3 is optional)"
exit 1;
fi

##### Defining the different ways the version is represented #####
VERSION=$1
VERSION_NO_PATCH=${VERSION/+*/}
VERSION_VCPKG=$(echo $VERSION | tr + .)

##### Defining the paths used #####
SCRIPT_PATH=$(dirname $(realpath $BASH_SOURCE))
SOURCE_PATH=$SCRIPT_PATH/../include/crow
RELEASE_PATH=$SCRIPT_PATH/../build_release
RELEASE_CODE_PATH=$SCRIPT_PATH/../build_release/_CPack_Packages/Linux
RELEASE_AUR_PATH=$SCRIPT_PATH/../build_release/_CPack_Packages/Linux/AUR

if [ -d $RELEASE_PATH ]
then
prYellow "Detected existing release directory, overriding..."
rm -rf $RELEASE_PATH
fi

##### Create the dir #####
prGreen "Creating new release directory..."
mkdir $RELEASE_PATH

##### Changing "master" version to <version_number> #####
cd $SOURCE_PATH
prGreen "Applying new version to Crow server name..."
sed -i "s/char VERSION\\[\\] = \".*\";/char VERSION\\[\\] = \"$VERSION_NO_PATCH\";/g" version.h
prGreen "Applying new version to vcpkg..."
sed -i "s/\"version-string\": \".*\",/\"version\": \"$VERSION_VCPKG\",/g" ../../vcpkg.json
prGreen "Applying new version to PKGBUILD..."
sed -i "s/^pkgver=.*/pkgver=$VERSION/" $SCRIPT_PATH/PKGBUILD
sed -i "s/^pkgrel=.*/pkgrel=1/" $SCRIPT_PATH/PKGBUILD

##### Running CMake to compile crow_all and the deb package #####
cd $RELEASE_PATH
prGreen "Compiling Release..."
cmake -DCROW_BUILD_EXAMPLES=OFF -DCROW_BUILD_TESTS=OFF -DCROW_AMALGAMATE=ON -DCPACK_PACKAGE_VERSION=$VERSION -DCPACK_PACKAGE_FILE_NAME="crow-$VERSION" .. && make -j4
prGreen "Compiling DEB package..."
cpack -R $VERSION

##### Create standalone package from DEB data #####
prGreen "Compiling Standalone tar package..."
cd $RELEASE_CODE_PATH
tar -czf crow-v$VERSION.tar.gz -C DEB/crow-$VERSION/usr ./
cp crow-v$VERSION.tar.gz $RELEASE_PATH/crow-v$VERSION.tar.gz

##### Getting the AUR package data #####
prGreen "Cloning AUR package..."
git clone ssh://[email protected]/crow.git AUR

##### Updating the PKGBUILD in build dir, and adding the tarball for checksum calculations #####
prGreen "Updating AUR package..."
cp crow-v$VERSION.tar.gz AUR/crow-v$VERSION.tar.gz
cp $SCRIPT_PATH/PKGBUILD AUR/PKGBUILD

##### Updating Checksums #####
cd $RELEASE_AUR_PATH
prGreen "Updating AUR package Checksums..."
MD5=$(md5sum crow-v$VERSION.tar.gz | cut -c -32)
SHA256=$(sha256sum crow-v$VERSION.tar.gz | cut -c -64)
sed -i "s/^md5sums=.*/md5sums=(\'$MD5\')/" PKGBUILD
sed -i "s/^sha256sums=.*/sha256sums=(\'$SHA256\')/" PKGBUILD

##### Updating SRCINFO file #####
prGreen "Updating AUR SRCINFO..."
which makepkg &>/dev/null
if [ $? -eq 0 ]
then
makepkg --printsrcinfo > .SRCINFO
else
prRed "makepkg not found, AUR SRCINFO cannot be updated."
fi

##### Give instructions on how to upload the finished release #####
prYellow "Release for Crow-$VERSION was made successfully. To publish the release please do the following:
1. Commit the code changes to a separate branch (Recommended name is \"$VERSION_NO_PATCH\").
2. Create a tag (Github release) from the branch.
3. Upload the \"crow-$VERSION.deb\", \"crow-v$VERSION.tar.gz\" and \"crow_all.h\" files to the release.
4. Update the changelog in \"$RELEASE_AUR_PATH\".
5. push the changes to AUR (using git and only if AUR update ran without errors).
6. Open issues to update the packages in VCPKG and ConanCenter."

exit 0