#!/bin/bash set -o errexit set -o nounset set -o pipefail sudo apt install -y -q=3 python3-minimal python3-pip virtualenv # workaround for https://github.com/pypa/virtualenv/issues/1029 export PS1=${PS1:-} cd "$WORKSPACE" echo "----------------------------------------------------" echo "Info: Create virtualenv to update Jenkins slaves" virtualenv -p python3 --quiet --no-site-packages .venv source .venv/bin/activate pip install python-openstackclient echo "----------------------------------------------------" echo "Info : Installing packer version ${PACKER_VERSION}" wget -q "https://releases.hashicorp.com/packer/${PACKER_VERSION}/packer_${PACKER_VERSION}_linux_amd64.zip" -O /tmp/packer.zip unzip /tmp/packer.zip > /dev/null 2>&1 sudo mv -f ./packer /usr/local/bin/packer sudo chmod +x /usr/local/bin/packer echo "----------------------------------------------------" packer -version /bin/rm -f /tmp/packer.zip # shellcheck disable=SC1091 source "/tmp/openrc" echo "----------------------------------------------------" echo "Info: Create backup of existing image" cd "$WORKSPACE" BACKUP_ZONE_ID=$(openstack image list --property name=${IMAGE} -f value -c ID) openstack image set --name "${IMAGE}-backup-$GIT_COMMIT" "$BACKUP_ZONE_ID" echo "----------------------------------------------------" echo "Info: Updating the CI slave image" cd "infra/jenkins/slave-setup/${TARGET}/" packer validate *-ubuntu*.json packer build *-ubuntu*.json echo "----------------------------------------------------"