From Fedora Project Wiki

(Created page with 'This page will help you set up an environment for AutoQA development. This guide documents approaches that we have found convenient, but of course you can do anything differe...')
 
(The workflow)
Line 83: Line 83:
</pre>
</pre>


== The workflow ==
* You do all the coding on your local machine. Nothing is executed there, so you don't have to be afraid about losing your data or anything like that.
* Any time you want to test some changes on your AutoQA server, you have to log in there and perform the following:
<pre>
# cd /autoqa
# make clean install && service autotestd restart
</pre>
* You can use your AutoQA server for local execution of your tests. Just append <code>--local</code> to the command (see [[Writing AutoQA Tests#Run your test]]). Don't forget to run <code>make clean install</code> after you do some changes in your code.
* If you don't append the <code>--local</code> option, the test will be scheduled on the AutoQA client.
* You don't have to take care of anything on the AutoQA client. It will automatically use the latest AutoQA library from your shared AutoQA checkout. Just don't forget that switching git branches in your AutoQA checkout also influences the code that is present on the AutoQA client.




[[Category:AutoQA]]
[[Category:AutoQA]]

Revision as of 16:09, 1 February 2011

This page will help you set up an environment for AutoQA development. This guide documents approaches that we have found convenient, but of course you can do anything differently, as you like.

Glossary

Local machine
the bare metal machine you have in front of you
AutoQA server
(virtual) machine that will serve as a server or a standalone test execution machine for you
AutoQA client
(virtual) machine that will serve as a client for your server

Checkout the code

On your local machine, checkout the source code:

$ git clone git://git.fedorahosted.org/autoqa.git 

You will do all the coding here, with your favorite tools.

Share the code

In order to have your latest code available also on the AutoQA server and the AutoQA client, you will export your development directory over NFS and mount it on those machines.

  • Install NFS service:
# yum install nfs-utils
# chkconfig nfs on
  • Put the following into /etc/exports:
/home/joe/autoqa    *(rw,all_squash,anonuid=500,anongid=500)

Replace the path with the correct one, replace UID and GID numbers with your UID and GID numbers, and optionally replace the star with a network subset definition for better security (e.g. 192.168.1.0/24 if your server and client are on that network subset).

  • Restart NFS service:
# service nfs restart

Install AutoQA server

  • Install a machine that you want to use as an AutoQA server. It may be a virtual machine. Then execute all the steps below on that new machine.
  • Remove Package-x-generic-16.pngautoqa package. We installed it in the first place just to easily install its dependencies. But because we want to develop it, we will install it from source code later on.
# yum remove autoqa
  • Mount your shared AutoQA checkout to this machine (adjust the IP address of your local machine and the path):
# yum install nfs-utils
# mkdir /autoqa
# echo "192.168.1.1:/home/joe/autoqa  /autoqa  nfs  defaults,soft,intr  0 0" >> /etc/fstab
# mount -a
  • Install AutoQA from source:
# cd /autoqa
# make clean install

Install AutoQA client

  • Install a machine that you want to use as an AutoQA client. It may be a virtual machine. Then execute all the steps below on that new machine.
  • Remove Package-x-generic-16.pngautoqa package. We installed it in the first place just to easily install its dependencies. But on the client we need just the AutoQA library, and that can be used easily from our shared AutoQA checkout.
# yum remove autoqa
  • Use the AutoQA library from the shared AutoQA checkout (adjust the IP address of your local machine and the path):
# yum install nfs-utils
# mkdir /autoqa
# echo "192.168.1.1:/home/joe/autoqa  /autoqa  nfs  defaults,soft,intr  0 0" >> /etc/fstab
# echo "/autoqa/lib/python  /usr/lib/python2.7/site-packages/autoqa  none  bind  0 0" >> /etc/fstab
# mount -a

The workflow

  • You do all the coding on your local machine. Nothing is executed there, so you don't have to be afraid about losing your data or anything like that.
  • Any time you want to test some changes on your AutoQA server, you have to log in there and perform the following:
# cd /autoqa
# make clean install && service autotestd restart
  • You can use your AutoQA server for local execution of your tests. Just append --local to the command (see Writing AutoQA Tests#Run your test). Don't forget to run make clean install after you do some changes in your code.
  • If you don't append the --local option, the test will be scheduled on the AutoQA client.
  • You don't have to take care of anything on the AutoQA client. It will automatically use the latest AutoQA library from your shared AutoQA checkout. Just don't forget that switching git branches in your AutoQA checkout also influences the code that is present on the AutoQA client.