104 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			104 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/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"
 | |
| 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"
 |