Pre-requistes

The server hosting this project requires the following features:

upgrade-tester ALL = NOPASSWD: /usr/bin/ubuntu-vm-builder

and add membership to kvm and libvirtd (install ubuntu-vm-builder first)

$ sudo adduser upgrade-tester kvm
$ sudo adduser upgrade-tester libvirtd

Installation

Install the required packages

sudo apt-get install bzr ubuntu-vm-builder

Then, as user "upgrade-tester", get the source

bzr branch lp:auto-upgrade-testing

Edit ~/auto-upgrade-testing/share/profiles/default.cfg.d/default.cfg and set:

;[DEFAULT]
AutoUpgradeTesterBaseDir=/home/upgrade-tester

[NonInteractive]
UseUpgraderFromBzr=false

If you're using an apt-cacher apt proxy then set these additional configuration parameters in default.cfg

Proxy=http://nnn.nnn.nnn.nnn:3142/

Replace 'nnn.nnn.nnn.nnn:3142' by the address:port of your apt proxy

and create the basedir:

mkdir auto-upgrade-tester

Then run:

cd ~/update-manager/AutoUpgradeTester
bin/auto-upgrade-tester share/profiles/server

This will prompt once for sudo to create the base image (as defined by the setting BaseImage in section KVM of the profile) with ubuntu-vm-builder.

The auto-upgrade-tester has been ported to python3, as a consequence on Precise you'll want to call the interpreter explicitely:

python bin/auto-upgrade-tester share/profiles/server

Then all the profiles can be tested using:

bin/run_and_publish_tests.sh

or alternatively "auto-upgrader-tester --auto" if jenkins is doing the result collection.

Jenkins Setup

Optionally, setup a new node on phad named "wazn-upgrade" with the following configuration

    <slave>
      <name>wazn-upgrade</name>
      <description>runs upgrade tests</description>
      <remoteFS>/home/upgrade-tester</remoteFS>
      <numExecutors>8</numExecutors>
      <mode>NORMAL</mode>
      <retentionStrategy class="hudson.slaves.RetentionStrategy$Always"/>
      <launcher class="hudson.slaves.JNLPLauncher"/>
      <label>upgrade-test amd64 i386</label>
      <nodeProperties>
        <hudson.slaves.EnvironmentVariablesNodeProperty>
          <envVars serialization="custom">
            <unserializable-parents/>
            <tree-map>
              <default>
                <comparator class="hudson.util.CaseInsensitiveComparator" reference="../../../../../../../slave/nodeProperties/hudson.slaves.EnvironmentVariablesNodeProperty/envVars/tree-map/default/comparator"/>
              </default>
              <int>1</int>
              <string>TEST_TIMEOUT</string>
              <string>4800</string>
            </tree-map>
          </envVars>
        </hudson.slaves.EnvironmentVariablesNodeProperty>
      </nodeProperties>
    </slave>

and start jenkins slave on wazn if it is not already running:

./auto-upgrade-tester-jenkins-slave -n wazn-upgrade http://nnn.nnn.nnn.nnn:8080/&

Replace nnn.nnn.nnn.nnn:8080 by the host:port of the jenkins master.

Job configuration example for Quantal Desktop Upgrade from Precise quantal-upgrade-precise-desktop.config.xml

Notes

QATeam/UpgradeTestingSetup (last edited 2013-07-15 16:58:14 by 02dcf20c)