X-Git-Url: http://git.ozlabs.org/?a=blobdiff_plain;f=make_tree_file;h=75614f6bb80595c39b1944d1ca14e4f84f2985f0;hb=HEAD;hp=fd0e6b97bc2f79eb6c88e95322e758c0b86667ab;hpb=9f899cc1e176e5a310af3e42edaf367ea4edaf31;p=next-scripts diff --git a/make_tree_file b/make_tree_file index fd0e6b9..75614f6 100755 --- a/make_tree_file +++ b/make_tree_file @@ -1,62 +1,69 @@ #!/bin/bash +. "$(dirname $0)/common.sh" + # Don't do releases in the wee hours :-) -h=$(date '+%H') +h=$(date '+%k') (( "$h" < 10 && "$h" > 4 )) && { echo "Go back to bed" 1>&2 exit 1 } -eval $(ssh-agent -s) -ssh-add ~/.ssh/ra.kernel.org +read -r -p "Yubikey token: " tok +ssh git@gitolite.kernel.org 2fa val-session $tok # This means I get the right tag if I finish after midnight d=$(date --date "5 hours ago" '+%Y%m%d') -l="$(git describe --match "v*" --abbrev=0)" +l=$(git tag -l --sort=taggerdate 'v*' | tail -n 1) n="next-$d" mkdir Next -echo 'Trees included into this release: +( + cat <<-'EOF' + Trees included into this release: -Name Type URL ----- ---- ---' > Next/Trees + Name Type URL + ---- ---- --- + EOF -echo 'Name SHA1 ----- ----' > Next/SHA1s + IFS=' ' + grep -v '^#' $CTRL_FILE | + while read email type name url ref build; do + [ "$type" = "branch" ] && continue + tab="\t" + [ ${#name} -lt 8 ] && tab="\t\t" + [ "$type" = "git" ] && url="$url#${ref##*:}" + printf "%s$tab%s\t%s\n" $name $type $url + done +) >Next/Trees -IFS=' ' -while read email type name url ref build; do - [[ "$email" =~ '^#.*$' ]] && continue - tab="\t" - [ $(echo "$name" | wc -c) -le 8 ] && tab="\t\t" - [ "${ref%:*}" = "${ref}" ] || ref=${ref##*:} - [ "$type" = "git" ] && url="$url#$ref" - printf "%s$tab%s\t%s\n" $name $type $url - printf "%s$tab%s\n" $name $(git show-ref --verify --hash "refs/next/$d/$name") >> Next/SHA1s -done <../real_control >>Next/Trees +mv ../SHA1s Next/SHA1s -for i in quilt-import.log merge.log; do - grep -v '^Checking out files:' ../$i >Next/$i -done +grep -v '^Checking out files:' ../merge.log >Next/merge.log printf -- "-next-%s\n" $d >localversion-next git add Next localversion-next git commit -s -v -a -m "Add linux-next specific files for $d" -git tag -u 41D5C07A -m "$n" "$n" +git tag -u $gpg_key -m "$n" "$n" git branch -f stable refs/remotes/origin/master p="patch-$l-$n" git diff-tree -p "$l.." >"../$p" -gpg2 -u 41D5C07A -a -b "../$p" -#echo "$l" > "../LATEST-IS-$n" +gpg -u $kup_gpg_key -a -b "../$p" + +oldest=$(date --date "3 months ago" '+%Y%m%d') +echo "Removing old releases ... <= next-$oldest" + +old_tags=$(git tag -l 'next-*[0-9]' | + awk -F - '$2 ~ /^[0-9]*$/ && $2 <= '$oldest' { printf("next-%s\n", $2); }') -$(dirname $0)/make_abat_scripts "$d" "$l" +[ "$old_tags" ] && git tag -d $old_tags echo Pushing to korg ... -git push korg +git push --prune korg echo Pushing to korg-history ... git push korg-history @@ -67,8 +74,8 @@ git push history echo Pushing patch to kernel.org ... cd .. xz -v -9 "$p" -kup --host=geb.kernel.org put "$p.xz" "$p.asc" "/pub/linux/kernel/next/$p.gz" +kup put "$p.xz" "$p.asc" "/pub/linux/kernel/next/$p.gz" -ssh-agent -k +ssh -O exit git@gitolite.kernel.org exit 0