#!/bin/bash # Fail when a command fails set -e # Ensure the script is running from the top level directory cd "$(dirname -- "$0")/.." WIKIDIR=../selinux.wiki if ! [ -d "$WIKIDIR" ]; then git clone git@github.com:SELinuxProject/selinux.wiki.git "$WIKIDIR" fi RELEASE_TAG="$(cat VERSION)" DEST="releases/$RELEASE_TAG" DIRS=( checkpolicy libselinux libsemanage libsepol mcstrans policycoreutils restorecond secilc selinux-dbus selinux-gui selinux-python selinux-sandbox semodule-utils ) if git rev-parse "$RELEASE_TAG" &> /dev/null ; then echo "Warning: tag $RELEASE_TAG already exists" else git tag -a "$RELEASE_TAG" -m "Release $RELEASE_TAG" fi rm -rf "$DEST" mkdir -p "$DEST" for COMPONENT in "${DIRS[@]}"; do DIR="${COMPONENT#selinux-}" VERS="$(cat "$DIR/VERSION")" TAG="$COMPONENT-$VERS" if git rev-parse "$TAG" &> /dev/null ; then echo "Warning: tag $TAG already exists" else git tag "$TAG" > /dev/null fi git -C "$DIR" archive -o "../$DEST/$TAG.tar.gz" --prefix="$TAG/" "$TAG" gpg -b -a "../$DEST/$TAG.tar.gz" done git archive -o "$DEST/selinux-${RELEASE_TAG}.tar.gz" --prefix="selinux-${RELEASE_TAG}/" "${RELEASE_TAG}" echo "Add the following to the $WIKIDIR/Releases.md wiki page:" echo "" echo "## Release $RELEASE_TAG" echo "" echo "[Release Notes](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/RELEASE-$RELEASE_TAG.txt)" echo "" echo "[full log](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/log-$RELEASE_TAG.txt)" echo "" echo "[short log](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/shortlog-$RELEASE_TAG.txt)" echo "" for COMPONENT in "${DIRS[@]}"; do DIR="${COMPONENT#selinux-}" VERS="$(cat "$DIR/VERSION")" TAG="$COMPONENT-$VERS" tarball="$TAG.tar.gz" echo -n "[$tarball](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/$tarball) " sha256sum "$DEST/$tarball" | cut -d " " -f 1 echo "" done echo "### Source repository snapshot" echo "" echo -n "[selinux-${RELEASE_TAG}.tar.gz](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/selinux-${RELEASE_TAG}.tar.gz) " sha256sum "$DEST/selinux-${RELEASE_TAG}.tar.gz" | cut -d " " -f 1 echo "" echo "And then run:" echo " cd $WIKIDIR" echo " git commit -m \"Release $RELEASE_TAG\" -a -s" echo " git push" echo "" echo "Push the release and its tags to git via:" echo " git push" echo " git push --tags" echo "" echo "Create a new release from the latest tag on https://github.com/SELinuxProject/selinux/tags" echo "" echo "Add files from releases/$RELEASE_TAG as assets to the new github release"