]> git.ozlabs.org Git - next-scripts/blob - make_tree_file
make_tree_file: do some tidying up
[next-scripts] / make_tree_file
1 #!/bin/bash
2
3 . "$(dirname $0)/common.sh"
4
5 # Don't do releases in the wee hours :-)
6 h=$(date '+%k')
7 (( "$h" < 10 && "$h" > 4 )) && {
8         echo "Go back to bed" 1>&2
9         exit 1
10 }
11
12 # allow kisskb to use more of ka2
13 ssh $build_host /usr/local/bin/set-kisskb-jfactor 48
14
15 eval $(gpg-agent --daemon --enable-ssh-support)
16 ssh-add ~/.ssh/ra.kernel.org
17
18 if ! ssh git@gitolite.kernel.org 2fa isval; then
19         read -r -p "Yubikey token: " tok
20         ssh git@gitolite.kernel.org 2fa val $tok
21 fi
22
23 # This means I get the right tag if I finish after midnight
24 d=$(date --date "5 hours ago" '+%Y%m%d')
25 l="$(git describe --match "v*" --abbrev=0)"
26 n="next-$d"
27
28 mkdir Next
29
30 (
31         cat <<-'EOF'
32         Trees included into this release:
33
34         Name            Type    URL
35         ----            ----    ---
36         EOF
37
38         IFS='   '
39         grep -v '^#' $CTRL_FILE |
40                 while read email type name url ref build; do
41                         tab="\t"
42                         [ ${#name} -le 8 ] && tab="\t\t"
43                         [ "$type" = "git" ] && url="$url#${ref##*:}"
44                         printf "%s$tab%s\t%s\n" $name $type $url
45                 done
46 ) >Next/Trees
47
48 mv ../SHA1s Next/SHA1s
49
50 for i in quilt-import.log merge.log; do
51         grep -v '^Checking out files:' ../$i >Next/$i
52 done
53
54 printf -- "-next-%s\n" $d >localversion-next
55
56 git add Next localversion-next
57 git commit -s -v -a -m "Add linux-next specific files for $d"
58 git tag -u 41D5C07A -m "$n" "$n"
59
60 git branch -f stable refs/remotes/origin/master
61
62 p="patch-$l-$n"
63 git diff-tree -p "$l.." >"../$p"
64 gpg2 -u 41D5C07A -a -b "../$p"
65
66 oldest=$(date --date "3 months ago" '+%Y%m%d')
67 echo "Removing old releases ... <= next-$oldest"
68
69 old_tags=$(git ls-remote --tags korg 'next-*[0-9]' |
70         awk -F - '$2 ~ /^[0-9]*$/ && $2 <= '$oldest' { printf("next-%s\n", $2); }')
71
72 [ "$old_tags" ] && git push korg --delete $old_tags
73
74 echo Pushing to korg ...
75 git push korg
76
77 echo Pushing to korg-history ...
78 git push korg-history
79
80 echo Pushing to history
81 git push history
82
83 echo Pushing patch to kernel.org ...
84 cd ..
85 xz -v -9 "$p"
86 kup --host=kup.kernel.org put "$p.xz" "$p.asc" "/pub/linux/kernel/next/$p.gz"
87
88 ssh-agent -k
89
90 exit 0