packages: Add target to test the release.

This makes sure that the release at least has all the expected files.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
Acked-by: Adrien 'neox' Bourmault <neox@gnu.org>
This commit is contained in:
Denis 'GNUtoo' Carikli 2023-12-10 03:58:38 +01:00 committed by Adrien 'neox' Bourmault
parent 5b9dd7adba
commit 578fda0e90
Signed by: neox
GPG Key ID: 2974E1D5F25DFCC8
3 changed files with 112 additions and 0 deletions

View File

@ -47,6 +47,7 @@ release:
./build release roms
./build release website
./build release gnuboot-source
./build test release
clean:
./build clean cbutils

1
build
View File

@ -41,6 +41,7 @@ tasks="\
module \
payload \
release \
test \
"
list_tasks() {

110
resources/packages/release/test Executable file
View File

@ -0,0 +1,110 @@
#!/usr/bin/env bash
# Copyright (C) 2023 Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <https://www.gnu.org/licenses/>.
. resources/scripts/misc/sysexits.sh
progname="resources/packages/tests/test-release"
usage()
{
progname="$1"
printf "Usage: %s [options]\n\n" "${progname}"
printf "Available options:\n"
printf "\t-h, --help\n"
printf "\t\tDisplay this help and exit.\n"
}
test_file()
{
path="$1"
test -f "${path}" ; ret=$?
if [ ${ret} -eq 0 ] ; then
echo "[ OK ] ${path}"
else
echo "[ !! ] ${path} is missing"
exit ${ret}
fi
}
test_release()
{
version="$(git --no-pager describe --tags HEAD)"
dir="release"
targets="\
d510mo \
d510mo_16mb \
kfsn4-dre_2mb \
kgpe-d16-rdimm_16mb \
kgpe-d16-rdimm_2mb \
kgpe-d16-udimm_16mb \
kgpe-d16-udimm_2mb \
macbook11 \
macbook11_16mb \
macbook21 \
macbook21_16mb \
qemu-pc_2mb \
r400_16mb \
r400_4mb \
r400_8mb \
r500_4mb \
t400_16mb \
t400_4mb \
t400_8mb \
t500_16mb \
t500_4mb \
t500_8mb \
t60_16mb_intelgpu \
t60_intelgpu \
w500_16mb \
w500_4mb \
w500_8mb \
x200_16mb \
x200_4mb \
x200_8mb \
x301_16mb \
x301_4mb \
x301_8mb \
x60 \
x60_16mb \
"
for target in ${targets} ; do
test_file "${dir}"/roms/gnuboot-"${version}"_"${target}".tar.xz
done
test_file "${dir}"/gnuboot-"${version}"_src.tar.xz
test_file "${dir}"/gnuboot-source-"${version}".bundle
test_file "${dir}"/untitled-"${version}".bundle
test_file "${dir}"/gnuboot-website-"${version}".tar.gz
}
if [ $# -eq 1 ] && { [ "$1" = "-h" ] || [ "$1" == "--help" ] ;} ; then
usage "${progname}"
exit 0
elif [ $# -eq 0 ] ; then
test_release
else
usage "${progname}"
exit ${EX_USAGE}
fi