fc15c83bc877b6827b43b273632e6cae5a531563
[lttng-ci.git] / scripts / system-tests / check-build-needs.sh
1 #!/bin/bash -xeu
2 # Copyright (C) 2016 - Francis Deslauriers <francis.deslauriers@efficios.com>
3 #
4 # This program is free software: you can redistribute it and/or modify
5 # it under the terms of the GNU General Public License as published by
6 # the Free Software Foundation, either version 3 of the License, or
7 # (at your option) any later version.
8 #
9 # This program is distributed in the hope that it will be useful,
10 # but WITHOUT ANY WARRANTY; without even the implied warranty of
11 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 # GNU General Public License for more details.
13 #
14 # You should have received a copy of the GNU General Public License
15 # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
17 mkdir -p "$DEPLOYDIR"
18
19 NEED_MODULES_BUILD=0
20 NEED_KERNEL_BUILD=0
21
22 set +e
23 $SSH_COMMAND "$STORAGE_USER@$STORAGE_HOST" ls "$STORAGE_KERNEL_IMAGE"
24 if [ $? -ne 0 ]; then
25 NEED_KERNEL_BUILD=1
26 # We need to build the lttng modules if the kernel has changed.
27 NEED_MODULES_BUILD=1
28 fi
29
30 $S3_COMMAND info "s3://$S3_STORAGE_KERNEL_IMAGE"
31 if [ $? -ne 0 ]; then
32 NEED_KERNEL_BUILD=1
33 # We need to build the lttng modules if the kernel has changed.
34 NEED_MODULES_BUILD=1
35 fi
36
37 $SSH_COMMAND "$STORAGE_USER@$STORAGE_HOST" ls "$STORAGE_LTTNG_MODULES"
38 if [ $? -ne 0 ]; then
39 NEED_MODULES_BUILD=1
40 fi
41
42 $S3_COMMAND info "s3://$S3_STORAGE_LTTNG_MODULES"
43 if [ $? -ne 0 ]; then
44 NEED_MODULES_BUILD=1
45 fi
46
47 set -e
48
49 # We need to fetch the kernel source and lttng-modules to build either the
50 # kernel or modules
51 if [ $NEED_MODULES_BUILD -eq 1 ] || [ $NEED_KERNEL_BUILD -eq 1 ] ; then
52 mkdir -p "$LINUX_PATH"
53 pushd "$LINUX_PATH"
54 git init
55 git remote add origin "$KGITREPO"
56 git fetch --depth 1 origin "$KERNEL_COMMIT_ID"
57 git checkout FETCH_HEAD
58 popd
59
60 cp src/lttng-ci/lava/kernel/vanilla/x86_64_server.config "$LINUX_PATH/.config"
61 make --directory="$LINUX_PATH" olddefconfig
62
63 if [ $BUILD_DEVICE = 'kvm' ] ; then
64 make --directory="$LINUX_PATH" kvmconfig
65 fi
66
67 # Embed everything
68 make --directory="$LINUX_PATH" localyesconfig
69 make --directory="$LINUX_PATH" modules_prepare
70 fi
71
72 #We create files to specify what needs to be built for the subsequent build steps
73 if [ $NEED_MODULES_BUILD -eq 0 ] ; then
74 touch modules-built.txt
75 fi
76 if [ $NEED_KERNEL_BUILD -eq 0 ] ; then
77 touch kernel-built.txt
78 fi
This page took 0.031899 seconds and 3 git commands to generate.