Automate the release procedure a bit more.
[git.git] / DoKernelOrg
1 #!/bin/sh
2
3 J='-l 4 -j'
4 G=/pub/software/scm/git &&
5
6 cd $HOME/git &&
7 make clean >/dev/null 2>&1 &&
8 git reset --hard &&
9 make clean >/dev/null 2>&1 &&
10 git checkout master &&
11 git pull . origin &&
12 make clean >/dev/null 2>&1 &&
13
14 case "$1" in
15 '')
16         echo "* Building all"
17         branches='next master maint'
18         nstalled=install
19         for branch in $branches
20         do
21                 if git-rev-parse --verify refs/heads/$branch 2>/dev/null
22                 then
23                         echo "** $branch **" &&
24                         git checkout $branch &&
25                         make $J $nstalled &&
26                         make test &&
27                         make clean &&
28                         nstalled=all || exit $?
29                 else
30                         echo
31                         echo "* NO $branch"
32                         echo
33                 fi
34         done >:all.log 2>&1
35         ;;
36
37 maint | master)
38         case `hostname` in
39         hera.kernel.org)
40                 arch=x86_64 ;;
41         old-hera.kernel.org)
42                 arch=i386 ;;
43         *)      echo >&2 "What are you talking about???"
44                 exit 1 ;;
45         esac &&
46         : >./:all.log &&
47         mkdir -p $G/RPMS/$arch $G/RPMS/SRPMS &&
48         echo "* Building $1" &&
49         git checkout "$1" &&
50         make rpm >>./:all.log 2>&1 &&
51         case "$arch" in
52         i386)
53                 status=$?
54                 echo >&2 "Done -- move RPMS to the master machine."
55                 make clean
56                 exit $status ;;
57         esac &&
58         make dist-doc >>./:all.log 2>&1 &&
59         make $J git >>./:all.log 2>&1 &&
60         V=`./git --version | sed -e 's/git version //'` &&
61         ln git-$V.tar.gz git-htmldocs-$V.tar.gz git-manpages-$V.tar.gz $G/. &&
62         ln $HOME/rpms/RPMS/$arch/git*-$V-* $G/RPMS/$arch/. &&
63         ln $HOME/rpms/SRPMS/git-$V-* $G/RPMS/SRPMS/. &&
64         {
65                 # I do not know how it exits, and I do not care much.
66                 /usr/local/bin/yummy $G/RPMS/$arch
67                 /usr/local/bin/yummy $G/RPMS/SRPMS
68                 :
69         } >>./:all.log 2>&1 &&
70         make clean &&
71
72         : ;;
73 esac || exit $?
74
75 git checkout master