diff --git a/do_sos_deb.sh b/do_sos_deb.sh new file mode 100755 index 0000000..966add0 --- /dev/null +++ b/do_sos_deb.sh @@ -0,0 +1,70 @@ +#!/bin/bash + +#set -ax + +script_cmd=${0##*/} + +declare -A all_series + +all_series=( + ['sid']="debian/sid/cloud" +) + +project_name="sos-testing-debian" +project="--project ${project_name}" +lxc="lxc ${project}" +lxc_exec="${lxc} exec" + +sos_location="$HOME/gitRepos/sos-salsa" + +lxc project create ${project_name} + +${lxc} profile edit default < lxd_profile_deb.yaml + +for distro in "${!all_series[@]}" +do + + inst_name=sos-avocado-${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 ${sos_location} + find . -type f -name "*.pyc" -exec sudo rm -f {} \; + rm -rf .tox *.snap *.deb + tar cfz /tmp/sos.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/sos.tgz ${inst_name}/root/sos.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 + ${lxc} file pull ${inst_name}/root/build-logs.tgz . + ${lxc} stop ${inst_name} + +done diff --git a/lxd_profile_deb.yaml b/lxd_profile_deb.yaml new file mode 100644 index 0000000..291e08f --- /dev/null +++ b/lxd_profile_deb.yaml @@ -0,0 +1,125 @@ +devices: + eth0: + name: eth0 + network: lxdbr0 + type: nic + root: + path: / + pool: virtual + type: disk +config: + user.user-data: | + #cloud-config + packages: + - python3-pip + - tox + - sbuild + - mmdebstrap + - uidmap + - lintian + - pbuilder + - dh-python + - reprotest + - licenserecon + write_files: + - path: /root/setup.sh + permissions: '0755' + owner: root:root + content: | + #!bin/bash + sudo apt update --allow-releaseinfo-change + sudo apt -y purge sosreport + - path: /root/.sbuildrc + owner: root:root + content: | + $chroot_mode = 'unshare'; + #$run_autopkgtest = 1; + $autopkgtest_root_args = ''; + $autopkgtest_opts = [ '--apt-upgrade', '--', 'unshare', '--release', '%r', '--arch', '%a' ]; + - path: /root/deb_build_check.sh + permissions: '0755' + owner: root:root + content: | + #!bin/bash + + mkdir -p ~/.cache/sbuild /root/sos + + cd /root/sos + tar xfz ../sos.tgz + + export EMAIL="Some One " + export DEBEMAIL="Some One " + + uscan --download-current-version --rename + dpkg-buildpackage -S -d + + pbuilder create + pbuilder build --twice ../sos*.dsc \ + | tee /root/pbuilder.log + + lintian -v -i -I -E --pedantic --profile debian ../sos*.dsc \ + | tee /root/lintian-dsc.log + lintian -v -i -I -E --pedantic --profile debian ../sos*.changes \ + | tee /root/lintian-changes.log + lintian -v -i -I -E --pedantic --profile debian ../sos*.buildinfo \ + | tee /root/lintian-buildinfo.log + lrc | tee /root/license-check.log + + sbuild-createchroot --include=eatmydata,ccache unstable /srv/chroot/unstable-amd64-sbuild + + reprotest --print-sudoers \ + --variations=user_group.available+=guest-builder,domain_host.use_sudo=1 \ + | EDITOR=tee visudo -f /etc/sudoers.d/local-reprotest + + echo "/etc/sudoers.d/local-reprotest /etc/sudoers.d/local-reprotest none bind 0 0" \ + | tee -a /srv/chroot/unstable-amd64-sbuild/etc/fstab + + cd - + reprotest --vary=-build_path,domain_host.use_sudo=1 --auto-build ./sos*.dsc -- schroot unstable-amd64-sbuild \ + | tee /root/reprotest.log + tar cf build-logs.tgz *.log + - path: /root/enable_proposed.sh + permissions: '0755' + owner: root:root + content: | + #!bin/bash + + echo "Enabling proposed repo ..." + sudo sed -i 's/# suite disabled by cloud-init: //g' /etc/apt/sources.list + sudo apt update + - path: /root/run_avocado.sh + permissions: '0755' + owner: root:root + content: | + #!bin/bash + + mkdir -p /root/sos + cd /root/sos + tar xfz ../sos.tgz + + git config --global --add safe.directory /root/sos + + mkdir -p /etc/sos + cp sos.conf /etc/sos/sos.conf + + echo "Cleaning up any old .tox environments ..." + rm -rf .tox + + echo "Running Unit Tests ..." + tox -e unit_tests + + echo "Running Stage One Tests ..." + tox -e stageone_tests + + echo "Running Stage Two Tests ..." + tox -e stagetwo_tests + - path: /root/run_sos.sh + permissions: '0755' + owner: root:root + content: | + #!bin/bash + + sos report -a --all-logs --batch + + runcmd: + - [ /root/setup.sh ]