summaryrefslogtreecommitdiff
path: root/external/mit/libcbor/dist/release.sh
blob: 4a833a4e16b74b9c04543a2e68d4a4b6733bd40b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#!/usr/bin/env bash

# Guides my forgetful self through the release process.
# Usage release.sh VERSION

set -e

function prompt() {
	echo "$1 Confirm with 'Yes'"
	read check
	if [ "$check" != "Yes" ]; then
		echo "Aborting..."
		exit 1
	fi
}
# http://stackoverflow.com/questions/59895/getting-the-source-directory-of-a-bash-script-from-within
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
OUTDIR=$(mktemp -d)
TAG_NAME="v$1"

cd $DIR

echo ">>>>> Checking changelog"
grep -A 5 -F $1 CHANGELOG.md || true
prompt "Is the changelog correct and complete?"

echo ">>>>> Checking Doxyfile"
grep PROJECT_NUMBER Doxyfile
prompt "Is the Doxyfile version correct?"

echo ">>>>> Checking CMakeLists"
grep -A 2 'SET(CBOR_VERSION_MAJOR' CMakeLists.txt
prompt "Is the CMake version correct?"

echo ">>>>> Checking docs"
grep 'version =\|release =' doc/source/conf.py
prompt "Are the versions correct?"

set -x
pushd doc
make clean
popd
doxygen
cd doc
make html
cd build

cp -r html libcbor_docs_html
tar -zcf libcbor_docs.tar.gz libcbor_docs_html

cp -r doxygen/html libcbor_api_docs_html
cp -r doxygen/html $DIR/docs/doxygen
tar -zcf libcbor_api_docs.tar.gz libcbor_api_docs_html

mv libcbor_docs.tar.gz libcbor_api_docs.tar.gz $OUTDIR

cd $OUTDIR

cmake $DIR -DCMAKE_BUILD_TYPE=Release -DWITH_TESTS=ON
make
ctest

cd $DIR
git add docs/doxygen
git commit -m "[Release] Add current API documentation"

prompt "Will proceed to tag the release with $TAG_NAME."
git tag $TAG_NAME
git push origin

set +x

echo "Release ready in $OUTDIR"
echo "Add the release to GitHub at https://github.com/PJK/libcbor/releases/new *now*"
prompt "Have you added the release to https://github.com/PJK/libcbor/releases/tag/$TAG_NAME?"

set -x

pushd docs
erb index.html.erb > index.html
git add index.html
git commit -m "[Release] Update website to $TAG_NAME"
git push

set +x

echo "Update the Hombrew tap (https://github.com/PJK/homebrew-libcbor) *now*"
prompt "Have you updated the tap?"