1*2d543d20SAndroid Build Coastguard Worker#!/bin/bash 2*2d543d20SAndroid Build Coastguard Worker 3*2d543d20SAndroid Build Coastguard Worker# Fail when a command fails 4*2d543d20SAndroid Build Coastguard Workerset -e 5*2d543d20SAndroid Build Coastguard Worker 6*2d543d20SAndroid Build Coastguard Worker# Ensure the script is running from the top level directory 7*2d543d20SAndroid Build Coastguard Workercd "$(dirname -- "$0")/.." 8*2d543d20SAndroid Build Coastguard Worker 9*2d543d20SAndroid Build Coastguard WorkerWIKIDIR=../selinux.wiki 10*2d543d20SAndroid Build Coastguard Worker 11*2d543d20SAndroid Build Coastguard Workerif ! [ -d "$WIKIDIR" ]; then 12*2d543d20SAndroid Build Coastguard Worker git clone git@github.com:SELinuxProject/selinux.wiki.git "$WIKIDIR" 13*2d543d20SAndroid Build Coastguard Workerfi 14*2d543d20SAndroid Build Coastguard Worker 15*2d543d20SAndroid Build Coastguard WorkerRELEASE_TAG="$(cat VERSION)" 16*2d543d20SAndroid Build Coastguard WorkerDEST="releases/$RELEASE_TAG" 17*2d543d20SAndroid Build Coastguard WorkerDIRS=( 18*2d543d20SAndroid Build Coastguard Worker checkpolicy 19*2d543d20SAndroid Build Coastguard Worker libselinux 20*2d543d20SAndroid Build Coastguard Worker libsemanage 21*2d543d20SAndroid Build Coastguard Worker libsepol 22*2d543d20SAndroid Build Coastguard Worker mcstrans 23*2d543d20SAndroid Build Coastguard Worker policycoreutils 24*2d543d20SAndroid Build Coastguard Worker restorecond 25*2d543d20SAndroid Build Coastguard Worker secilc 26*2d543d20SAndroid Build Coastguard Worker selinux-dbus 27*2d543d20SAndroid Build Coastguard Worker selinux-gui 28*2d543d20SAndroid Build Coastguard Worker selinux-python 29*2d543d20SAndroid Build Coastguard Worker selinux-sandbox 30*2d543d20SAndroid Build Coastguard Worker semodule-utils 31*2d543d20SAndroid Build Coastguard Worker) 32*2d543d20SAndroid Build Coastguard Worker 33*2d543d20SAndroid Build Coastguard Workerif git rev-parse "$RELEASE_TAG" &> /dev/null ; then 34*2d543d20SAndroid Build Coastguard Worker echo "Warning: tag $RELEASE_TAG already exists" 35*2d543d20SAndroid Build Coastguard Workerelse 36*2d543d20SAndroid Build Coastguard Worker git tag -a "$RELEASE_TAG" -m "Release $RELEASE_TAG" 37*2d543d20SAndroid Build Coastguard Workerfi 38*2d543d20SAndroid Build Coastguard Worker 39*2d543d20SAndroid Build Coastguard Workerrm -rf "$DEST" 40*2d543d20SAndroid Build Coastguard Workermkdir -p "$DEST" 41*2d543d20SAndroid Build Coastguard Worker 42*2d543d20SAndroid Build Coastguard Workerfor COMPONENT in "${DIRS[@]}"; do 43*2d543d20SAndroid Build Coastguard Worker DIR="${COMPONENT#selinux-}" 44*2d543d20SAndroid Build Coastguard Worker VERS="$(cat "$DIR/VERSION")" 45*2d543d20SAndroid Build Coastguard Worker TAG="$COMPONENT-$VERS" 46*2d543d20SAndroid Build Coastguard Worker if git rev-parse "$TAG" &> /dev/null ; then 47*2d543d20SAndroid Build Coastguard Worker echo "Warning: tag $TAG already exists" 48*2d543d20SAndroid Build Coastguard Worker else 49*2d543d20SAndroid Build Coastguard Worker git tag "$TAG" > /dev/null 50*2d543d20SAndroid Build Coastguard Worker fi 51*2d543d20SAndroid Build Coastguard Worker git -C "$DIR" archive -o "../$DEST/$TAG.tar.gz" --prefix="$TAG/" "$TAG" 52*2d543d20SAndroid Build Coastguard Worker gpg -b -a "../$DEST/$TAG.tar.gz" 53*2d543d20SAndroid Build Coastguard Workerdone 54*2d543d20SAndroid Build Coastguard Worker 55*2d543d20SAndroid Build Coastguard Workergit archive -o "$DEST/selinux-${RELEASE_TAG}.tar.gz" --prefix="selinux-${RELEASE_TAG}/" "${RELEASE_TAG}" 56*2d543d20SAndroid Build Coastguard Worker 57*2d543d20SAndroid Build Coastguard Workerecho "Add the following to the $WIKIDIR/Releases.md wiki page:" 58*2d543d20SAndroid Build Coastguard Worker 59*2d543d20SAndroid Build Coastguard Workerecho "" 60*2d543d20SAndroid Build Coastguard Worker 61*2d543d20SAndroid Build Coastguard Workerecho "## Release $RELEASE_TAG" 62*2d543d20SAndroid Build Coastguard Worker 63*2d543d20SAndroid Build Coastguard Workerecho "" 64*2d543d20SAndroid Build Coastguard Worker 65*2d543d20SAndroid Build Coastguard Workerecho "[Release Notes](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/RELEASE-$RELEASE_TAG.txt)" 66*2d543d20SAndroid Build Coastguard Workerecho "" 67*2d543d20SAndroid Build Coastguard Workerecho "[full log](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/log-$RELEASE_TAG.txt)" 68*2d543d20SAndroid Build Coastguard Workerecho "" 69*2d543d20SAndroid Build Coastguard Workerecho "[short log](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/shortlog-$RELEASE_TAG.txt)" 70*2d543d20SAndroid Build Coastguard Workerecho "" 71*2d543d20SAndroid Build Coastguard Worker 72*2d543d20SAndroid Build Coastguard Workerfor COMPONENT in "${DIRS[@]}"; do 73*2d543d20SAndroid Build Coastguard Worker DIR="${COMPONENT#selinux-}" 74*2d543d20SAndroid Build Coastguard Worker VERS="$(cat "$DIR/VERSION")" 75*2d543d20SAndroid Build Coastguard Worker TAG="$COMPONENT-$VERS" 76*2d543d20SAndroid Build Coastguard Worker tarball="$TAG.tar.gz" 77*2d543d20SAndroid Build Coastguard Worker echo -n "[$tarball](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/$tarball) " 78*2d543d20SAndroid Build Coastguard Worker sha256sum "$DEST/$tarball" | cut -d " " -f 1 79*2d543d20SAndroid Build Coastguard Worker echo "" 80*2d543d20SAndroid Build Coastguard Workerdone 81*2d543d20SAndroid Build Coastguard Worker 82*2d543d20SAndroid Build Coastguard Workerecho "### Source repository snapshot" 83*2d543d20SAndroid Build Coastguard Worker 84*2d543d20SAndroid Build Coastguard Workerecho "" 85*2d543d20SAndroid Build Coastguard Worker 86*2d543d20SAndroid Build Coastguard Workerecho -n "[selinux-${RELEASE_TAG}.tar.gz](https://github.com/SELinuxProject/selinux/releases/download/$RELEASE_TAG/selinux-${RELEASE_TAG}.tar.gz) " 87*2d543d20SAndroid Build Coastguard Workersha256sum "$DEST/selinux-${RELEASE_TAG}.tar.gz" | cut -d " " -f 1 88*2d543d20SAndroid Build Coastguard Workerecho "" 89*2d543d20SAndroid Build Coastguard Worker 90*2d543d20SAndroid Build Coastguard Workerecho "And then run:" 91*2d543d20SAndroid Build Coastguard Workerecho " cd $WIKIDIR" 92*2d543d20SAndroid Build Coastguard Workerecho " git commit -m \"Release $RELEASE_TAG\" -a -s" 93*2d543d20SAndroid Build Coastguard Workerecho " git push" 94*2d543d20SAndroid Build Coastguard Worker 95*2d543d20SAndroid Build Coastguard Workerecho "" 96*2d543d20SAndroid Build Coastguard Workerecho "Push the release and its tags to git via:" 97*2d543d20SAndroid Build Coastguard Workerecho " git push" 98*2d543d20SAndroid Build Coastguard Workerecho " git push --tags" 99*2d543d20SAndroid Build Coastguard Worker 100*2d543d20SAndroid Build Coastguard Workerecho "" 101*2d543d20SAndroid Build Coastguard Workerecho "Create a new release from the latest tag on https://github.com/SELinuxProject/selinux/tags" 102*2d543d20SAndroid Build Coastguard Worker 103*2d543d20SAndroid Build Coastguard Workerecho "" 104*2d543d20SAndroid Build Coastguard Workerecho "Add files from releases/$RELEASE_TAG as assets to the new github release" 105