xref: /aosp_15_r20/external/selinux/scripts/release (revision 2d543d20722ada2425b5bdab9d0d1d29470e7bba)
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