265.1.2
by Loïc Minier
Add simple script to roll a release; needs some setup.py fixes before it can |
1 |
#!/bin/sh
|
2 |
# tag tree, generate ChangeLog and roll a release tarball
|
|
3 |
||
4 |
set -e
|
|
5 |
||
6 |
self="$(basename "$0")" |
|
7 |
||
8 |
usage() { |
|
9 |
echo "Usage: $self <version>" |
|
10 |
}
|
|
11 |
||
12 |
log() { |
|
13 |
echo "$*" >&2 |
|
14 |
}
|
|
15 |
||
16 |
log_i() { |
|
17 |
log "I:" "$@" |
|
18 |
}
|
|
19 |
||
20 |
die() { |
|
21 |
log "E:" "$@" |
|
22 |
exit 1 |
|
23 |
}
|
|
24 |
||
25 |
version="$1" |
|
26 |
||
27 |
if [ -z "$version" ]; then |
|
28 |
usage >&2 |
|
29 |
exit 1 |
|
30 |
fi
|
|
31 |
||
265.1.12
by Loïc Minier
Run testsuite before release. |
32 |
log_i "Checking tree status"
|
265.1.8
by Loïc Minier
Check whether tree is dirty with bzr status before rolling a release. |
33 |
status=`bzr status` |
34 |
if [ -n "$status" ]; then |
|
35 |
die "Tree is dirty according to bzr status"
|
|
36 |
fi
|
|
37 |
||
265.1.12
by Loïc Minier
Run testsuite before release. |
38 |
log_i "Running tests"
|
324
by Mattias Backman
Tests are now in module linaro_image_tools. |
39 |
if ! python -m testtools.run linaro_image_tools.tests.test_suite; then |
265.1.12
by Loïc Minier
Run testsuite before release. |
40 |
die "Testsuite doesn't pass"
|
41 |
fi
|
|
42 |
||
345
by Mattias Backman
Make do-release script remove possibly remaining .testrepository dir. |
43 |
log_i "Removing test repository data"
|
44 |
rm -rf .testrepository/ |
|
45 |
||
265.1.2
by Loïc Minier
Add simple script to roll a release; needs some setup.py fixes before it can |
46 |
if bzr tags | awk '{print $1}' | grep -qFx "$version"; then |
265.1.8
by Loïc Minier
Check whether tree is dirty with bzr status before rolling a release. |
47 |
die "Tag $version already exists" |
265.1.2
by Loïc Minier
Add simple script to roll a release; needs some setup.py fixes before it can |
48 |
fi
|
49 |
||
265.1.13
by Loïc Minier
Update setup.py and commit the version change. |
50 |
log_i "Setting version to $version in setup.py" |
51 |
sed -i "s/^\\([[:space:]]*version=\"\\)[^\"]*\",\$/\1$version\",/" setup.py |
|
52 |
||
53 |
log_i "Committing $version" |
|
54 |
bzr commit -m "Release $version" |
|
55 |
||
265.1.2
by Loïc Minier
Add simple script to roll a release; needs some setup.py fixes before it can |
56 |
log_i "Creating tag $version" |
57 |
bzr tag "$version" |
|
58 |
||
59 |
log_i "Generating ChangeLog"
|
|
60 |
bzr log -v --gnu-changelog >ChangeLog |
|
61 |
||
62 |
log_i "Creating release tarball in parent directory"
|
|
63 |
./setup.py sdist -d .. |
|
64 |
||
65 |
log_i "Cleaning up"
|
|
66 |
rm -f ChangeLog MANIFEST |
|
67 |
||
265.1.14
by Loïc Minier
Sign tarball. |
68 |
log_i "Signing tarball"
|
69 |
gpg --armor --sign --detach-sig "../linaro-image-tools-$version.tar.gz" |
|
70 |
||
276
by Loïc Minier
Bump version after release. |
71 |
log_i "Setting version to $version.1 in setup.py" |
72 |
sed -i "s/^\\([[:space:]]*version=\"\\)[^\"]*\",\$/\1$version.1\",/" setup.py |
|
73 |
||
74 |
log_i "Committing $version" |
|
75 |
bzr commit -m "Post-release version bump to $version.1" |