4630a89a42
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
71 lines
2.2 KiB
Bash
Executable File
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
|