deb-sahara/tools/gate/build-images
Luigi Toscano 4630a89a42 Fix the tox environment used for image building
The "images" environment has sitepackages=True, required by the
Python binding for libguestfs (not on pip).

Also, set the Ubuntu kernel so that it can be read by normal.
This affected (and was fixed) many other users of libguestfs. See:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725

Change-Id: Icf21a7ee9b575d832d6be5e662d4cfa7b8933611
2017-05-09 19:13:47 +02:00

71 lines
2.2 KiB
Bash
Executable File

#!/bin/bash -xe
# The script fails at the first error
PLUGIN=$1
function setup_build_env() {
source /etc/os-release || source /usr/lib/os-release
if [ "${ID}" = "ubuntu" ]; then
# The Ubuntu kernel, for mysterious reasons, can be read only by root. Fix it.
# See https://bugs.launchpad.net/ubuntu/+source/linux/+bug/759725
sudo dpkg-statoverride --add --update root root 0644 /boot/vmlinuz-$(uname -r)
fi
}
function get_cloud_image() {
# Download the cloud image for the specified distro and version
local required_name="$1"
local distro_name="$2"
local img_url=""
case "${distro_name}" in
"centos7")
cache_name="CentOS-7-x86_64-GenericCloud.qcow2"
img_url="http://cloud.centos.org/centos/7/images/CentOS-7-x86_64-GenericCloud.qcow2"
;;
"ubuntu-trusty")
# assume trusty for now
cache_name="trusty-server-cloudimg-amd64-disk1.img"
img_url="https://cloud-images.ubuntu.com/trusty/current/trusty-server-cloudimg-amd64-disk1.img"
;;
*)
;;
esac
# download the image to the cache
if [ ! -f "${cache_name}" ]; then
curl -o "${cache_name}" "${img_url}"
fi
cp -f ${cache_name} ${required_name}
}
function build_images() {
# build all the images for the specified plugin_name
# - plugin_name: name of the plugin as required by sahara-image-pack
# - plugin_version: version of the plugin
# - distributions: list of distributions for the version of the plugin
local plugin_name="$1"
local plugin_version="$2"
local distributions="$3"
local image_name=""
for distro in ${distributions}; do
image_name="${distro}_${plugin_name}_${plugin_version}.qcow2"
get_cloud_image "${image_name}" "${distro}"
tox -e images -- sahara-image-pack --image "${image_name}" "${plugin_name}" "${plugin_version}"
done
}
setup_build_env
# This define the matrix: for each plugin version, add a line like:
# build_images "<plugin_name>" "<plugin_version>" "<distribution> <distribution>"
case "$PLUGIN" in
*)
echo "Invalid version"
;;
esac