Files
Classroom_Desktop/update_canary.sh
T

60 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
set -euo pipefail
ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
cd "$ROOT"
current_version="$(cat VERSION)"
if [[ $# -eq 1 ]]; then
version="$1"
else
IFS='.' read -r major minor patch <<< "$current_version"
version="${major}.${minor}.$((patch + 1))"
fi
package_name="ekklesia-classroom_${version}_amd64.deb"
package_path="$ROOT/dist/$package_name"
echo "Current version: $current_version"
echo "New canary: $version"
echo
"$ROOT/tools/build-release.sh" "$version"
hash="$(sha256sum "$package_path" | awk '{print $1}')"
mkdir -p "$ROOT/repo/packages" "$ROOT/repo/canary"
cp "$package_path" "$ROOT/repo/packages/$package_name"
cat > "$ROOT/repo/canary/manifest.json" <<EOF
{
"version": "$version",
"package": "/packages/$package_name",
"sha256": "$hash",
"requires_reboot": true
}
EOF
echo
echo "Publishing package..."
rsync -av \
-e ssh \
"$ROOT/repo/packages/$package_name" \
classroom-control:/srv/ekklesia/classroom-updates/packages/
echo
echo "Publishing canary manifest..."
# Manifest deliberately goes LAST.
rsync -av \
-e ssh \
"$ROOT/repo/canary/manifest.json" \
classroom-control:/srv/ekklesia/classroom-updates/canary/manifest.json
echo
echo "Published Ekklesia Classroom $version to CANARY"
echo "https://updates.riverofglorymn.org/canary/manifest.json"