]> git.ozlabs.org Git - next-scripts/blob - make_tree_file
automatically remove the oldest releases from korg
[next-scripts] / make_tree_file
1 #!/bin/bash
2
3 # Don't do releases in the wee hours :-)
4 h=$(date '+%H')
5 (( "$h" < 10 && "$h" > 4 )) && {
6         echo "Go back to bed" 1>&2
7         exit 1
8 }
9
10 eval $(ssh-agent -s)
11 ssh-add ~/.ssh/ra.kernel.org
12
13 # This means I get the right tag if I finish after midnight
14 d=$(date --date "5 hours ago" '+%Y%m%d')
15 l="$(git describe --match "v*" --abbrev=0)"
16 n="next-$d"
17
18 mkdir Next
19
20 echo 'Trees included into this release:
21
22 Name            Type    URL
23 ----            ----    ---' > Next/Trees
24
25 IFS='   '
26 while read email type name url ref build; do
27         [[ "$email" =~ '^#.*$' ]] && continue
28         tab="\t"
29         [ $(echo "$name" | wc -c) -le 8 ] && tab="\t\t"
30         [ "${ref%:*}" = "${ref}" ] || ref=${ref##*:}
31         [ "$type" = "git" ] && url="$url#$ref"
32         printf "%s$tab%s\t%s\n" $name $type $url
33 done <../real_control >>Next/Trees
34
35 mv ../SHA1s Next/SHA1s
36
37 for i in quilt-import.log merge.log; do
38         grep -v '^Checking out files:' ../$i >Next/$i
39 done
40
41 printf -- "-next-%s\n" $d >localversion-next
42
43 git add Next localversion-next
44 git commit -s -v -a -m "Add linux-next specific files for $d"
45 git tag -u 41D5C07A -m "$n" "$n"
46
47 git branch -f stable refs/remotes/origin/master
48
49 p="patch-$l-$n"
50 git diff-tree -p "$l.." >"../$p"
51 gpg2 -u 41D5C07A -a -b "../$p"
52 #echo "$l" > "../LATEST-IS-$n"
53
54 $(dirname $0)/make_abat_scripts "$d" "$l"
55
56 oldest=$(date --date "3 months ago" '+%Y%m%d')
57 echo "Removing old releases ... <= next-$oldest"
58
59 for i in $(git ls-remote --tags korg next-\* |
60                 sed -n 's,^.*[ \t]refs/tags/next-\([0-9]*\)$,\1,p' |
61                 sort -n); do
62         [ $i -gt $oldest ] && break
63         git push korg --delete next-$i
64 done
65
66 echo Pushing to korg ...
67 git push korg
68
69 echo Pushing to korg-history ...
70 git push korg-history
71
72 echo Pushing to history
73 git push history
74
75 echo Pushing patch to kernel.org ...
76 cd ..
77 xz -v -9 "$p"
78 kup --host=geb.kernel.org put "$p.xz" "$p.asc" "/pub/linux/kernel/next/$p.gz"
79
80 ssh-agent -k
81
82 exit 0