blob: d0c78a5a4111c448a0f976e81ddc768dbea6dede [file]
#!/bin/sh
# SPDX-License-Identifier: GPL-2.0
#
# Copyright IBM Corp. 2008,2025
#
_next_common_no_args=1 . "$(dirname "$0")/common.sh"
# Don't do releases in the wee hours :-)
h=$(date '+%k')
if [ "$h" -lt 10 ] && [ "$h" -gt 4 ]; then
printf '%s\n' 'Go back to bed' 1>&2
exit 1
fi
if [ -z "$NEXT_SIGNING_KEY" ]; then
printf 'Environment variable NEXT_SIGNING_KEY is missing\n' 1>&2
exit 1
fi
if [ -z "$NEXT_KUP_KEY" ]; then
printf 'Environment variable NEXT_KUP_KEY is missing\n' 1>&2
exit 1
fi
# This means I get the right tag if I finish after midnight
d=$(date --date '5 hours ago' '+%Y%m%d')
l=$(git tag -l --sort=taggerdate 'v*' | tail -n 1)
n="next-$d"
mkdir Next
(
tab="$_TAB$_TAB"
printf '%s\n\n' 'Trees included into this release:'
printf '%s%s%s\n' 'Name' "$tab" 'Url'
printf '%s%s%s\n' '----' "$tab" '---'
# Use get_branches "$@" if function's $1 should mean script's $1
# shellcheck disable=SC2119
for name in $(get_branches); do
tab="$_TAB"
if [ ${#name} -lt 8 ]; then
tab="$tab$_TAB"
fi
url=$(get_url "$name")
if [ "$url" = 'linux-next' ]; then
continue
fi
ref=$(get_remote_branch "$name")
url="$url#$ref"
printf '%s%s%s\n' "$name" "$tab" "$url"
done
) >Next/Trees
mv ../SHA1s Next/SHA1s
grep -a -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 "$NEXT_SIGNING_KEY" -m "$n" "$n"
git branch -f stable refs/remotes/origin/master
p="patch-$l-$n"
git diff-tree -p "$l.." >"../$p"
gpg -u "$NEXT_KUP_KEY" -a -b "../$p"
oldest=$(date --date '3 months ago' '+%Y%m%d')
printf 'Removing old releases ... <= next-%s\n' "$oldest"
for t in $(git tag -l 'next-[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'); do
t=${t#next-}
if [ "$t" -gt "$oldest" ]; then
break
fi
git tag -d "next-$t"
done
printf '%s\n' 'Pushing to korg ...'
git push --prune korg
printf '%s\n' 'Pushing to korg-history ...'
git push korg-history
printf '%s\n' 'Pushing to history ...'
git push history
printf '%s\n' 'Pushing patch to kernel.org ...'
cd ..
xz -v -9 "$p"
kup put "$p.xz" "$p.asc" "/pub/linux/kernel/next/$p.gz"
ssh -O exit git@gitolite.kernel.org
exit 0