1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
#!/usr/bin/env bash
# Returns 0 if all releases are valid. Needs to be run with sudo
# release_level is the level of the release to test.
# 2 will test development stream only
# 1 will test development and beta
# 0 will test all three development, beta and release
function finish {
if [ "$?" -eq 0 ] && [ "$CLEAN_INSTALL" = True ]; then
echo "No errors found, removing base systems."
rm -rf "Debian-Tests/"
fi
}
trap finish EXIT
if [ "$#" -lt 2 ] || [ "$#" -gt 3 ]; then
echo "Usage $0 <release_tag> <release_level> [-c]"
echo "The -c flag will recreate all base systems."
exit 1
fi
RELEASE_LEVEL="$2"
re='^[0-9]+$'
if ! [[ "$RELEASE_LEVEL" =~ $re ]]; then
echo "error: release level is not a number" >&2; exit 1
fi
if [ "$RELEASE_LEVEL" -gt 2 ] || [ "$RELEASE_LEVEL" -lt 0 ]; then
echo "error: release level should be between 0 and 2" >&2; exit 1
fi
if [ "$3" == "-c" ]; then
echo "The script will create all base systems from scratch."
CLEAN_INSTALL=True
else
CLEAN_INSTALL=False
fi
declare -A arr
#Ubuntu xenial
arr[0,0]="ubuntu"
arr[0,1]="http://archive.ubuntu.com/ubuntu"
arr[0,2]="xenial"
#Ubuntu yakkety
arr[1,0]="ubuntu"
arr[1,1]="http://archive.ubuntu.com/ubuntu"
arr[1,2]="yakkety"
#Debian jessie
arr[2,0]="debian"
arr[2,1]="http://deb.debian.org/debian/"
arr[2,2]="jessie"
#Debian sid
arr[3,0]="debian"
arr[3,1]="http://deb.debian.org/debian/"
arr[3,2]="sid"
DIST="$1"
RETURN_VALUE=0
for counter in {0..3}
do
# for ARCH in "amd64" "i386"
for ARCH in "amd64"
do
echo "========================================"
echo "Testing ${arr[${counter},0]} ${arr[${counter},2]} $ARCH"
echo "========================================"
DIST_FOLDER="Debian-Tests/${arr[${counter},0]}_${arr[${counter},2]}_$ARCH"
if [ "$CLEAN_INSTALL" = True ] ; then
rm -rf "$DIST_FOLDER"
echo "Removing $DIST_FOLDER"
fi
if [ ! -d "$DIST_FOLDER" ]; then
echo "$DIST_FOLDER was not present. Creating Base system from scratch."
{
mkdir -p "$DIST_FOLDER"
debootstrap --arch=$ARCH ${arr[${counter},2]} $DIST_FOLDER ${arr[${counter},1]}
} &>/dev/null
echo "Setup complete."
fi
cp test-distr.sh "$DIST_FOLDER"
RELEASES_COUNT=0
for RELEASE in "development" "beta" "release"
do
if [[ "$RELEASES_COUNT" -le "$RELEASE_LEVEL" ]]; then
chroot $DIST_FOLDER bash test-distr.sh https://swift.im/packages/${arr[${counter},0]}/${arr[${counter},2]} ${arr[${counter},2]} $DIST $RELEASE
RETURN_VALUE=$((RETURN_VALUE + $?))
else
echo "Skipping stream: $RELEASE"
fi
RELEASES_COUNT=$((RELEASES_COUNT + 1))
done
done
done
exit $RETURN_VALUE
|