79 lines
1.7 KiB
Bash
Executable File
79 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
#set -ax
|
|
|
|
script_cmd=${0##*/}
|
|
|
|
declare -A all_series
|
|
|
|
all_series=(
|
|
['sid']="debian/sid/cloud"
|
|
)
|
|
|
|
project_name="deb-testing"
|
|
project="--project ${project_name}"
|
|
lxc="lxc ${project}"
|
|
lxc_exec="${lxc} exec"
|
|
|
|
prod="sosreport"
|
|
prod="avocado"
|
|
|
|
prod_location="/tmp/sosreport"
|
|
prod_location="$HOME/gitRepos/${prod}"
|
|
|
|
lxc project create ${project_name}
|
|
|
|
${lxc} profile edit default < lxd_profile_deb.yaml
|
|
|
|
for distro in "${!all_series[@]}"
|
|
do
|
|
|
|
inst_name=${prod}-${distro}
|
|
|
|
${lxc} delete ${inst_name} --force
|
|
|
|
image="images:${all_series[${distro}]}"
|
|
|
|
${lxc} launch ${image} ${inst_name} --vm -c limits.cpu=4 -c limits.memory=4GiB
|
|
|
|
cd ${prod_location}
|
|
find . -type f -name "*.pyc" -exec sudo rm -f {} \;
|
|
rm -rf .tox *.snap *.deb
|
|
tar cfz /tmp/${prod}.tgz .
|
|
cd -
|
|
|
|
echo -n "Checking VM status of ${inst_name} "
|
|
|
|
while true ; do
|
|
num_of_procs=$(${lxc} info ${inst_name} | yq .Resources.Processes)
|
|
[[ ${num_of_procs} -gt 0 ]] && break
|
|
sleep 3
|
|
echo -n "."
|
|
done
|
|
|
|
echo done
|
|
|
|
${lxc} file push /tmp/${prod}.tgz ${inst_name}/root/${prod}.tgz
|
|
|
|
echo -n "Checking cloud-init status of ${inst_name} "
|
|
|
|
while true ; do
|
|
status=$(${lxc_exec} ${inst_name} -- cloud-init status | grep status | awk '{print $2}')
|
|
[[ "${status}" == "done" ]] && break
|
|
[[ "${status}" == "error" ]] && break
|
|
sleep 3
|
|
echo -n "."
|
|
done
|
|
|
|
echo done
|
|
|
|
${lxc_exec} ${inst_name} -- bash /root/deb_build_check.sh ${prod}
|
|
${lxc} file pull ${inst_name}/root/build-logs-${prod}.tgz build-logs-${distro}-${prod}.tgz
|
|
${lxc} stop ${inst_name}
|
|
|
|
rm -rf build-logs-${distro}-${prod}
|
|
mkdir -p build-logs-${distro}-${prod}
|
|
tar -C build-logs-${distro}-${prod} -xf build-logs-${distro}-${prod}.tgz
|
|
|
|
done
|