~ivi-remix/ivi-remix/linaro-image-tools-old

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"