| #!/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" |