Files
snapd/tests/lib/image.sh
Sergio Cazzolato 79f717ba8c tests: moving out google machines from us-east1-b (#13992)
* tests: moving out google machines from us-east1-b

The region us-east1 is shared among project. In order to avoid reaching
the instances quota we are moving out to europe regions.
The idea of moving to europe is because the CI is in the UK.

From now, we will have 5 regions for snapd (4 in europe and 1 in the USA
for sru and nested)

* update checks in tests

check the name google is in SPREAD_BACKEND
2024-05-22 23:07:57 +02:00

124 lines
4.5 KiB
Bash

#!/bin/bash
build_ubuntu_image() {
# the helper can be invoked multiple times, so do nothing if ubuntu-image
# was already built and is accessible
if command -v ubuntu-image; then
return
fi
if [ "${UBUNTU_IMAGE_ALLOW_API_BREAK-true}" = "true" ]; then
(
# build a version which uses the current snapd tree as a dependency
# shellcheck disable=SC2030,SC2031
export GO111MODULE=off
# use go get so that ubuntu-image is built with current snapd
# sources
go get github.com/canonical/ubuntu-image/cmd/ubuntu-image
go install -tags 'withtestkeys' github.com/canonical/ubuntu-image/cmd/ubuntu-image
)
else
(
# build a version which uses a particular revision of snapd listed
# in ubuntu-image go.mod file
# shellcheck disable=SC2030,SC2031
export GO111MODULE=on
# shellcheck disable=SC2030,SC2031
unset GOPATH
cd /tmp || exit 1
git clone https://github.com/canonical/ubuntu-image
cd ubuntu-image || exit 1
go build -tags 'withtestkeys' ./cmd/ubuntu-image
)
# make it available
mv /tmp/ubuntu-image/ubuntu-image "$GOHOME/bin"
fi
}
get_ubuntu_image() {
wget -c https://storage.googleapis.com/snapd-spread-tests/ubuntu-image/ubuntu-image-withtestkeys.tar.gz
tar xvzf ubuntu-image-withtestkeys.tar.gz
rm -f ubuntu-image-withtestkeys.tar.gz
test -x ubuntu-image
mv ubuntu-image "$GOHOME/bin"
}
# shellcheck disable=SC2120
get_google_image_url_for_vm() {
case "${1:-$SPREAD_SYSTEM}" in
ubuntu-16.04-64*)
echo "https://storage.googleapis.com/snapd-spread-tests/images/cloudimg/xenial-server-cloudimg-amd64-disk1.img"
;;
ubuntu-18.04-64*)
echo "https://storage.googleapis.com/snapd-spread-tests/images/cloudimg/bionic-server-cloudimg-amd64.img"
;;
ubuntu-20.04-64*)
echo "https://storage.googleapis.com/snapd-spread-tests/images/cloudimg/focal-server-cloudimg-amd64.img"
;;
ubuntu-20.04-arm-64*)
echo "https://storage.googleapis.com/snapd-spread-tests/images/cloudimg/focal-server-cloudimg-arm64.img"
;;
ubuntu-22.04-64*)
echo "https://storage.googleapis.com/snapd-spread-tests/images/cloudimg/jammy-server-cloudimg-amd64.img"
;;
ubuntu-22.04-arm-64*)
echo "https://storage.googleapis.com/snapd-spread-tests/images/cloudimg/jammy-server-cloudimg-arm64.img"
;;
ubuntu-23.10-64*)
echo "https://storage.googleapis.com/snapd-spread-tests/images/cloudimg/mantic-server-cloudimg-amd64.img"
;;
ubuntu-24.04-64*)
echo "https://storage.googleapis.com/snapd-spread-tests/images/cloudimg/noble-server-cloudimg-amd64.img"
;;
*)
echo "unsupported system"
exit 1
;;
esac
}
# shellcheck disable=SC2120
get_ubuntu_image_url_for_vm() {
case "${1:-$SPREAD_SYSTEM}" in
ubuntu-16.04-64*)
echo "https://cloud-images.ubuntu.com/xenial/current/xenial-server-cloudimg-amd64-disk1.img"
;;
ubuntu-18.04-64*)
echo "https://cloud-images.ubuntu.com/bionic/current/bionic-server-cloudimg-amd64.img"
;;
ubuntu-20.04-64*)
echo "https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-amd64.img"
;;
ubuntu-20.04-arm-64*)
echo "https://cloud-images.ubuntu.com/focal/current/focal-server-cloudimg-arm64.img"
;;
ubuntu-22.04-64*)
echo "https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-amd64.img"
;;
ubuntu-22.04-arm-64*)
echo "https://cloud-images.ubuntu.com/jammy/current/jammy-server-cloudimg-arm64.img"
;;
ubuntu-23.10-64*)
echo "https://cloud-images.ubuntu.com/mantic/current/mantic-server-cloudimg-amd64.img"
;;
ubuntu-24.04-64*)
echo "https://cloud-images.ubuntu.com/noble/current/noble-server-cloudimg-amd64.img"
;;
*)
echo "unsupported system"
exit 1
;;
esac
}
# shellcheck disable=SC2120
get_image_url_for_vm() {
if [[ "$SPREAD_BACKEND" =~ google ]]; then
get_google_image_url_for_vm "$@"
else
get_ubuntu_image_url_for_vm "$@"
fi
}